{"version":3,"file":"static/js/main.31a72a0e.js","mappings":"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","sources":["../node_modules/lottie-react/compiled/hooks/useLottie.js","../node_modules/lottie-react/compiled/hooks/useLottieInteractivity.js","../node_modules/lottie-react/compiled/components/Lottie.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","assets/imgs/logo.svg","views/header/components/DonteBtn.tsx","components/_common/Container.tsx","views/header/Header.tsx","assets/imgs/whatsappIcon.svg","assets/imgs/facebookIcon.svg","assets/imgs/twitterIcon.svg","assets/imgs/linkedInIcon.svg","views/03-Share/Share.tsx","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/ssr-window/ssr-window.esm.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/dom7/dom7.esm.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/swiper/shared/dom.js","../node_modules/swiper/shared/get-support.js","../node_modules/swiper/shared/get-device.js","../node_modules/swiper/shared/get-browser.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/swiper/shared/utils.js","../node_modules/swiper/core/events-emitter.js","../node_modules/swiper/core/update/index.js","../node_modules/swiper/core/update/updateSize.js","../node_modules/swiper/core/update/updateSlides.js","../node_modules/swiper/core/update/updateAutoHeight.js","../node_modules/swiper/core/update/updateSlidesOffset.js","../node_modules/swiper/core/update/updateSlidesProgress.js","../node_modules/swiper/core/update/updateProgress.js","../node_modules/swiper/core/update/updateSlidesClasses.js","../node_modules/swiper/core/update/updateActiveIndex.js","../node_modules/swiper/core/update/updateClickedSlide.js","../node_modules/swiper/core/translate/index.js","../node_modules/swiper/core/translate/getTranslate.js","../node_modules/swiper/core/translate/setTranslate.js","../node_modules/swiper/core/translate/minTranslate.js","../node_modules/swiper/core/translate/maxTranslate.js","../node_modules/swiper/core/translate/translateTo.js","../node_modules/swiper/core/transition/transitionEmit.js","../node_modules/swiper/core/transition/index.js","../node_modules/swiper/core/transition/setTransition.js","../node_modules/swiper/core/transition/transitionStart.js","../node_modules/swiper/core/transition/transitionEnd.js","../node_modules/swiper/core/slide/index.js","../node_modules/swiper/core/slide/slideTo.js","../node_modules/swiper/core/slide/slideToLoop.js","../node_modules/swiper/core/slide/slideNext.js","../node_modules/swiper/core/slide/slidePrev.js","../node_modules/swiper/core/slide/slideReset.js","../node_modules/swiper/core/slide/slideToClosest.js","../node_modules/swiper/core/slide/slideToClickedSlide.js","../node_modules/swiper/core/loop/index.js","../node_modules/swiper/core/loop/loopCreate.js","../node_modules/swiper/core/loop/loopFix.js","../node_modules/swiper/core/loop/loopDestroy.js","../node_modules/swiper/core/events/onTouchStart.js","../node_modules/swiper/core/events/onTouchMove.js","../node_modules/swiper/core/events/onTouchEnd.js","../node_modules/swiper/core/events/onResize.js","../node_modules/swiper/core/events/onClick.js","../node_modules/swiper/core/events/onScroll.js","../node_modules/swiper/core/events/index.js","../node_modules/swiper/core/breakpoints/setBreakpoint.js","../node_modules/swiper/core/breakpoints/index.js","../node_modules/swiper/core/breakpoints/getBreakpoint.js","../node_modules/swiper/core/classes/index.js","../node_modules/swiper/core/classes/addClasses.js","../node_modules/swiper/core/classes/removeClasses.js","../node_modules/swiper/core/images/index.js","../node_modules/swiper/core/images/loadImage.js","../node_modules/swiper/core/images/preloadImages.js","../node_modules/swiper/core/check-overflow/index.js","../node_modules/swiper/core/defaults.js","../node_modules/swiper/core/moduleExtendParams.js","../node_modules/swiper/core/core.js","../node_modules/swiper/core/grab-cursor/index.js","../node_modules/swiper/core/grab-cursor/setGrabCursor.js","../node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","../node_modules/swiper/core/modules/resize/resize.js","../node_modules/swiper/core/modules/observer/observer.js","../node_modules/swiper/shared/classes-to-selector.js","../node_modules/swiper/modules/pagination/pagination.js","../node_modules/swiper/shared/create-element-if-not-defined.js","../node_modules/swiper/components-shared/utils.js","../node_modules/swiper/components-shared/params-list.js","../node_modules/swiper/shared/calc-looped-slides.js","../node_modules/swiper/react/get-children.js","../node_modules/swiper/components-shared/update-swiper.js","../node_modules/swiper/react/use-isomorphic-layout-effect.js","../node_modules/swiper/react/context.js","../node_modules/swiper/react/swiper.js","../node_modules/swiper/components-shared/get-params.js","../node_modules/swiper/components-shared/mount-swiper.js","../node_modules/swiper/components-shared/get-changed-params.js","../node_modules/swiper/components-shared/update-on-virtual-data.js","../node_modules/swiper/react/virtual.js","../node_modules/swiper/react/loop.js","../node_modules/swiper/react/swiper-slide.js","components/_common/Button.tsx","views/04-SaveTax/components/SaveTaxCard.tsx","views/04-SaveTax/SaveTax.tsx","assets/imgs/deductionImg.svg","views/05-Deduction/components/DeductionCard.tsx","views/05-Deduction/Deduction.tsx","views/06-SaveOnTax/SaveOnTax.tsx","views/07-PromoVideo/PromoVideo.tsx","views/08-TaxDetails/TaxDetails.tsx","components/_common/Accordian.tsx","components/_common/AccordianList.tsx","views/08-Faq/Faq.tsx","components/icons/FacebookIcon.tsx","components/icons/InstaIcon.tsx","components/icons/TwitterIcon.tsx","components/icons/YoutubeIcon.tsx","views/footer/Footer.tsx","views/copywrite/Copywrite.tsx","components/_common/GoToTopBtn.tsx","views/01-Banner/Banner.tsx","hooks/useWindowResize.tsx","views/02-pigs/components/PigAnimGrid.tsx","views/02-pigs/components/PigLottie.tsx","views/02-pigs/components/PigCoins.tsx","views/02-pigs/components/modal/components/ModalShareIcons.tsx","views/02-pigs/components/modal/Modal.tsx","views/02-pigs/components/Pig.tsx","views/02-pigs/Pigs.tsx","App.tsx","reportWebVitals.ts","index.tsx"],"sourcesContent":["import lottie from \"lottie-web\";\nimport React, { useEffect, useRef, useState, } from \"react\";\nconst useLottie = (props, style) => {\n const { animationData, loop, autoplay, initialSegment, onComplete, onLoopComplete, onEnterFrame, onSegmentStart, onConfigReady, onDataReady, onDataFailed, onLoadedImages, onDOMLoaded, onDestroy, \n // Specified here to take them out from the 'rest'\n lottieRef, renderer, name, assetsPath, rendererSettings, \n // TODO: find a better way to extract the html props to avoid specifying\n // all the props that we want to exclude (as you can see above)\n ...rest } = props;\n const [animationLoaded, setAnimationLoaded] = useState(false);\n const animationInstanceRef = useRef();\n const animationContainer = useRef(null);\n /*\n ======================================\n INTERACTION METHODS\n ======================================\n */\n /**\n * Play\n */\n const play = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.play();\n };\n /**\n * Stop\n */\n const stop = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.stop();\n };\n /**\n * Pause\n */\n const pause = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.pause();\n };\n /**\n * Set animation speed\n * @param speed\n */\n const setSpeed = (speed) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setSpeed(speed);\n };\n /**\n * Got to frame and play\n * @param value\n * @param isFrame\n */\n const goToAndPlay = (value, isFrame) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.goToAndPlay(value, isFrame);\n };\n /**\n * Got to frame and stop\n * @param value\n * @param isFrame\n */\n const goToAndStop = (value, isFrame) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.goToAndStop(value, isFrame);\n };\n /**\n * Set animation direction\n * @param direction\n */\n const setDirection = (direction) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setDirection(direction);\n };\n /**\n * Play animation segments\n * @param segments\n * @param forceFlag\n */\n const playSegments = (segments, forceFlag) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.playSegments(segments, forceFlag);\n };\n /**\n * Set sub frames\n * @param useSubFrames\n */\n const setSubframe = (useSubFrames) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setSubframe(useSubFrames);\n };\n /**\n * Get animation duration\n * @param inFrames\n */\n const getDuration = (inFrames) => { var _a; return (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.getDuration(inFrames); };\n /**\n * Destroy animation\n */\n const destroy = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n // Removing the reference to the animation so separate cleanups are skipped.\n // Without it the internal `lottie-react` instance throws exceptions as it already cleared itself on destroy.\n animationInstanceRef.current = undefined;\n };\n /*\n ======================================\n LOTTIE\n ======================================\n */\n /**\n * Load a new animation, and if it's the case, destroy the previous one\n * @param {Object} forcedConfigs\n */\n const loadAnimation = (forcedConfigs = {}) => {\n var _a;\n // Return if the container ref is null\n if (!animationContainer.current) {\n return;\n }\n // Destroy any previous instance\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n // Build the animation configuration\n const config = {\n ...props,\n ...forcedConfigs,\n container: animationContainer.current,\n };\n // Save the animation instance\n animationInstanceRef.current = lottie.loadAnimation(config);\n setAnimationLoaded(!!animationInstanceRef.current);\n // Return a function that will clean up\n return () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n animationInstanceRef.current = undefined;\n };\n };\n /**\n * (Re)Initialize when animation data changed\n */\n useEffect(() => {\n const onUnmount = loadAnimation();\n // Clean up on unmount\n return () => onUnmount === null || onUnmount === void 0 ? void 0 : onUnmount();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [animationData, loop]);\n // Update the autoplay state\n useEffect(() => {\n if (!animationInstanceRef.current) {\n return;\n }\n animationInstanceRef.current.autoplay = !!autoplay;\n }, [autoplay]);\n // Update the initial segment state\n useEffect(() => {\n if (!animationInstanceRef.current) {\n return;\n }\n // When null should reset to default animation length\n if (!initialSegment) {\n animationInstanceRef.current.resetSegments(true);\n return;\n }\n // If it's not a valid segment, do nothing\n if (!Array.isArray(initialSegment) || !initialSegment.length) {\n return;\n }\n // If the current position it's not in the new segment\n // set the current position to start\n if (animationInstanceRef.current.currentRawFrame < initialSegment[0] ||\n animationInstanceRef.current.currentRawFrame > initialSegment[1]) {\n animationInstanceRef.current.currentRawFrame = initialSegment[0];\n }\n // Update the segment\n animationInstanceRef.current.setSegment(initialSegment[0], initialSegment[1]);\n }, [initialSegment]);\n /*\n ======================================\n EVENTS\n ======================================\n */\n /**\n * Reinitialize listener on change\n */\n useEffect(() => {\n const partialListeners = [\n { name: \"complete\", handler: onComplete },\n { name: \"loopComplete\", handler: onLoopComplete },\n { name: \"enterFrame\", handler: onEnterFrame },\n { name: \"segmentStart\", handler: onSegmentStart },\n { name: \"config_ready\", handler: onConfigReady },\n { name: \"data_ready\", handler: onDataReady },\n { name: \"data_failed\", handler: onDataFailed },\n { name: \"loaded_images\", handler: onLoadedImages },\n { name: \"DOMLoaded\", handler: onDOMLoaded },\n { name: \"destroy\", handler: onDestroy },\n ];\n const listeners = partialListeners.filter((listener) => listener.handler != null);\n if (!listeners.length) {\n return;\n }\n const deregisterList = listeners.map(\n /**\n * Handle the process of adding an event listener\n * @param {Listener} listener\n * @return {Function} Function that deregister the listener\n */\n (listener) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener(listener.name, listener.handler);\n // Return a function to deregister this listener\n return () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener(listener.name, listener.handler);\n };\n });\n // Deregister listeners on unmount\n return () => {\n deregisterList.forEach((deregister) => deregister());\n };\n }, [\n onComplete,\n onLoopComplete,\n onEnterFrame,\n onSegmentStart,\n onConfigReady,\n onDataReady,\n onDataFailed,\n onLoadedImages,\n onDOMLoaded,\n onDestroy,\n ]);\n /**\n * Build the animation view\n */\n const View = React.createElement(\"div\", { style: style, ref: animationContainer, ...rest });\n return {\n View,\n play,\n stop,\n pause,\n setSpeed,\n goToAndStop,\n goToAndPlay,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef: animationContainer,\n animationLoaded,\n animationItem: animationInstanceRef.current,\n };\n};\nexport default useLottie;\n","import { useEffect } from \"react\";\n// helpers\nexport function getContainerVisibility(container) {\n const { top, height } = container.getBoundingClientRect();\n const current = window.innerHeight - top;\n const max = window.innerHeight + height;\n return current / max;\n}\nexport function getContainerCursorPosition(container, cursorX, cursorY) {\n const { top, left, width, height } = container.getBoundingClientRect();\n const x = (cursorX - left) / width;\n const y = (cursorY - top) / height;\n return { x, y };\n}\nexport const useInitInteractivity = ({ wrapperRef, animationItem, mode, actions, }) => {\n useEffect(() => {\n const wrapper = wrapperRef.current;\n if (!wrapper || !animationItem || !actions.length) {\n return;\n }\n animationItem.stop();\n const scrollModeHandler = () => {\n let assignedSegment = null;\n const scrollHandler = () => {\n const currentPercent = getContainerVisibility(wrapper);\n // Find the first action that satisfies the current position conditions\n const action = actions.find(({ visibility }) => visibility &&\n currentPercent >= visibility[0] &&\n currentPercent <= visibility[1]);\n // Skip if no matching action was found!\n if (!action) {\n return;\n }\n if (action.type === \"seek\" &&\n action.visibility &&\n action.frames.length === 2) {\n // Seek: Go to a frame based on player scroll position action\n const frameToGo = action.frames[0] +\n Math.ceil(((currentPercent - action.visibility[0]) /\n (action.visibility[1] - action.visibility[0])) *\n action.frames[1]);\n //! goToAndStop must be relative to the start of the current segment\n animationItem.goToAndStop(frameToGo - animationItem.firstFrame - 1, true);\n }\n if (action.type === \"loop\") {\n // Loop: Loop a given frames\n if (assignedSegment === null) {\n // if not playing any segments currently. play those segments and save to state\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n else {\n // if playing any segments currently.\n //check if segments in state are equal to the frames selected by action\n if (assignedSegment !== action.frames) {\n // if they are not equal. new segments are to be loaded\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n else if (animationItem.isPaused) {\n // if they are equal the play method must be called only if lottie is paused\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n }\n }\n if (action.type === \"play\" && animationItem.isPaused) {\n // Play: Reset segments and continue playing full animation from current position\n animationItem.resetSegments(true);\n animationItem.play();\n }\n if (action.type === \"stop\") {\n // Stop: Stop playback\n animationItem.goToAndStop(action.frames[0] - animationItem.firstFrame - 1, true);\n }\n };\n document.addEventListener(\"scroll\", scrollHandler);\n return () => {\n document.removeEventListener(\"scroll\", scrollHandler);\n };\n };\n const cursorModeHandler = () => {\n const handleCursor = (_x, _y) => {\n let x = _x;\n let y = _y;\n // Resolve cursor position if cursor is inside container\n if (x !== -1 && y !== -1) {\n // Get container cursor position\n const pos = getContainerCursorPosition(wrapper, x, y);\n // Use the resolved position\n x = pos.x;\n y = pos.y;\n }\n // Find the first action that satisfies the current position conditions\n const action = actions.find(({ position }) => {\n if (position &&\n Array.isArray(position.x) &&\n Array.isArray(position.y)) {\n return (x >= position.x[0] &&\n x <= position.x[1] &&\n y >= position.y[0] &&\n y <= position.y[1]);\n }\n if (position &&\n !Number.isNaN(position.x) &&\n !Number.isNaN(position.y)) {\n return x === position.x && y === position.y;\n }\n return false;\n });\n // Skip if no matching action was found!\n if (!action) {\n return;\n }\n // Process action types:\n if (action.type === \"seek\" &&\n action.position &&\n Array.isArray(action.position.x) &&\n Array.isArray(action.position.y) &&\n action.frames.length === 2) {\n // Seek: Go to a frame based on player scroll position action\n const xPercent = (x - action.position.x[0]) /\n (action.position.x[1] - action.position.x[0]);\n const yPercent = (y - action.position.y[0]) /\n (action.position.y[1] - action.position.y[0]);\n animationItem.playSegments(action.frames, true);\n animationItem.goToAndStop(Math.ceil(((xPercent + yPercent) / 2) *\n (action.frames[1] - action.frames[0])), true);\n }\n if (action.type === \"loop\") {\n animationItem.playSegments(action.frames, true);\n }\n if (action.type === \"play\") {\n // Play: Reset segments and continue playing full animation from current position\n if (animationItem.isPaused) {\n animationItem.resetSegments(false);\n }\n animationItem.playSegments(action.frames);\n }\n if (action.type === \"stop\") {\n animationItem.goToAndStop(action.frames[0], true);\n }\n };\n const mouseMoveHandler = (ev) => {\n handleCursor(ev.clientX, ev.clientY);\n };\n const mouseOutHandler = () => {\n handleCursor(-1, -1);\n };\n wrapper.addEventListener(\"mousemove\", mouseMoveHandler);\n wrapper.addEventListener(\"mouseout\", mouseOutHandler);\n return () => {\n wrapper.removeEventListener(\"mousemove\", mouseMoveHandler);\n wrapper.removeEventListener(\"mouseout\", mouseOutHandler);\n };\n };\n switch (mode) {\n case \"scroll\":\n return scrollModeHandler();\n case \"cursor\":\n return cursorModeHandler();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [mode, animationItem]);\n};\nconst useLottieInteractivity = ({ actions, mode, lottieObj, }) => {\n const { animationItem, View, animationContainerRef } = lottieObj;\n useInitInteractivity({\n actions,\n animationItem,\n mode,\n wrapperRef: animationContainerRef,\n });\n return View;\n};\nexport default useLottieInteractivity;\n","import { useEffect } from \"react\";\nimport useLottie from \"../hooks/useLottie\";\nimport useLottieInteractivity from \"../hooks/useLottieInteractivity\";\nconst Lottie = (props) => {\n var _a, _b, _c;\n const { style, interactivity, ...lottieProps } = props;\n /**\n * Initialize the 'useLottie' hook\n */\n const { View, play, stop, pause, setSpeed, goToAndStop, goToAndPlay, setDirection, playSegments, setSubframe, getDuration, destroy, animationContainerRef, animationLoaded, animationItem, } = useLottie(lottieProps, style);\n /**\n * Make the hook variables/methods available through the provided 'lottieRef'\n */\n useEffect(() => {\n if (props.lottieRef) {\n props.lottieRef.current = {\n play,\n stop,\n pause,\n setSpeed,\n goToAndPlay,\n goToAndStop,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef,\n animationLoaded,\n animationItem,\n };\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [(_a = props.lottieRef) === null || _a === void 0 ? void 0 : _a.current]);\n return useLottieInteractivity({\n lottieObj: {\n View,\n play,\n stop,\n pause,\n setSpeed,\n goToAndStop,\n goToAndPlay,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef,\n animationLoaded,\n animationItem,\n },\n actions: (_b = interactivity === null || interactivity === void 0 ? void 0 : interactivity.actions) !== null && _b !== void 0 ? _b : [],\n mode: (_c = interactivity === null || interactivity === void 0 ? void 0 : interactivity.mode) !== null && _c !== void 0 ? _c : \"scroll\",\n });\n};\nexport default Lottie;\n","(typeof navigator !== \"undefined\") && (function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\r\n typeof define === 'function' && define.amd ? define(factory) :\r\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\r\n})(this, (function () { 'use strict';\r\n\r\n var svgNS = 'http://www.w3.org/2000/svg';\r\n var locationHref = '';\r\n var _useWebWorker = false;\r\n var initialDefaultFrame = -999999;\r\n\r\n var setWebWorker = function setWebWorker(flag) {\r\n _useWebWorker = !!flag;\r\n };\r\n\r\n var getWebWorker = function getWebWorker() {\r\n return _useWebWorker;\r\n };\r\n\r\n var setLocationHref = function setLocationHref(value) {\r\n locationHref = value;\r\n };\r\n\r\n var getLocationHref = function getLocationHref() {\r\n return locationHref;\r\n };\r\n\r\n function createTag(type) {\r\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\r\n return document.createElement(type);\r\n }\r\n\r\n function extendPrototype(sources, destination) {\r\n var i;\r\n var len = sources.length;\r\n var sourcePrototype;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n sourcePrototype = sources[i].prototype;\r\n\r\n for (var attr in sourcePrototype) {\r\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\r\n }\r\n }\r\n }\r\n\r\n function getDescriptor(object, prop) {\r\n return Object.getOwnPropertyDescriptor(object, prop);\r\n }\r\n\r\n function createProxyFunction(prototype) {\r\n function ProxyFunction() {}\r\n\r\n ProxyFunction.prototype = prototype;\r\n return ProxyFunction;\r\n }\r\n\r\n // import Howl from '../../3rd_party/howler';\r\n var audioControllerFactory = function () {\r\n function AudioController(audioFactory) {\r\n this.audios = [];\r\n this.audioFactory = audioFactory;\r\n this._volume = 1;\r\n this._isMuted = false;\r\n }\r\n\r\n AudioController.prototype = {\r\n addAudio: function addAudio(audio) {\r\n this.audios.push(audio);\r\n },\r\n pause: function pause() {\r\n var i;\r\n var len = this.audios.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].pause();\r\n }\r\n },\r\n resume: function resume() {\r\n var i;\r\n var len = this.audios.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].resume();\r\n }\r\n },\r\n setRate: function setRate(rateValue) {\r\n var i;\r\n var len = this.audios.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].setRate(rateValue);\r\n }\r\n },\r\n createAudio: function createAudio(assetPath) {\r\n if (this.audioFactory) {\r\n return this.audioFactory(assetPath);\r\n }\r\n\r\n if (window.Howl) {\r\n return new window.Howl({\r\n src: [assetPath]\r\n });\r\n }\r\n\r\n return {\r\n isPlaying: false,\r\n play: function play() {\r\n this.isPlaying = true;\r\n },\r\n seek: function seek() {\r\n this.isPlaying = false;\r\n },\r\n playing: function playing() {},\r\n rate: function rate() {},\r\n setVolume: function setVolume() {}\r\n };\r\n },\r\n setAudioFactory: function setAudioFactory(audioFactory) {\r\n this.audioFactory = audioFactory;\r\n },\r\n setVolume: function setVolume(value) {\r\n this._volume = value;\r\n\r\n this._updateVolume();\r\n },\r\n mute: function mute() {\r\n this._isMuted = true;\r\n\r\n this._updateVolume();\r\n },\r\n unmute: function unmute() {\r\n this._isMuted = false;\r\n\r\n this._updateVolume();\r\n },\r\n getVolume: function getVolume() {\r\n return this._volume;\r\n },\r\n _updateVolume: function _updateVolume() {\r\n var i;\r\n var len = this.audios.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\r\n }\r\n }\r\n };\r\n return function () {\r\n return new AudioController();\r\n };\r\n }();\r\n\r\n var createTypedArray = function () {\r\n function createRegularArray(type, len) {\r\n var i = 0;\r\n var arr = [];\r\n var value;\r\n\r\n switch (type) {\r\n case 'int16':\r\n case 'uint8c':\r\n value = 1;\r\n break;\r\n\r\n default:\r\n value = 1.1;\r\n break;\r\n }\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr.push(value);\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n function createTypedArrayFactory(type, len) {\r\n if (type === 'float32') {\r\n return new Float32Array(len);\r\n }\r\n\r\n if (type === 'int16') {\r\n return new Int16Array(len);\r\n }\r\n\r\n if (type === 'uint8c') {\r\n return new Uint8ClampedArray(len);\r\n }\r\n\r\n return createRegularArray(type, len);\r\n }\r\n\r\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\r\n return createTypedArrayFactory;\r\n }\r\n\r\n return createRegularArray;\r\n }();\r\n\r\n function createSizedArray(len) {\r\n return Array.apply(null, {\r\n length: len\r\n });\r\n }\r\n\r\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\r\n var subframeEnabled = true;\r\n var expressionsPlugin = null;\r\n var expressionsInterfaces = null;\r\n var idPrefix$1 = '';\r\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\r\n var _shouldRoundValues = false;\r\n var bmPow = Math.pow;\r\n var bmSqrt = Math.sqrt;\r\n var bmFloor = Math.floor;\r\n var bmMax = Math.max;\r\n var bmMin = Math.min;\r\n var BMMath = {};\r\n\r\n (function () {\r\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'];\r\n var i;\r\n var len = propertyNames.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\r\n }\r\n })();\r\n\r\n function ProjectInterface$1() {\r\n return {};\r\n }\r\n\r\n BMMath.random = Math.random;\r\n\r\n BMMath.abs = function (val) {\r\n var tOfVal = _typeof$6(val);\r\n\r\n if (tOfVal === 'object' && val.length) {\r\n var absArr = createSizedArray(val.length);\r\n var i;\r\n var len = val.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n absArr[i] = Math.abs(val[i]);\r\n }\r\n\r\n return absArr;\r\n }\r\n\r\n return Math.abs(val);\r\n };\r\n\r\n var defaultCurveSegments = 150;\r\n var degToRads = Math.PI / 180;\r\n var roundCorner = 0.5519;\r\n\r\n function roundValues(flag) {\r\n _shouldRoundValues = !!flag;\r\n }\r\n\r\n function bmRnd(value) {\r\n if (_shouldRoundValues) {\r\n return Math.round(value);\r\n }\r\n\r\n return value;\r\n }\r\n\r\n function styleDiv(element) {\r\n element.style.position = 'absolute';\r\n element.style.top = 0;\r\n element.style.left = 0;\r\n element.style.display = 'block';\r\n element.style.transformOrigin = '0 0';\r\n element.style.webkitTransformOrigin = '0 0';\r\n element.style.backfaceVisibility = 'visible';\r\n element.style.webkitBackfaceVisibility = 'visible';\r\n element.style.transformStyle = 'preserve-3d';\r\n element.style.webkitTransformStyle = 'preserve-3d';\r\n element.style.mozTransformStyle = 'preserve-3d';\r\n }\r\n\r\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\r\n this.type = type;\r\n this.currentTime = currentTime;\r\n this.totalTime = totalTime;\r\n this.direction = frameMultiplier < 0 ? -1 : 1;\r\n }\r\n\r\n function BMCompleteEvent(type, frameMultiplier) {\r\n this.type = type;\r\n this.direction = frameMultiplier < 0 ? -1 : 1;\r\n }\r\n\r\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\r\n this.type = type;\r\n this.currentLoop = currentLoop;\r\n this.totalLoops = totalLoops;\r\n this.direction = frameMultiplier < 0 ? -1 : 1;\r\n }\r\n\r\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\r\n this.type = type;\r\n this.firstFrame = firstFrame;\r\n this.totalFrames = totalFrames;\r\n }\r\n\r\n function BMDestroyEvent(type, target) {\r\n this.type = type;\r\n this.target = target;\r\n }\r\n\r\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\r\n this.type = 'renderFrameError';\r\n this.nativeError = nativeError;\r\n this.currentTime = currentTime;\r\n }\r\n\r\n function BMConfigErrorEvent(nativeError) {\r\n this.type = 'configError';\r\n this.nativeError = nativeError;\r\n }\r\n\r\n function BMAnimationConfigErrorEvent(type, nativeError) {\r\n this.type = type;\r\n this.nativeError = nativeError;\r\n }\r\n\r\n var createElementID = function () {\r\n var _count = 0;\r\n return function createID() {\r\n _count += 1;\r\n return idPrefix$1 + '__lottie_element_' + _count;\r\n };\r\n }();\r\n\r\n function HSVtoRGB(h, s, v) {\r\n var r;\r\n var g;\r\n var b;\r\n var i;\r\n var f;\r\n var p;\r\n var q;\r\n var t;\r\n i = Math.floor(h * 6);\r\n f = h * 6 - i;\r\n p = v * (1 - s);\r\n q = v * (1 - f * s);\r\n t = v * (1 - (1 - f) * s);\r\n\r\n switch (i % 6) {\r\n case 0:\r\n r = v;\r\n g = t;\r\n b = p;\r\n break;\r\n\r\n case 1:\r\n r = q;\r\n g = v;\r\n b = p;\r\n break;\r\n\r\n case 2:\r\n r = p;\r\n g = v;\r\n b = t;\r\n break;\r\n\r\n case 3:\r\n r = p;\r\n g = q;\r\n b = v;\r\n break;\r\n\r\n case 4:\r\n r = t;\r\n g = p;\r\n b = v;\r\n break;\r\n\r\n case 5:\r\n r = v;\r\n g = p;\r\n b = q;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return [r, g, b];\r\n }\r\n\r\n function RGBtoHSV(r, g, b) {\r\n var max = Math.max(r, g, b);\r\n var min = Math.min(r, g, b);\r\n var d = max - min;\r\n var h;\r\n var s = max === 0 ? 0 : d / max;\r\n var v = max / 255;\r\n\r\n switch (max) {\r\n case min:\r\n h = 0;\r\n break;\r\n\r\n case r:\r\n h = g - b + d * (g < b ? 6 : 0);\r\n h /= 6 * d;\r\n break;\r\n\r\n case g:\r\n h = b - r + d * 2;\r\n h /= 6 * d;\r\n break;\r\n\r\n case b:\r\n h = r - g + d * 4;\r\n h /= 6 * d;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return [h, s, v];\r\n }\r\n\r\n function addSaturationToRGB(color, offset) {\r\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\r\n hsv[1] += offset;\r\n\r\n if (hsv[1] > 1) {\r\n hsv[1] = 1;\r\n } else if (hsv[1] <= 0) {\r\n hsv[1] = 0;\r\n }\r\n\r\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\r\n }\r\n\r\n function addBrightnessToRGB(color, offset) {\r\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\r\n hsv[2] += offset;\r\n\r\n if (hsv[2] > 1) {\r\n hsv[2] = 1;\r\n } else if (hsv[2] < 0) {\r\n hsv[2] = 0;\r\n }\r\n\r\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\r\n }\r\n\r\n function addHueToRGB(color, offset) {\r\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\r\n hsv[0] += offset / 360;\r\n\r\n if (hsv[0] > 1) {\r\n hsv[0] -= 1;\r\n } else if (hsv[0] < 0) {\r\n hsv[0] += 1;\r\n }\r\n\r\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\r\n }\r\n\r\n var rgbToHex = function () {\r\n var colorMap = [];\r\n var i;\r\n var hex;\r\n\r\n for (i = 0; i < 256; i += 1) {\r\n hex = i.toString(16);\r\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\r\n }\r\n\r\n return function (r, g, b) {\r\n if (r < 0) {\r\n r = 0;\r\n }\r\n\r\n if (g < 0) {\r\n g = 0;\r\n }\r\n\r\n if (b < 0) {\r\n b = 0;\r\n }\r\n\r\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\r\n };\r\n }();\r\n\r\n var setSubframeEnabled = function setSubframeEnabled(flag) {\r\n subframeEnabled = !!flag;\r\n };\r\n\r\n var getSubframeEnabled = function getSubframeEnabled() {\r\n return subframeEnabled;\r\n };\r\n\r\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\r\n expressionsPlugin = value;\r\n };\r\n\r\n var getExpressionsPlugin = function getExpressionsPlugin() {\r\n return expressionsPlugin;\r\n };\r\n\r\n var setExpressionInterfaces = function setExpressionInterfaces(value) {\r\n expressionsInterfaces = value;\r\n };\r\n\r\n var getExpressionInterfaces = function getExpressionInterfaces() {\r\n return expressionsInterfaces;\r\n };\r\n\r\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\r\n defaultCurveSegments = value;\r\n };\r\n\r\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\r\n return defaultCurveSegments;\r\n };\r\n\r\n var setIdPrefix = function setIdPrefix(value) {\r\n idPrefix$1 = value;\r\n };\r\n\r\n var getIdPrefix = function getIdPrefix() {\r\n return idPrefix$1;\r\n };\r\n\r\n function createNS(type) {\r\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\r\n return document.createElementNS(svgNS, type);\r\n }\r\n\r\n function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\r\n\r\n var dataManager = function () {\r\n var _counterId = 1;\r\n var processes = [];\r\n var workerFn;\r\n var workerInstance;\r\n var workerProxy = {\r\n onmessage: function onmessage() {},\r\n postMessage: function postMessage(path) {\r\n workerFn({\r\n data: path\r\n });\r\n }\r\n };\r\n var _workerSelf = {\r\n postMessage: function postMessage(data) {\r\n workerProxy.onmessage({\r\n data: data\r\n });\r\n }\r\n };\r\n\r\n function createWorker(fn) {\r\n if (window.Worker && window.Blob && getWebWorker()) {\r\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\r\n type: 'text/javascript'\r\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\r\n\r\n var url = URL.createObjectURL(blob);\r\n return new Worker(url);\r\n }\r\n\r\n workerFn = fn;\r\n return workerProxy;\r\n }\r\n\r\n function setupWorker() {\r\n if (!workerInstance) {\r\n workerInstance = createWorker(function workerStart(e) {\r\n function dataFunctionManager() {\r\n function completeLayers(layers, comps) {\r\n var layerData;\r\n var i;\r\n var len = layers.length;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n layerData = layers[i];\r\n\r\n if ('ks' in layerData && !layerData.completed) {\r\n layerData.completed = true;\r\n\r\n if (layerData.hasMask) {\r\n var maskProps = layerData.masksProperties;\r\n jLen = maskProps.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (maskProps[j].pt.k.i) {\r\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\r\n } else {\r\n kLen = maskProps[j].pt.k.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n if (maskProps[j].pt.k[k].s) {\r\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\r\n }\r\n\r\n if (maskProps[j].pt.k[k].e) {\r\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (layerData.ty === 0) {\r\n layerData.layers = findCompLayers(layerData.refId, comps);\r\n completeLayers(layerData.layers, comps);\r\n } else if (layerData.ty === 4) {\r\n completeShapes(layerData.shapes);\r\n } else if (layerData.ty === 5) {\r\n completeText(layerData);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function completeChars(chars, assets) {\r\n if (chars) {\r\n var i = 0;\r\n var len = chars.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (chars[i].t === 1) {\r\n // var compData = findComp(chars[i].data.refId, assets);\r\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\r\n // chars[i].data.op = 99999;\r\n // chars[i].data.st = 0;\r\n // chars[i].data.sr = 1;\r\n // chars[i].w = compData.w;\r\n // chars[i].data.ks = {\r\n // a: { k: [0, 0, 0], a: 0 },\r\n // p: { k: [0, -compData.h, 0], a: 0 },\r\n // r: { k: 0, a: 0 },\r\n // s: { k: [100, 100], a: 0 },\r\n // o: { k: 100, a: 0 },\r\n // };\r\n\r\n completeLayers(chars[i].data.layers, assets);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function findComp(id, comps) {\r\n var i = 0;\r\n var len = comps.length;\r\n\r\n while (i < len) {\r\n if (comps[i].id === id) {\r\n return comps[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function findCompLayers(id, comps) {\r\n var comp = findComp(id, comps);\r\n\r\n if (comp) {\r\n if (!comp.layers.__used) {\r\n comp.layers.__used = true;\r\n return comp.layers;\r\n }\r\n\r\n return JSON.parse(JSON.stringify(comp.layers));\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function completeShapes(arr) {\r\n var i;\r\n var len = arr.length;\r\n var j;\r\n var jLen;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (arr[i].ty === 'sh') {\r\n if (arr[i].ks.k.i) {\r\n convertPathsToAbsoluteValues(arr[i].ks.k);\r\n } else {\r\n jLen = arr[i].ks.k.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (arr[i].ks.k[j].s) {\r\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\r\n }\r\n\r\n if (arr[i].ks.k[j].e) {\r\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\r\n }\r\n }\r\n }\r\n } else if (arr[i].ty === 'gr') {\r\n completeShapes(arr[i].it);\r\n }\r\n }\r\n }\r\n\r\n function convertPathsToAbsoluteValues(path) {\r\n var i;\r\n var len = path.i.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n path.i[i][0] += path.v[i][0];\r\n path.i[i][1] += path.v[i][1];\r\n path.o[i][0] += path.v[i][0];\r\n path.o[i][1] += path.v[i][1];\r\n }\r\n }\r\n\r\n function checkVersion(minimum, animVersionString) {\r\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\r\n\r\n if (minimum[0] > animVersion[0]) {\r\n return true;\r\n }\r\n\r\n if (animVersion[0] > minimum[0]) {\r\n return false;\r\n }\r\n\r\n if (minimum[1] > animVersion[1]) {\r\n return true;\r\n }\r\n\r\n if (animVersion[1] > minimum[1]) {\r\n return false;\r\n }\r\n\r\n if (minimum[2] > animVersion[2]) {\r\n return true;\r\n }\r\n\r\n if (animVersion[2] > minimum[2]) {\r\n return false;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var checkText = function () {\r\n var minimumVersion = [4, 4, 14];\r\n\r\n function updateTextLayer(textLayer) {\r\n var documentData = textLayer.t.d;\r\n textLayer.t.d = {\r\n k: [{\r\n s: documentData,\r\n t: 0\r\n }]\r\n };\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var i;\r\n var len = layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (layers[i].ty === 5) {\r\n updateTextLayer(layers[i]);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }();\r\n\r\n var checkChars = function () {\r\n var minimumVersion = [4, 7, 99];\r\n return function (animationData) {\r\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\r\n var i;\r\n var len = animationData.chars.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n var charData = animationData.chars[i];\r\n\r\n if (charData.data && charData.data.shapes) {\r\n completeShapes(charData.data.shapes);\r\n charData.data.ip = 0;\r\n charData.data.op = 99999;\r\n charData.data.st = 0;\r\n charData.data.sr = 1;\r\n charData.data.ks = {\r\n p: {\r\n k: [0, 0],\r\n a: 0\r\n },\r\n s: {\r\n k: [100, 100],\r\n a: 0\r\n },\r\n a: {\r\n k: [0, 0],\r\n a: 0\r\n },\r\n r: {\r\n k: 0,\r\n a: 0\r\n },\r\n o: {\r\n k: 100,\r\n a: 0\r\n }\r\n };\r\n\r\n if (!animationData.chars[i].t) {\r\n charData.data.shapes.push({\r\n ty: 'no'\r\n });\r\n charData.data.shapes[0].it.push({\r\n p: {\r\n k: [0, 0],\r\n a: 0\r\n },\r\n s: {\r\n k: [100, 100],\r\n a: 0\r\n },\r\n a: {\r\n k: [0, 0],\r\n a: 0\r\n },\r\n r: {\r\n k: 0,\r\n a: 0\r\n },\r\n o: {\r\n k: 100,\r\n a: 0\r\n },\r\n sk: {\r\n k: 0,\r\n a: 0\r\n },\r\n sa: {\r\n k: 0,\r\n a: 0\r\n },\r\n ty: 'tr'\r\n });\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }();\r\n\r\n var checkPathProperties = function () {\r\n var minimumVersion = [5, 7, 15];\r\n\r\n function updateTextLayer(textLayer) {\r\n var pathData = textLayer.t.p;\r\n\r\n if (typeof pathData.a === 'number') {\r\n pathData.a = {\r\n a: 0,\r\n k: pathData.a\r\n };\r\n }\r\n\r\n if (typeof pathData.p === 'number') {\r\n pathData.p = {\r\n a: 0,\r\n k: pathData.p\r\n };\r\n }\r\n\r\n if (typeof pathData.r === 'number') {\r\n pathData.r = {\r\n a: 0,\r\n k: pathData.r\r\n };\r\n }\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var i;\r\n var len = layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (layers[i].ty === 5) {\r\n updateTextLayer(layers[i]);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }();\r\n\r\n var checkColors = function () {\r\n var minimumVersion = [4, 1, 9];\r\n\r\n function iterateShapes(shapes) {\r\n var i;\r\n var len = shapes.length;\r\n var j;\r\n var jLen;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (shapes[i].ty === 'gr') {\r\n iterateShapes(shapes[i].it);\r\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\r\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\r\n jLen = shapes[i].c.k.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (shapes[i].c.k[j].s) {\r\n shapes[i].c.k[j].s[0] /= 255;\r\n shapes[i].c.k[j].s[1] /= 255;\r\n shapes[i].c.k[j].s[2] /= 255;\r\n shapes[i].c.k[j].s[3] /= 255;\r\n }\r\n\r\n if (shapes[i].c.k[j].e) {\r\n shapes[i].c.k[j].e[0] /= 255;\r\n shapes[i].c.k[j].e[1] /= 255;\r\n shapes[i].c.k[j].e[2] /= 255;\r\n shapes[i].c.k[j].e[3] /= 255;\r\n }\r\n }\r\n } else {\r\n shapes[i].c.k[0] /= 255;\r\n shapes[i].c.k[1] /= 255;\r\n shapes[i].c.k[2] /= 255;\r\n shapes[i].c.k[3] /= 255;\r\n }\r\n }\r\n }\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var i;\r\n var len = layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (layers[i].ty === 4) {\r\n iterateShapes(layers[i].shapes);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }();\r\n\r\n var checkShapes = function () {\r\n var minimumVersion = [4, 4, 18];\r\n\r\n function completeClosingShapes(arr) {\r\n var i;\r\n var len = arr.length;\r\n var j;\r\n var jLen;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (arr[i].ty === 'sh') {\r\n if (arr[i].ks.k.i) {\r\n arr[i].ks.k.c = arr[i].closed;\r\n } else {\r\n jLen = arr[i].ks.k.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (arr[i].ks.k[j].s) {\r\n arr[i].ks.k[j].s[0].c = arr[i].closed;\r\n }\r\n\r\n if (arr[i].ks.k[j].e) {\r\n arr[i].ks.k[j].e[0].c = arr[i].closed;\r\n }\r\n }\r\n }\r\n } else if (arr[i].ty === 'gr') {\r\n completeClosingShapes(arr[i].it);\r\n }\r\n }\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var layerData;\r\n var i;\r\n var len = layers.length;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n layerData = layers[i];\r\n\r\n if (layerData.hasMask) {\r\n var maskProps = layerData.masksProperties;\r\n jLen = maskProps.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (maskProps[j].pt.k.i) {\r\n maskProps[j].pt.k.c = maskProps[j].cl;\r\n } else {\r\n kLen = maskProps[j].pt.k.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n if (maskProps[j].pt.k[k].s) {\r\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\r\n }\r\n\r\n if (maskProps[j].pt.k[k].e) {\r\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (layerData.ty === 4) {\r\n completeClosingShapes(layerData.shapes);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }();\r\n\r\n function completeData(animationData) {\r\n if (animationData.__complete) {\r\n return;\r\n }\r\n\r\n checkColors(animationData);\r\n checkText(animationData);\r\n checkChars(animationData);\r\n checkPathProperties(animationData);\r\n checkShapes(animationData);\r\n completeLayers(animationData.layers, animationData.assets);\r\n completeChars(animationData.chars, animationData.assets);\r\n animationData.__complete = true;\r\n }\r\n\r\n function completeText(data) {\r\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\r\n }\r\n }\r\n\r\n var moduleOb = {};\r\n moduleOb.completeData = completeData;\r\n moduleOb.checkColors = checkColors;\r\n moduleOb.checkChars = checkChars;\r\n moduleOb.checkPathProperties = checkPathProperties;\r\n moduleOb.checkShapes = checkShapes;\r\n moduleOb.completeLayers = completeLayers;\r\n return moduleOb;\r\n }\r\n\r\n if (!_workerSelf.dataManager) {\r\n _workerSelf.dataManager = dataFunctionManager();\r\n }\r\n\r\n if (!_workerSelf.assetLoader) {\r\n _workerSelf.assetLoader = function () {\r\n function formatResponse(xhr) {\r\n // using typeof doubles the time of execution of this method,\r\n // so if available, it's better to use the header to validate the type\r\n var contentTypeHeader = xhr.getResponseHeader('content-type');\r\n\r\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\r\n return xhr.response;\r\n }\r\n\r\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\r\n return xhr.response;\r\n }\r\n\r\n if (xhr.response && typeof xhr.response === 'string') {\r\n return JSON.parse(xhr.response);\r\n }\r\n\r\n if (xhr.responseText) {\r\n return JSON.parse(xhr.responseText);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function loadAsset(path, fullPath, callback, errorCallback) {\r\n var response;\r\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\r\n\r\n try {\r\n // This crashes on Android WebView prior to KitKat\r\n xhr.responseType = 'json';\r\n } catch (err) {} // eslint-disable-line no-empty\r\n\r\n\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState === 4) {\r\n if (xhr.status === 200) {\r\n response = formatResponse(xhr);\r\n callback(response);\r\n } else {\r\n try {\r\n response = formatResponse(xhr);\r\n callback(response);\r\n } catch (err) {\r\n if (errorCallback) {\r\n errorCallback(err);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n try {\r\n // Hack to workaround banner validation\r\n xhr.open(['G', 'E', 'T'].join(''), path, true);\r\n } catch (error) {\r\n // Hack to workaround banner validation\r\n xhr.open(['G', 'E', 'T'].join(''), fullPath + '/' + path, true);\r\n }\r\n\r\n xhr.send();\r\n }\r\n\r\n return {\r\n load: loadAsset\r\n };\r\n }();\r\n }\r\n\r\n if (e.data.type === 'loadAnimation') {\r\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\r\n _workerSelf.dataManager.completeData(data);\r\n\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n payload: data,\r\n status: 'success'\r\n });\r\n }, function () {\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n status: 'error'\r\n });\r\n });\r\n } else if (e.data.type === 'complete') {\r\n var animation = e.data.animation;\r\n\r\n _workerSelf.dataManager.completeData(animation);\r\n\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n payload: animation,\r\n status: 'success'\r\n });\r\n } else if (e.data.type === 'loadData') {\r\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n payload: data,\r\n status: 'success'\r\n });\r\n }, function () {\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n status: 'error'\r\n });\r\n });\r\n }\r\n });\r\n\r\n workerInstance.onmessage = function (event) {\r\n var data = event.data;\r\n var id = data.id;\r\n var process = processes[id];\r\n processes[id] = null;\r\n\r\n if (data.status === 'success') {\r\n process.onComplete(data.payload);\r\n } else if (process.onError) {\r\n process.onError();\r\n }\r\n };\r\n }\r\n }\r\n\r\n function createProcess(onComplete, onError) {\r\n _counterId += 1;\r\n var id = 'processId_' + _counterId;\r\n processes[id] = {\r\n onComplete: onComplete,\r\n onError: onError\r\n };\r\n return id;\r\n }\r\n\r\n function loadAnimation(path, onComplete, onError) {\r\n setupWorker();\r\n var processId = createProcess(onComplete, onError);\r\n workerInstance.postMessage({\r\n type: 'loadAnimation',\r\n path: path,\r\n fullPath: window.location.origin + window.location.pathname,\r\n id: processId\r\n });\r\n }\r\n\r\n function loadData(path, onComplete, onError) {\r\n setupWorker();\r\n var processId = createProcess(onComplete, onError);\r\n workerInstance.postMessage({\r\n type: 'loadData',\r\n path: path,\r\n fullPath: window.location.origin + window.location.pathname,\r\n id: processId\r\n });\r\n }\r\n\r\n function completeAnimation(anim, onComplete, onError) {\r\n setupWorker();\r\n var processId = createProcess(onComplete, onError);\r\n workerInstance.postMessage({\r\n type: 'complete',\r\n animation: anim,\r\n id: processId\r\n });\r\n }\r\n\r\n return {\r\n loadAnimation: loadAnimation,\r\n loadData: loadData,\r\n completeAnimation: completeAnimation\r\n };\r\n }();\r\n\r\n var ImagePreloader = function () {\r\n var proxyImage = function () {\r\n var canvas = createTag('canvas');\r\n canvas.width = 1;\r\n canvas.height = 1;\r\n var ctx = canvas.getContext('2d');\r\n ctx.fillStyle = 'rgba(0,0,0,0)';\r\n ctx.fillRect(0, 0, 1, 1);\r\n return canvas;\r\n }();\r\n\r\n function imageLoaded() {\r\n this.loadedAssets += 1;\r\n\r\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\r\n if (this.imagesLoadedCb) {\r\n this.imagesLoadedCb(null);\r\n }\r\n }\r\n }\r\n\r\n function footageLoaded() {\r\n this.loadedFootagesCount += 1;\r\n\r\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\r\n if (this.imagesLoadedCb) {\r\n this.imagesLoadedCb(null);\r\n }\r\n }\r\n }\r\n\r\n function getAssetsPath(assetData, assetsPath, originalPath) {\r\n var path = '';\r\n\r\n if (assetData.e) {\r\n path = assetData.p;\r\n } else if (assetsPath) {\r\n var imagePath = assetData.p;\r\n\r\n if (imagePath.indexOf('images/') !== -1) {\r\n imagePath = imagePath.split('/')[1];\r\n }\r\n\r\n path = assetsPath + imagePath;\r\n } else {\r\n path = originalPath;\r\n path += assetData.u ? assetData.u : '';\r\n path += assetData.p;\r\n }\r\n\r\n return path;\r\n }\r\n\r\n function testImageLoaded(img) {\r\n var _count = 0;\r\n var intervalId = setInterval(function () {\r\n var box = img.getBBox();\r\n\r\n if (box.width || _count > 500) {\r\n this._imageLoaded();\r\n\r\n clearInterval(intervalId);\r\n }\r\n\r\n _count += 1;\r\n }.bind(this), 50);\r\n }\r\n\r\n function createImageData(assetData) {\r\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\r\n var img = createNS('image');\r\n\r\n if (isSafari) {\r\n this.testImageLoaded(img);\r\n } else {\r\n img.addEventListener('load', this._imageLoaded, false);\r\n }\r\n\r\n img.addEventListener('error', function () {\r\n ob.img = proxyImage;\r\n\r\n this._imageLoaded();\r\n }.bind(this), false);\r\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\r\n\r\n if (this._elementHelper.append) {\r\n this._elementHelper.append(img);\r\n } else {\r\n this._elementHelper.appendChild(img);\r\n }\r\n\r\n var ob = {\r\n img: img,\r\n assetData: assetData\r\n };\r\n return ob;\r\n }\r\n\r\n function createImgData(assetData) {\r\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\r\n var img = createTag('img');\r\n img.crossOrigin = 'anonymous';\r\n img.addEventListener('load', this._imageLoaded, false);\r\n img.addEventListener('error', function () {\r\n ob.img = proxyImage;\r\n\r\n this._imageLoaded();\r\n }.bind(this), false);\r\n img.src = path;\r\n var ob = {\r\n img: img,\r\n assetData: assetData\r\n };\r\n return ob;\r\n }\r\n\r\n function createFootageData(data) {\r\n var ob = {\r\n assetData: data\r\n };\r\n var path = getAssetsPath(data, this.assetsPath, this.path);\r\n dataManager.loadData(path, function (footageData) {\r\n ob.img = footageData;\r\n\r\n this._footageLoaded();\r\n }.bind(this), function () {\r\n ob.img = {};\r\n\r\n this._footageLoaded();\r\n }.bind(this));\r\n return ob;\r\n }\r\n\r\n function loadAssets(assets, cb) {\r\n this.imagesLoadedCb = cb;\r\n var i;\r\n var len = assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!assets[i].layers) {\r\n if (!assets[i].t || assets[i].t === 'seq') {\r\n this.totalImages += 1;\r\n this.images.push(this._createImageData(assets[i]));\r\n } else if (assets[i].t === 3) {\r\n this.totalFootages += 1;\r\n this.images.push(this.createFootageData(assets[i]));\r\n }\r\n }\r\n }\r\n }\r\n\r\n function setPath(path) {\r\n this.path = path || '';\r\n }\r\n\r\n function setAssetsPath(path) {\r\n this.assetsPath = path || '';\r\n }\r\n\r\n function getAsset(assetData) {\r\n var i = 0;\r\n var len = this.images.length;\r\n\r\n while (i < len) {\r\n if (this.images[i].assetData === assetData) {\r\n return this.images[i].img;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function destroy() {\r\n this.imagesLoadedCb = null;\r\n this.images.length = 0;\r\n }\r\n\r\n function loadedImages() {\r\n return this.totalImages === this.loadedAssets;\r\n }\r\n\r\n function loadedFootages() {\r\n return this.totalFootages === this.loadedFootagesCount;\r\n }\r\n\r\n function setCacheType(type, elementHelper) {\r\n if (type === 'svg') {\r\n this._elementHelper = elementHelper;\r\n this._createImageData = this.createImageData.bind(this);\r\n } else {\r\n this._createImageData = this.createImgData.bind(this);\r\n }\r\n }\r\n\r\n function ImagePreloaderFactory() {\r\n this._imageLoaded = imageLoaded.bind(this);\r\n this._footageLoaded = footageLoaded.bind(this);\r\n this.testImageLoaded = testImageLoaded.bind(this);\r\n this.createFootageData = createFootageData.bind(this);\r\n this.assetsPath = '';\r\n this.path = '';\r\n this.totalImages = 0;\r\n this.totalFootages = 0;\r\n this.loadedAssets = 0;\r\n this.loadedFootagesCount = 0;\r\n this.imagesLoadedCb = null;\r\n this.images = [];\r\n }\r\n\r\n ImagePreloaderFactory.prototype = {\r\n loadAssets: loadAssets,\r\n setAssetsPath: setAssetsPath,\r\n setPath: setPath,\r\n loadedImages: loadedImages,\r\n loadedFootages: loadedFootages,\r\n destroy: destroy,\r\n getAsset: getAsset,\r\n createImgData: createImgData,\r\n createImageData: createImageData,\r\n imageLoaded: imageLoaded,\r\n footageLoaded: footageLoaded,\r\n setCacheType: setCacheType\r\n };\r\n return ImagePreloaderFactory;\r\n }();\r\n\r\n function BaseEvent() {}\r\n\r\n BaseEvent.prototype = {\r\n triggerEvent: function triggerEvent(eventName, args) {\r\n if (this._cbs[eventName]) {\r\n var callbacks = this._cbs[eventName];\r\n\r\n for (var i = 0; i < callbacks.length; i += 1) {\r\n callbacks[i](args);\r\n }\r\n }\r\n },\r\n addEventListener: function addEventListener(eventName, callback) {\r\n if (!this._cbs[eventName]) {\r\n this._cbs[eventName] = [];\r\n }\r\n\r\n this._cbs[eventName].push(callback);\r\n\r\n return function () {\r\n this.removeEventListener(eventName, callback);\r\n }.bind(this);\r\n },\r\n removeEventListener: function removeEventListener(eventName, callback) {\r\n if (!callback) {\r\n this._cbs[eventName] = null;\r\n } else if (this._cbs[eventName]) {\r\n var i = 0;\r\n var len = this._cbs[eventName].length;\r\n\r\n while (i < len) {\r\n if (this._cbs[eventName][i] === callback) {\r\n this._cbs[eventName].splice(i, 1);\r\n\r\n i -= 1;\r\n len -= 1;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (!this._cbs[eventName].length) {\r\n this._cbs[eventName] = null;\r\n }\r\n }\r\n }\r\n };\r\n\r\n var markerParser = function () {\r\n function parsePayloadLines(payload) {\r\n var lines = payload.split('\\r\\n');\r\n var keys = {};\r\n var line;\r\n var keysCount = 0;\r\n\r\n for (var i = 0; i < lines.length; i += 1) {\r\n line = lines[i].split(':');\r\n\r\n if (line.length === 2) {\r\n keys[line[0]] = line[1].trim();\r\n keysCount += 1;\r\n }\r\n }\r\n\r\n if (keysCount === 0) {\r\n throw new Error();\r\n }\r\n\r\n return keys;\r\n }\r\n\r\n return function (_markers) {\r\n var markers = [];\r\n\r\n for (var i = 0; i < _markers.length; i += 1) {\r\n var _marker = _markers[i];\r\n var markerData = {\r\n time: _marker.tm,\r\n duration: _marker.dr\r\n };\r\n\r\n try {\r\n markerData.payload = JSON.parse(_markers[i].cm);\r\n } catch (_) {\r\n try {\r\n markerData.payload = parsePayloadLines(_markers[i].cm);\r\n } catch (__) {\r\n markerData.payload = {\r\n name: _markers[i].cm\r\n };\r\n }\r\n }\r\n\r\n markers.push(markerData);\r\n }\r\n\r\n return markers;\r\n };\r\n }();\r\n\r\n var ProjectInterface = function () {\r\n function registerComposition(comp) {\r\n this.compositions.push(comp);\r\n }\r\n\r\n return function () {\r\n function _thisProjectFunction(name) {\r\n var i = 0;\r\n var len = this.compositions.length;\r\n\r\n while (i < len) {\r\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\r\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\r\n this.compositions[i].prepareFrame(this.currentFrame);\r\n }\r\n\r\n return this.compositions[i].compInterface;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n _thisProjectFunction.compositions = [];\r\n _thisProjectFunction.currentFrame = 0;\r\n _thisProjectFunction.registerComposition = registerComposition;\r\n return _thisProjectFunction;\r\n };\r\n }();\r\n\r\n var renderers = {};\r\n\r\n var registerRenderer = function registerRenderer(key, value) {\r\n renderers[key] = value;\r\n };\r\n\r\n function getRenderer(key) {\r\n return renderers[key];\r\n }\r\n\r\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\r\n\r\n var AnimationItem = function AnimationItem() {\r\n this._cbs = [];\r\n this.name = '';\r\n this.path = '';\r\n this.isLoaded = false;\r\n this.currentFrame = 0;\r\n this.currentRawFrame = 0;\r\n this.firstFrame = 0;\r\n this.totalFrames = 0;\r\n this.frameRate = 0;\r\n this.frameMult = 0;\r\n this.playSpeed = 1;\r\n this.playDirection = 1;\r\n this.playCount = 0;\r\n this.animationData = {};\r\n this.assets = [];\r\n this.isPaused = true;\r\n this.autoplay = false;\r\n this.loop = true;\r\n this.renderer = null;\r\n this.animationID = createElementID();\r\n this.assetsPath = '';\r\n this.timeCompleted = 0;\r\n this.segmentPos = 0;\r\n this.isSubframeEnabled = getSubframeEnabled();\r\n this.segments = [];\r\n this._idle = true;\r\n this._completedLoop = false;\r\n this.projectInterface = ProjectInterface();\r\n this.imagePreloader = new ImagePreloader();\r\n this.audioController = audioControllerFactory();\r\n this.markers = [];\r\n this.configAnimation = this.configAnimation.bind(this);\r\n this.onSetupError = this.onSetupError.bind(this);\r\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\r\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\r\n };\r\n\r\n extendPrototype([BaseEvent], AnimationItem);\r\n\r\n AnimationItem.prototype.setParams = function (params) {\r\n if (params.wrapper || params.container) {\r\n this.wrapper = params.wrapper || params.container;\r\n }\r\n\r\n var animType = 'svg';\r\n\r\n if (params.animType) {\r\n animType = params.animType;\r\n } else if (params.renderer) {\r\n animType = params.renderer;\r\n }\r\n\r\n var RendererClass = getRenderer(animType);\r\n this.renderer = new RendererClass(this, params.rendererSettings);\r\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\r\n this.renderer.setProjectInterface(this.projectInterface);\r\n this.animType = animType;\r\n\r\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\r\n this.loop = true;\r\n } else if (params.loop === false) {\r\n this.loop = false;\r\n } else {\r\n this.loop = parseInt(params.loop, 10);\r\n }\r\n\r\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\r\n this.name = params.name ? params.name : '';\r\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\r\n this.assetsPath = params.assetsPath;\r\n this.initialSegment = params.initialSegment;\r\n\r\n if (params.audioFactory) {\r\n this.audioController.setAudioFactory(params.audioFactory);\r\n }\r\n\r\n if (params.animationData) {\r\n this.setupAnimation(params.animationData);\r\n } else if (params.path) {\r\n if (params.path.lastIndexOf('\\\\') !== -1) {\r\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\r\n } else {\r\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\r\n }\r\n\r\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\r\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\r\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.onSetupError = function () {\r\n this.trigger('data_failed');\r\n };\r\n\r\n AnimationItem.prototype.setupAnimation = function (data) {\r\n dataManager.completeAnimation(data, this.configAnimation);\r\n };\r\n\r\n AnimationItem.prototype.setData = function (wrapper, animationData) {\r\n if (animationData) {\r\n if (_typeof$4(animationData) !== 'object') {\r\n animationData = JSON.parse(animationData);\r\n }\r\n }\r\n\r\n var params = {\r\n wrapper: wrapper,\r\n animationData: animationData\r\n };\r\n var wrapperAttributes = wrapper.attributes;\r\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\r\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : 'canvas';\r\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\r\n\r\n if (loop === 'false') {\r\n params.loop = false;\r\n } else if (loop === 'true') {\r\n params.loop = true;\r\n } else if (loop !== '') {\r\n params.loop = parseInt(loop, 10);\r\n }\r\n\r\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\r\n params.autoplay = autoplay !== 'false';\r\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\r\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\r\n\r\n if (prerender === 'false') {\r\n params.prerender = false;\r\n }\r\n\r\n this.setParams(params);\r\n };\r\n\r\n AnimationItem.prototype.includeLayers = function (data) {\r\n if (data.op > this.animationData.op) {\r\n this.animationData.op = data.op;\r\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\r\n }\r\n\r\n var layers = this.animationData.layers;\r\n var i;\r\n var len = layers.length;\r\n var newLayers = data.layers;\r\n var j;\r\n var jLen = newLayers.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n i = 0;\r\n\r\n while (i < len) {\r\n if (layers[i].id === newLayers[j].id) {\r\n layers[i] = newLayers[j];\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n }\r\n\r\n if (data.chars || data.fonts) {\r\n this.renderer.globalData.fontManager.addChars(data.chars);\r\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\r\n }\r\n\r\n if (data.assets) {\r\n len = data.assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.animationData.assets.push(data.assets[i]);\r\n }\r\n }\r\n\r\n this.animationData.__complete = false;\r\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\r\n };\r\n\r\n AnimationItem.prototype.onSegmentComplete = function (data) {\r\n this.animationData = data;\r\n var expressionsPlugin = getExpressionsPlugin();\r\n\r\n if (expressionsPlugin) {\r\n expressionsPlugin.initExpressions(this);\r\n }\r\n\r\n this.loadNextSegment();\r\n };\r\n\r\n AnimationItem.prototype.loadNextSegment = function () {\r\n var segments = this.animationData.segments;\r\n\r\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\r\n this.trigger('data_ready');\r\n this.timeCompleted = this.totalFrames;\r\n return;\r\n }\r\n\r\n var segment = segments.shift();\r\n this.timeCompleted = segment.time * this.frameRate;\r\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\r\n this.segmentPos += 1;\r\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\r\n this.trigger('data_failed');\r\n }.bind(this));\r\n };\r\n\r\n AnimationItem.prototype.loadSegments = function () {\r\n var segments = this.animationData.segments;\r\n\r\n if (!segments) {\r\n this.timeCompleted = this.totalFrames;\r\n }\r\n\r\n this.loadNextSegment();\r\n };\r\n\r\n AnimationItem.prototype.imagesLoaded = function () {\r\n this.trigger('loaded_images');\r\n this.checkLoaded();\r\n };\r\n\r\n AnimationItem.prototype.preloadImages = function () {\r\n this.imagePreloader.setAssetsPath(this.assetsPath);\r\n this.imagePreloader.setPath(this.path);\r\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\r\n };\r\n\r\n AnimationItem.prototype.configAnimation = function (animData) {\r\n if (!this.renderer) {\r\n return;\r\n }\r\n\r\n try {\r\n this.animationData = animData;\r\n\r\n if (this.initialSegment) {\r\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\r\n this.firstFrame = Math.round(this.initialSegment[0]);\r\n } else {\r\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\r\n this.firstFrame = Math.round(this.animationData.ip);\r\n }\r\n\r\n this.renderer.configAnimation(animData);\r\n\r\n if (!animData.assets) {\r\n animData.assets = [];\r\n }\r\n\r\n this.assets = this.animationData.assets;\r\n this.frameRate = this.animationData.fr;\r\n this.frameMult = this.animationData.fr / 1000;\r\n this.renderer.searchExtraCompositions(animData.assets);\r\n this.markers = markerParser(animData.markers || []);\r\n this.trigger('config_ready');\r\n this.preloadImages();\r\n this.loadSegments();\r\n this.updaFrameModifier();\r\n this.waitForFontsLoaded();\r\n\r\n if (this.isPaused) {\r\n this.audioController.pause();\r\n }\r\n } catch (error) {\r\n this.triggerConfigError(error);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.waitForFontsLoaded = function () {\r\n if (!this.renderer) {\r\n return;\r\n }\r\n\r\n if (this.renderer.globalData.fontManager.isLoaded) {\r\n this.checkLoaded();\r\n } else {\r\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.checkLoaded = function () {\r\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\r\n this.isLoaded = true;\r\n var expressionsPlugin = getExpressionsPlugin();\r\n\r\n if (expressionsPlugin) {\r\n expressionsPlugin.initExpressions(this);\r\n }\r\n\r\n this.renderer.initItems();\r\n setTimeout(function () {\r\n this.trigger('DOMLoaded');\r\n }.bind(this), 0);\r\n this.gotoFrame();\r\n\r\n if (this.autoplay) {\r\n this.play();\r\n }\r\n }\r\n };\r\n\r\n AnimationItem.prototype.resize = function (width, height) {\r\n // Adding this validation for backwards compatibility in case an event object was being passed down\r\n var _width = typeof width === 'number' ? width : undefined;\r\n\r\n var _height = typeof height === 'number' ? height : undefined;\r\n\r\n this.renderer.updateContainerSize(_width, _height);\r\n };\r\n\r\n AnimationItem.prototype.setSubframe = function (flag) {\r\n this.isSubframeEnabled = !!flag;\r\n };\r\n\r\n AnimationItem.prototype.gotoFrame = function () {\r\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\r\n\r\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\r\n this.currentFrame = this.timeCompleted;\r\n }\r\n\r\n this.trigger('enterFrame');\r\n this.renderFrame();\r\n this.trigger('drawnFrame');\r\n };\r\n\r\n AnimationItem.prototype.renderFrame = function () {\r\n if (this.isLoaded === false || !this.renderer) {\r\n return;\r\n }\r\n\r\n try {\r\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\r\n } catch (error) {\r\n this.triggerRenderFrameError(error);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.play = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n if (this.isPaused === true) {\r\n this.isPaused = false;\r\n this.trigger('_pause');\r\n this.audioController.resume();\r\n\r\n if (this._idle) {\r\n this._idle = false;\r\n this.trigger('_active');\r\n }\r\n }\r\n };\r\n\r\n AnimationItem.prototype.pause = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n if (this.isPaused === false) {\r\n this.isPaused = true;\r\n this.trigger('_play');\r\n this._idle = true;\r\n this.trigger('_idle');\r\n this.audioController.pause();\r\n }\r\n };\r\n\r\n AnimationItem.prototype.togglePause = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n if (this.isPaused === true) {\r\n this.play();\r\n } else {\r\n this.pause();\r\n }\r\n };\r\n\r\n AnimationItem.prototype.stop = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n this.pause();\r\n this.playCount = 0;\r\n this._completedLoop = false;\r\n this.setCurrentRawFrameValue(0);\r\n };\r\n\r\n AnimationItem.prototype.getMarkerData = function (markerName) {\r\n var marker;\r\n\r\n for (var i = 0; i < this.markers.length; i += 1) {\r\n marker = this.markers[i];\r\n\r\n if (marker.payload && marker.payload.name === markerName) {\r\n return marker;\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n\r\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n var numValue = Number(value);\r\n\r\n if (isNaN(numValue)) {\r\n var marker = this.getMarkerData(value);\r\n\r\n if (marker) {\r\n this.goToAndStop(marker.time, true);\r\n }\r\n } else if (isFrame) {\r\n this.setCurrentRawFrameValue(value);\r\n } else {\r\n this.setCurrentRawFrameValue(value * this.frameModifier);\r\n }\r\n\r\n this.pause();\r\n };\r\n\r\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n var numValue = Number(value);\r\n\r\n if (isNaN(numValue)) {\r\n var marker = this.getMarkerData(value);\r\n\r\n if (marker) {\r\n if (!marker.duration) {\r\n this.goToAndStop(marker.time, true);\r\n } else {\r\n this.playSegments([marker.time, marker.time + marker.duration], true);\r\n }\r\n }\r\n } else {\r\n this.goToAndStop(numValue, isFrame, name);\r\n }\r\n\r\n this.play();\r\n };\r\n\r\n AnimationItem.prototype.advanceTime = function (value) {\r\n if (this.isPaused === true || this.isLoaded === false) {\r\n return;\r\n }\r\n\r\n var nextValue = this.currentRawFrame + value * this.frameModifier;\r\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\r\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.\r\n\r\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\r\n if (!this.loop || this.playCount === this.loop) {\r\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\r\n _isComplete = true;\r\n nextValue = this.totalFrames - 1;\r\n }\r\n } else if (nextValue >= this.totalFrames) {\r\n this.playCount += 1;\r\n\r\n if (!this.checkSegments(nextValue % this.totalFrames)) {\r\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\r\n this._completedLoop = true;\r\n this.trigger('loopComplete');\r\n }\r\n } else {\r\n this.setCurrentRawFrameValue(nextValue);\r\n }\r\n } else if (nextValue < 0) {\r\n if (!this.checkSegments(nextValue % this.totalFrames)) {\r\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\r\n // eslint-disable-line no-plusplus\r\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\r\n\r\n if (!this._completedLoop) {\r\n this._completedLoop = true;\r\n } else {\r\n this.trigger('loopComplete');\r\n }\r\n } else {\r\n _isComplete = true;\r\n nextValue = 0;\r\n }\r\n }\r\n } else {\r\n this.setCurrentRawFrameValue(nextValue);\r\n }\r\n\r\n if (_isComplete) {\r\n this.setCurrentRawFrameValue(nextValue);\r\n this.pause();\r\n this.trigger('complete');\r\n }\r\n };\r\n\r\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\r\n this.playCount = 0;\r\n\r\n if (arr[1] < arr[0]) {\r\n if (this.frameModifier > 0) {\r\n if (this.playSpeed < 0) {\r\n this.setSpeed(-this.playSpeed);\r\n } else {\r\n this.setDirection(-1);\r\n }\r\n }\r\n\r\n this.totalFrames = arr[0] - arr[1];\r\n this.timeCompleted = this.totalFrames;\r\n this.firstFrame = arr[1];\r\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\r\n } else if (arr[1] > arr[0]) {\r\n if (this.frameModifier < 0) {\r\n if (this.playSpeed < 0) {\r\n this.setSpeed(-this.playSpeed);\r\n } else {\r\n this.setDirection(1);\r\n }\r\n }\r\n\r\n this.totalFrames = arr[1] - arr[0];\r\n this.timeCompleted = this.totalFrames;\r\n this.firstFrame = arr[0];\r\n this.setCurrentRawFrameValue(0.001 + offset);\r\n }\r\n\r\n this.trigger('segmentStart');\r\n };\r\n\r\n AnimationItem.prototype.setSegment = function (init, end) {\r\n var pendingFrame = -1;\r\n\r\n if (this.isPaused) {\r\n if (this.currentRawFrame + this.firstFrame < init) {\r\n pendingFrame = init;\r\n } else if (this.currentRawFrame + this.firstFrame > end) {\r\n pendingFrame = end - init;\r\n }\r\n }\r\n\r\n this.firstFrame = init;\r\n this.totalFrames = end - init;\r\n this.timeCompleted = this.totalFrames;\r\n\r\n if (pendingFrame !== -1) {\r\n this.goToAndStop(pendingFrame, true);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\r\n if (forceFlag) {\r\n this.segments.length = 0;\r\n }\r\n\r\n if (_typeof$4(arr[0]) === 'object') {\r\n var i;\r\n var len = arr.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.segments.push(arr[i]);\r\n }\r\n } else {\r\n this.segments.push(arr);\r\n }\r\n\r\n if (this.segments.length && forceFlag) {\r\n this.adjustSegment(this.segments.shift(), 0);\r\n }\r\n\r\n if (this.isPaused) {\r\n this.play();\r\n }\r\n };\r\n\r\n AnimationItem.prototype.resetSegments = function (forceFlag) {\r\n this.segments.length = 0;\r\n this.segments.push([this.animationData.ip, this.animationData.op]);\r\n\r\n if (forceFlag) {\r\n this.checkSegments(0);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.checkSegments = function (offset) {\r\n if (this.segments.length) {\r\n this.adjustSegment(this.segments.shift(), offset);\r\n return true;\r\n }\r\n\r\n return false;\r\n };\r\n\r\n AnimationItem.prototype.destroy = function (name) {\r\n if (name && this.name !== name || !this.renderer) {\r\n return;\r\n }\r\n\r\n this.renderer.destroy();\r\n this.imagePreloader.destroy();\r\n this.trigger('destroy');\r\n this._cbs = null;\r\n this.onEnterFrame = null;\r\n this.onLoopComplete = null;\r\n this.onComplete = null;\r\n this.onSegmentStart = null;\r\n this.onDestroy = null;\r\n this.renderer = null;\r\n this.renderer = null;\r\n this.imagePreloader = null;\r\n this.projectInterface = null;\r\n };\r\n\r\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\r\n this.currentRawFrame = value;\r\n this.gotoFrame();\r\n };\r\n\r\n AnimationItem.prototype.setSpeed = function (val) {\r\n this.playSpeed = val;\r\n this.updaFrameModifier();\r\n };\r\n\r\n AnimationItem.prototype.setDirection = function (val) {\r\n this.playDirection = val < 0 ? -1 : 1;\r\n this.updaFrameModifier();\r\n };\r\n\r\n AnimationItem.prototype.setLoop = function (isLooping) {\r\n this.loop = isLooping;\r\n };\r\n\r\n AnimationItem.prototype.setVolume = function (val, name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n this.audioController.setVolume(val);\r\n };\r\n\r\n AnimationItem.prototype.getVolume = function () {\r\n return this.audioController.getVolume();\r\n };\r\n\r\n AnimationItem.prototype.mute = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n this.audioController.mute();\r\n };\r\n\r\n AnimationItem.prototype.unmute = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n this.audioController.unmute();\r\n };\r\n\r\n AnimationItem.prototype.updaFrameModifier = function () {\r\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\r\n this.audioController.setRate(this.playSpeed * this.playDirection);\r\n };\r\n\r\n AnimationItem.prototype.getPath = function () {\r\n return this.path;\r\n };\r\n\r\n AnimationItem.prototype.getAssetsPath = function (assetData) {\r\n var path = '';\r\n\r\n if (assetData.e) {\r\n path = assetData.p;\r\n } else if (this.assetsPath) {\r\n var imagePath = assetData.p;\r\n\r\n if (imagePath.indexOf('images/') !== -1) {\r\n imagePath = imagePath.split('/')[1];\r\n }\r\n\r\n path = this.assetsPath + imagePath;\r\n } else {\r\n path = this.path;\r\n path += assetData.u ? assetData.u : '';\r\n path += assetData.p;\r\n }\r\n\r\n return path;\r\n };\r\n\r\n AnimationItem.prototype.getAssetData = function (id) {\r\n var i = 0;\r\n var len = this.assets.length;\r\n\r\n while (i < len) {\r\n if (id === this.assets[i].id) {\r\n return this.assets[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n AnimationItem.prototype.hide = function () {\r\n this.renderer.hide();\r\n };\r\n\r\n AnimationItem.prototype.show = function () {\r\n this.renderer.show();\r\n };\r\n\r\n AnimationItem.prototype.getDuration = function (isFrame) {\r\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\r\n };\r\n\r\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\r\n try {\r\n var element = this.renderer.getElementByPath(path);\r\n element.updateDocumentData(documentData, index);\r\n } catch (error) {// TODO: decide how to handle catch case\r\n }\r\n };\r\n\r\n AnimationItem.prototype.trigger = function (name) {\r\n if (this._cbs && this._cbs[name]) {\r\n switch (name) {\r\n case 'enterFrame':\r\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\r\n break;\r\n\r\n case 'drawnFrame':\r\n this.drawnFrameEvent.currentTime = this.currentFrame;\r\n this.drawnFrameEvent.totalTime = this.totalFrames;\r\n this.drawnFrameEvent.direction = this.frameModifier;\r\n this.triggerEvent(name, this.drawnFrameEvent);\r\n break;\r\n\r\n case 'loopComplete':\r\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\r\n break;\r\n\r\n case 'complete':\r\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\r\n break;\r\n\r\n case 'segmentStart':\r\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\r\n break;\r\n\r\n case 'destroy':\r\n this.triggerEvent(name, new BMDestroyEvent(name, this));\r\n break;\r\n\r\n default:\r\n this.triggerEvent(name);\r\n }\r\n }\r\n\r\n if (name === 'enterFrame' && this.onEnterFrame) {\r\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\r\n }\r\n\r\n if (name === 'loopComplete' && this.onLoopComplete) {\r\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\r\n }\r\n\r\n if (name === 'complete' && this.onComplete) {\r\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\r\n }\r\n\r\n if (name === 'segmentStart' && this.onSegmentStart) {\r\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\r\n }\r\n\r\n if (name === 'destroy' && this.onDestroy) {\r\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\r\n }\r\n };\r\n\r\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\r\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\r\n this.triggerEvent('error', error);\r\n\r\n if (this.onError) {\r\n this.onError.call(this, error);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\r\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\r\n this.triggerEvent('error', error);\r\n\r\n if (this.onError) {\r\n this.onError.call(this, error);\r\n }\r\n };\r\n\r\n var animationManager = function () {\r\n var moduleOb = {};\r\n var registeredAnimations = [];\r\n var initTime = 0;\r\n var len = 0;\r\n var playingAnimationsNum = 0;\r\n var _stopped = true;\r\n var _isFrozen = false;\r\n\r\n function removeElement(ev) {\r\n var i = 0;\r\n var animItem = ev.target;\r\n\r\n while (i < len) {\r\n if (registeredAnimations[i].animation === animItem) {\r\n registeredAnimations.splice(i, 1);\r\n i -= 1;\r\n len -= 1;\r\n\r\n if (!animItem.isPaused) {\r\n subtractPlayingCount();\r\n }\r\n }\r\n\r\n i += 1;\r\n }\r\n }\r\n\r\n function registerAnimation(element, animationData) {\r\n if (!element) {\r\n return null;\r\n }\r\n\r\n var i = 0;\r\n\r\n while (i < len) {\r\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\r\n return registeredAnimations[i].animation;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n var animItem = new AnimationItem();\r\n setupAnimation(animItem, element);\r\n animItem.setData(element, animationData);\r\n return animItem;\r\n }\r\n\r\n function getRegisteredAnimations() {\r\n var i;\r\n var lenAnims = registeredAnimations.length;\r\n var animations = [];\r\n\r\n for (i = 0; i < lenAnims; i += 1) {\r\n animations.push(registeredAnimations[i].animation);\r\n }\r\n\r\n return animations;\r\n }\r\n\r\n function addPlayingCount() {\r\n playingAnimationsNum += 1;\r\n activate();\r\n }\r\n\r\n function subtractPlayingCount() {\r\n playingAnimationsNum -= 1;\r\n }\r\n\r\n function setupAnimation(animItem, element) {\r\n animItem.addEventListener('destroy', removeElement);\r\n animItem.addEventListener('_active', addPlayingCount);\r\n animItem.addEventListener('_idle', subtractPlayingCount);\r\n registeredAnimations.push({\r\n elem: element,\r\n animation: animItem\r\n });\r\n len += 1;\r\n }\r\n\r\n function loadAnimation(params) {\r\n var animItem = new AnimationItem();\r\n setupAnimation(animItem, null);\r\n animItem.setParams(params);\r\n return animItem;\r\n }\r\n\r\n function setSpeed(val, animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.setSpeed(val, animation);\r\n }\r\n }\r\n\r\n function setDirection(val, animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.setDirection(val, animation);\r\n }\r\n }\r\n\r\n function play(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.play(animation);\r\n }\r\n }\r\n\r\n function resume(nowTime) {\r\n var elapsedTime = nowTime - initTime;\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.advanceTime(elapsedTime);\r\n }\r\n\r\n initTime = nowTime;\r\n\r\n if (playingAnimationsNum && !_isFrozen) {\r\n window.requestAnimationFrame(resume);\r\n } else {\r\n _stopped = true;\r\n }\r\n }\r\n\r\n function first(nowTime) {\r\n initTime = nowTime;\r\n window.requestAnimationFrame(resume);\r\n }\r\n\r\n function pause(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.pause(animation);\r\n }\r\n }\r\n\r\n function goToAndStop(value, isFrame, animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\r\n }\r\n }\r\n\r\n function stop(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.stop(animation);\r\n }\r\n }\r\n\r\n function togglePause(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.togglePause(animation);\r\n }\r\n }\r\n\r\n function destroy(animation) {\r\n var i;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n registeredAnimations[i].animation.destroy(animation);\r\n }\r\n }\r\n\r\n function searchAnimations(animationData, standalone, renderer) {\r\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\r\n var i;\r\n var lenAnims = animElements.length;\r\n\r\n for (i = 0; i < lenAnims; i += 1) {\r\n if (renderer) {\r\n animElements[i].setAttribute('data-bm-type', renderer);\r\n }\r\n\r\n registerAnimation(animElements[i], animationData);\r\n }\r\n\r\n if (standalone && lenAnims === 0) {\r\n if (!renderer) {\r\n renderer = 'svg';\r\n }\r\n\r\n var body = document.getElementsByTagName('body')[0];\r\n body.innerText = '';\r\n var div = createTag('div');\r\n div.style.width = '100%';\r\n div.style.height = '100%';\r\n div.setAttribute('data-bm-type', renderer);\r\n body.appendChild(div);\r\n registerAnimation(div, animationData);\r\n }\r\n }\r\n\r\n function resize() {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.resize();\r\n }\r\n }\r\n\r\n function activate() {\r\n if (!_isFrozen && playingAnimationsNum) {\r\n if (_stopped) {\r\n window.requestAnimationFrame(first);\r\n _stopped = false;\r\n }\r\n }\r\n }\r\n\r\n function freeze() {\r\n _isFrozen = true;\r\n }\r\n\r\n function unfreeze() {\r\n _isFrozen = false;\r\n activate();\r\n }\r\n\r\n function setVolume(val, animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.setVolume(val, animation);\r\n }\r\n }\r\n\r\n function mute(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.mute(animation);\r\n }\r\n }\r\n\r\n function unmute(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.unmute(animation);\r\n }\r\n }\r\n\r\n moduleOb.registerAnimation = registerAnimation;\r\n moduleOb.loadAnimation = loadAnimation;\r\n moduleOb.setSpeed = setSpeed;\r\n moduleOb.setDirection = setDirection;\r\n moduleOb.play = play;\r\n moduleOb.pause = pause;\r\n moduleOb.stop = stop;\r\n moduleOb.togglePause = togglePause;\r\n moduleOb.searchAnimations = searchAnimations;\r\n moduleOb.resize = resize; // moduleOb.start = start;\r\n\r\n moduleOb.goToAndStop = goToAndStop;\r\n moduleOb.destroy = destroy;\r\n moduleOb.freeze = freeze;\r\n moduleOb.unfreeze = unfreeze;\r\n moduleOb.setVolume = setVolume;\r\n moduleOb.mute = mute;\r\n moduleOb.unmute = unmute;\r\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\r\n return moduleOb;\r\n }();\r\n\r\n /* eslint-disable */\r\n var BezierFactory = function () {\r\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 */\r\n var ob = {};\r\n ob.getBezierEasing = getBezierEasing;\r\n var beziers = {};\r\n\r\n function getBezierEasing(a, b, c, d, nm) {\r\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\r\n\r\n if (beziers[str]) {\r\n return beziers[str];\r\n }\r\n\r\n var bezEasing = new BezierEasing([a, b, c, d]);\r\n beziers[str] = bezEasing;\r\n return bezEasing;\r\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\r\n\r\n\r\n var NEWTON_ITERATIONS = 4;\r\n var NEWTON_MIN_SLOPE = 0.001;\r\n var SUBDIVISION_PRECISION = 0.0000001;\r\n var SUBDIVISION_MAX_ITERATIONS = 10;\r\n var kSplineTableSize = 11;\r\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\r\n var float32ArraySupported = typeof Float32Array === 'function';\r\n\r\n function A(aA1, aA2) {\r\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\r\n }\r\n\r\n function B(aA1, aA2) {\r\n return 3.0 * aA2 - 6.0 * aA1;\r\n }\r\n\r\n function C(aA1) {\r\n return 3.0 * aA1;\r\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\r\n\r\n\r\n function calcBezier(aT, aA1, aA2) {\r\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\r\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\r\n\r\n\r\n function getSlope(aT, aA1, aA2) {\r\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\r\n }\r\n\r\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\r\n var currentX,\r\n currentT,\r\n i = 0;\r\n\r\n do {\r\n currentT = aA + (aB - aA) / 2.0;\r\n currentX = calcBezier(currentT, mX1, mX2) - aX;\r\n\r\n if (currentX > 0.0) {\r\n aB = currentT;\r\n } else {\r\n aA = currentT;\r\n }\r\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\r\n\r\n return currentT;\r\n }\r\n\r\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\r\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\r\n var currentSlope = getSlope(aGuessT, mX1, mX2);\r\n if (currentSlope === 0.0) return aGuessT;\r\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\r\n aGuessT -= currentX / currentSlope;\r\n }\r\n\r\n return aGuessT;\r\n }\r\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\r\n\r\n\r\n function BezierEasing(points) {\r\n this._p = points;\r\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\r\n this._precomputed = false;\r\n this.get = this.get.bind(this);\r\n }\r\n\r\n BezierEasing.prototype = {\r\n get: function get(x) {\r\n var mX1 = this._p[0],\r\n mY1 = this._p[1],\r\n mX2 = this._p[2],\r\n mY2 = this._p[3];\r\n if (!this._precomputed) this._precompute();\r\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\r\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\r\n\r\n if (x === 0) return 0;\r\n if (x === 1) return 1;\r\n return calcBezier(this._getTForX(x), mY1, mY2);\r\n },\r\n // Private part\r\n _precompute: function _precompute() {\r\n var mX1 = this._p[0],\r\n mY1 = this._p[1],\r\n mX2 = this._p[2],\r\n mY2 = this._p[3];\r\n this._precomputed = true;\r\n\r\n if (mX1 !== mY1 || mX2 !== mY2) {\r\n this._calcSampleValues();\r\n }\r\n },\r\n _calcSampleValues: function _calcSampleValues() {\r\n var mX1 = this._p[0],\r\n mX2 = this._p[2];\r\n\r\n for (var i = 0; i < kSplineTableSize; ++i) {\r\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\r\n }\r\n },\r\n\r\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\r\n _getTForX: function _getTForX(aX) {\r\n var mX1 = this._p[0],\r\n mX2 = this._p[2],\r\n mSampleValues = this._mSampleValues;\r\n var intervalStart = 0.0;\r\n var currentSample = 1;\r\n var lastSample = kSplineTableSize - 1;\r\n\r\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\r\n intervalStart += kSampleStepSize;\r\n }\r\n\r\n --currentSample; // Interpolate to provide an initial guess for t\r\n\r\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\r\n var guessForT = intervalStart + dist * kSampleStepSize;\r\n var initialSlope = getSlope(guessForT, mX1, mX2);\r\n\r\n if (initialSlope >= NEWTON_MIN_SLOPE) {\r\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\r\n }\r\n\r\n if (initialSlope === 0.0) {\r\n return guessForT;\r\n }\r\n\r\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\r\n }\r\n };\r\n return ob;\r\n }();\r\n\r\n var pooling = function () {\r\n function _double(arr) {\r\n return arr.concat(createSizedArray(arr.length));\r\n }\r\n\r\n return {\r\n \"double\": _double\r\n };\r\n }();\r\n\r\n var poolFactory = function () {\r\n return function (initialLength, _create, _release) {\r\n var _length = 0;\r\n var _maxLength = initialLength;\r\n var pool = createSizedArray(_maxLength);\r\n var ob = {\r\n newElement: newElement,\r\n release: release\r\n };\r\n\r\n function newElement() {\r\n var element;\r\n\r\n if (_length) {\r\n _length -= 1;\r\n element = pool[_length];\r\n } else {\r\n element = _create();\r\n }\r\n\r\n return element;\r\n }\r\n\r\n function release(element) {\r\n if (_length === _maxLength) {\r\n pool = pooling[\"double\"](pool);\r\n _maxLength *= 2;\r\n }\r\n\r\n if (_release) {\r\n _release(element);\r\n }\r\n\r\n pool[_length] = element;\r\n _length += 1;\r\n }\r\n\r\n return ob;\r\n };\r\n }();\r\n\r\n var bezierLengthPool = function () {\r\n function create() {\r\n return {\r\n addedLength: 0,\r\n percents: createTypedArray('float32', getDefaultCurveSegments()),\r\n lengths: createTypedArray('float32', getDefaultCurveSegments())\r\n };\r\n }\r\n\r\n return poolFactory(8, create);\r\n }();\r\n\r\n var segmentsLengthPool = function () {\r\n function create() {\r\n return {\r\n lengths: [],\r\n totalLength: 0\r\n };\r\n }\r\n\r\n function release(element) {\r\n var i;\r\n var len = element.lengths.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n bezierLengthPool.release(element.lengths[i]);\r\n }\r\n\r\n element.lengths.length = 0;\r\n }\r\n\r\n return poolFactory(8, create, release);\r\n }();\r\n\r\n function bezFunction() {\r\n var math = Math;\r\n\r\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\r\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\r\n return det1 > -0.001 && det1 < 0.001;\r\n }\r\n\r\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\r\n if (z1 === 0 && z2 === 0 && z3 === 0) {\r\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\r\n }\r\n\r\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\r\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\r\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\r\n var diffDist;\r\n\r\n if (dist1 > dist2) {\r\n if (dist1 > dist3) {\r\n diffDist = dist1 - dist2 - dist3;\r\n } else {\r\n diffDist = dist3 - dist2 - dist1;\r\n }\r\n } else if (dist3 > dist2) {\r\n diffDist = dist3 - dist2 - dist1;\r\n } else {\r\n diffDist = dist2 - dist1 - dist3;\r\n }\r\n\r\n return diffDist > -0.0001 && diffDist < 0.0001;\r\n }\r\n\r\n var getBezierLength = function () {\r\n return function (pt1, pt2, pt3, pt4) {\r\n var curveSegments = getDefaultCurveSegments();\r\n var k;\r\n var i;\r\n var len;\r\n var ptCoord;\r\n var perc;\r\n var addedLength = 0;\r\n var ptDistance;\r\n var point = [];\r\n var lastPoint = [];\r\n var lengthData = bezierLengthPool.newElement();\r\n len = pt3.length;\r\n\r\n for (k = 0; k < curveSegments; k += 1) {\r\n perc = k / (curveSegments - 1);\r\n ptDistance = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\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];\r\n point[i] = ptCoord;\r\n\r\n if (lastPoint[i] !== null) {\r\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\r\n }\r\n\r\n lastPoint[i] = point[i];\r\n }\r\n\r\n if (ptDistance) {\r\n ptDistance = bmSqrt(ptDistance);\r\n addedLength += ptDistance;\r\n }\r\n\r\n lengthData.percents[k] = perc;\r\n lengthData.lengths[k] = addedLength;\r\n }\r\n\r\n lengthData.addedLength = addedLength;\r\n return lengthData;\r\n };\r\n }();\r\n\r\n function getSegmentsLength(shapeData) {\r\n var segmentsLength = segmentsLengthPool.newElement();\r\n var closed = shapeData.c;\r\n var pathV = shapeData.v;\r\n var pathO = shapeData.o;\r\n var pathI = shapeData.i;\r\n var i;\r\n var len = shapeData._length;\r\n var lengths = segmentsLength.lengths;\r\n var totalLength = 0;\r\n\r\n for (i = 0; i < len - 1; i += 1) {\r\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\r\n totalLength += lengths[i].addedLength;\r\n }\r\n\r\n if (closed && len) {\r\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\r\n totalLength += lengths[i].addedLength;\r\n }\r\n\r\n segmentsLength.totalLength = totalLength;\r\n return segmentsLength;\r\n }\r\n\r\n function BezierData(length) {\r\n this.segmentLength = 0;\r\n this.points = new Array(length);\r\n }\r\n\r\n function PointData(partial, point) {\r\n this.partialLength = partial;\r\n this.point = point;\r\n }\r\n\r\n var buildBezierData = function () {\r\n var storedData = {};\r\n return function (pt1, pt2, pt3, pt4) {\r\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\r\n\r\n if (!storedData[bezierName]) {\r\n var curveSegments = getDefaultCurveSegments();\r\n var k;\r\n var i;\r\n var len;\r\n var ptCoord;\r\n var perc;\r\n var addedLength = 0;\r\n var ptDistance;\r\n var point;\r\n var lastPoint = null;\r\n\r\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])) {\r\n curveSegments = 2;\r\n }\r\n\r\n var bezierData = new BezierData(curveSegments);\r\n len = pt3.length;\r\n\r\n for (k = 0; k < curveSegments; k += 1) {\r\n point = createSizedArray(len);\r\n perc = k / (curveSegments - 1);\r\n ptDistance = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\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];\r\n point[i] = ptCoord;\r\n\r\n if (lastPoint !== null) {\r\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\r\n }\r\n }\r\n\r\n ptDistance = bmSqrt(ptDistance);\r\n addedLength += ptDistance;\r\n bezierData.points[k] = new PointData(ptDistance, point);\r\n lastPoint = point;\r\n }\r\n\r\n bezierData.segmentLength = addedLength;\r\n storedData[bezierName] = bezierData;\r\n }\r\n\r\n return storedData[bezierName];\r\n };\r\n }();\r\n\r\n function getDistancePerc(perc, bezierData) {\r\n var percents = bezierData.percents;\r\n var lengths = bezierData.lengths;\r\n var len = percents.length;\r\n var initPos = bmFloor((len - 1) * perc);\r\n var lengthPos = perc * bezierData.addedLength;\r\n var lPerc = 0;\r\n\r\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\r\n return percents[initPos];\r\n }\r\n\r\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\r\n var flag = true;\r\n\r\n while (flag) {\r\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\r\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\r\n flag = false;\r\n } else {\r\n initPos += dir;\r\n }\r\n\r\n if (initPos < 0 || initPos >= len - 1) {\r\n // FIX for TypedArrays that don't store floating point values with enough accuracy\r\n if (initPos === len - 1) {\r\n return percents[initPos];\r\n }\r\n\r\n flag = false;\r\n }\r\n }\r\n\r\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\r\n }\r\n\r\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\r\n var t1 = getDistancePerc(percent, bezierData);\r\n var u1 = 1 - t1;\r\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;\r\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;\r\n return [ptX, ptY];\r\n }\r\n\r\n var bezierSegmentPoints = createTypedArray('float32', 8);\r\n\r\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\r\n if (startPerc < 0) {\r\n startPerc = 0;\r\n } else if (startPerc > 1) {\r\n startPerc = 1;\r\n }\r\n\r\n var t0 = getDistancePerc(startPerc, bezierData);\r\n endPerc = endPerc > 1 ? 1 : endPerc;\r\n var t1 = getDistancePerc(endPerc, bezierData);\r\n var i;\r\n var len = pt1.length;\r\n var u0 = 1 - t0;\r\n var u1 = 1 - t1;\r\n var u0u0u0 = u0 * u0 * u0;\r\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\r\n\r\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\r\n\r\n var t0t0t0 = t0 * t0 * t0; //\r\n\r\n var u0u0u1 = u0 * u0 * u1;\r\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\r\n\r\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\r\n\r\n var t0t0t1 = t0 * t0 * t1; //\r\n\r\n var u0u1u1 = u0 * u1 * u1;\r\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\r\n\r\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\r\n\r\n var t0t1t1 = t0 * t1 * t1; //\r\n\r\n var u1u1u1 = u1 * u1 * u1;\r\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\r\n\r\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\r\n\r\n var t1t1t1 = t1 * t1 * t1;\r\n\r\n for (i = 0; i < len; i += 1) {\r\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\r\n\r\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\r\n\r\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\r\n\r\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\r\n }\r\n\r\n return bezierSegmentPoints;\r\n }\r\n\r\n return {\r\n getSegmentsLength: getSegmentsLength,\r\n getNewSegment: getNewSegment,\r\n getPointInSegment: getPointInSegment,\r\n buildBezierData: buildBezierData,\r\n pointOnLine2D: pointOnLine2D,\r\n pointOnLine3D: pointOnLine3D\r\n };\r\n }\r\n\r\n var bez = bezFunction();\r\n\r\n var PropertyFactory = function () {\r\n var initFrame = initialDefaultFrame;\r\n var mathAbs = Math.abs;\r\n\r\n function interpolateValue(frameNum, caching) {\r\n var offsetTime = this.offsetTime;\r\n var newValue;\r\n\r\n if (this.propType === 'multidimensional') {\r\n newValue = createTypedArray('float32', this.pv.length);\r\n }\r\n\r\n var iterationIndex = caching.lastIndex;\r\n var i = iterationIndex;\r\n var len = this.keyframes.length - 1;\r\n var flag = true;\r\n var keyData;\r\n var nextKeyData;\r\n var keyframeMetadata;\r\n\r\n while (flag) {\r\n keyData = this.keyframes[i];\r\n nextKeyData = this.keyframes[i + 1];\r\n\r\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\r\n if (keyData.h) {\r\n keyData = nextKeyData;\r\n }\r\n\r\n iterationIndex = 0;\r\n break;\r\n }\r\n\r\n if (nextKeyData.t - offsetTime > frameNum) {\r\n iterationIndex = i;\r\n break;\r\n }\r\n\r\n if (i < len - 1) {\r\n i += 1;\r\n } else {\r\n iterationIndex = 0;\r\n flag = false;\r\n }\r\n }\r\n\r\n keyframeMetadata = this.keyframesMetadata[i] || {};\r\n var k;\r\n var kLen;\r\n var perc;\r\n var jLen;\r\n var j;\r\n var fnc;\r\n var nextKeyTime = nextKeyData.t - offsetTime;\r\n var keyTime = keyData.t - offsetTime;\r\n var endValue;\r\n\r\n if (keyData.to) {\r\n if (!keyframeMetadata.bezierData) {\r\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\r\n }\r\n\r\n var bezierData = keyframeMetadata.bezierData;\r\n\r\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\r\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\r\n kLen = bezierData.points[ind].point.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[ind].point[k];\r\n } // caching._lastKeyframeIndex = -1;\r\n\r\n } else {\r\n if (keyframeMetadata.__fnct) {\r\n fnc = keyframeMetadata.__fnct;\r\n } else {\r\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\r\n keyframeMetadata.__fnct = fnc;\r\n }\r\n\r\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\r\n var distanceInLine = bezierData.segmentLength * perc;\r\n var segmentPerc;\r\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\r\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\r\n flag = true;\r\n jLen = bezierData.points.length;\r\n\r\n while (flag) {\r\n addedLength += bezierData.points[j].partialLength;\r\n\r\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\r\n kLen = bezierData.points[j].point.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[j].point[k];\r\n }\r\n\r\n break;\r\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\r\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\r\n kLen = bezierData.points[j].point.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\r\n }\r\n\r\n break;\r\n }\r\n\r\n if (j < jLen - 1) {\r\n j += 1;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n\r\n caching._lastPoint = j;\r\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\r\n caching._lastKeyframeIndex = i;\r\n }\r\n } else {\r\n var outX;\r\n var outY;\r\n var inX;\r\n var inY;\r\n var keyValue;\r\n len = keyData.s.length;\r\n endValue = nextKeyData.s || keyData.e;\r\n\r\n if (this.sh && keyData.h !== 1) {\r\n if (frameNum >= nextKeyTime) {\r\n newValue[0] = endValue[0];\r\n newValue[1] = endValue[1];\r\n newValue[2] = endValue[2];\r\n } else if (frameNum <= keyTime) {\r\n newValue[0] = keyData.s[0];\r\n newValue[1] = keyData.s[1];\r\n newValue[2] = keyData.s[2];\r\n } else {\r\n var quatStart = createQuaternion(keyData.s);\r\n var quatEnd = createQuaternion(endValue);\r\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\r\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\r\n }\r\n } else {\r\n for (i = 0; i < len; i += 1) {\r\n if (keyData.h !== 1) {\r\n if (frameNum >= nextKeyTime) {\r\n perc = 1;\r\n } else if (frameNum < keyTime) {\r\n perc = 0;\r\n } else {\r\n if (keyData.o.x.constructor === Array) {\r\n if (!keyframeMetadata.__fnct) {\r\n keyframeMetadata.__fnct = [];\r\n }\r\n\r\n if (!keyframeMetadata.__fnct[i]) {\r\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\r\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\r\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\r\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\r\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\r\n keyframeMetadata.__fnct[i] = fnc;\r\n } else {\r\n fnc = keyframeMetadata.__fnct[i];\r\n }\r\n } else if (!keyframeMetadata.__fnct) {\r\n outX = keyData.o.x;\r\n outY = keyData.o.y;\r\n inX = keyData.i.x;\r\n inY = keyData.i.y;\r\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\r\n keyData.keyframeMetadata = fnc;\r\n } else {\r\n fnc = keyframeMetadata.__fnct;\r\n }\r\n\r\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\r\n }\r\n }\r\n\r\n endValue = nextKeyData.s || keyData.e;\r\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\r\n\r\n if (this.propType === 'multidimensional') {\r\n newValue[i] = keyValue;\r\n } else {\r\n newValue = keyValue;\r\n }\r\n }\r\n }\r\n }\r\n\r\n caching.lastIndex = iterationIndex;\r\n return newValue;\r\n } // based on @Toji's https://github.com/toji/gl-matrix/\r\n\r\n\r\n function slerp(a, b, t) {\r\n var out = [];\r\n var ax = a[0];\r\n var ay = a[1];\r\n var az = a[2];\r\n var aw = a[3];\r\n var bx = b[0];\r\n var by = b[1];\r\n var bz = b[2];\r\n var bw = b[3];\r\n var omega;\r\n var cosom;\r\n var sinom;\r\n var scale0;\r\n var scale1;\r\n cosom = ax * bx + ay * by + az * bz + aw * bw;\r\n\r\n if (cosom < 0.0) {\r\n cosom = -cosom;\r\n bx = -bx;\r\n by = -by;\r\n bz = -bz;\r\n bw = -bw;\r\n }\r\n\r\n if (1.0 - cosom > 0.000001) {\r\n omega = Math.acos(cosom);\r\n sinom = Math.sin(omega);\r\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\r\n scale1 = Math.sin(t * omega) / sinom;\r\n } else {\r\n scale0 = 1.0 - t;\r\n scale1 = t;\r\n }\r\n\r\n out[0] = scale0 * ax + scale1 * bx;\r\n out[1] = scale0 * ay + scale1 * by;\r\n out[2] = scale0 * az + scale1 * bz;\r\n out[3] = scale0 * aw + scale1 * bw;\r\n return out;\r\n }\r\n\r\n function quaternionToEuler(out, quat) {\r\n var qx = quat[0];\r\n var qy = quat[1];\r\n var qz = quat[2];\r\n var qw = quat[3];\r\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\r\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\r\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\r\n out[0] = heading / degToRads;\r\n out[1] = attitude / degToRads;\r\n out[2] = bank / degToRads;\r\n }\r\n\r\n function createQuaternion(values) {\r\n var heading = values[0] * degToRads;\r\n var attitude = values[1] * degToRads;\r\n var bank = values[2] * degToRads;\r\n var c1 = Math.cos(heading / 2);\r\n var c2 = Math.cos(attitude / 2);\r\n var c3 = Math.cos(bank / 2);\r\n var s1 = Math.sin(heading / 2);\r\n var s2 = Math.sin(attitude / 2);\r\n var s3 = Math.sin(bank / 2);\r\n var w = c1 * c2 * c3 - s1 * s2 * s3;\r\n var x = s1 * s2 * c3 + c1 * c2 * s3;\r\n var y = s1 * c2 * c3 + c1 * s2 * s3;\r\n var z = c1 * s2 * c3 - s1 * c2 * s3;\r\n return [x, y, z, w];\r\n }\r\n\r\n function getValueAtCurrentTime() {\r\n var frameNum = this.comp.renderedFrame - this.offsetTime;\r\n var initTime = this.keyframes[0].t - this.offsetTime;\r\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\r\n\r\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\r\n if (this._caching.lastFrame >= frameNum) {\r\n this._caching._lastKeyframeIndex = -1;\r\n this._caching.lastIndex = 0;\r\n }\r\n\r\n var renderResult = this.interpolateValue(frameNum, this._caching);\r\n this.pv = renderResult;\r\n }\r\n\r\n this._caching.lastFrame = frameNum;\r\n return this.pv;\r\n }\r\n\r\n function setVValue(val) {\r\n var multipliedValue;\r\n\r\n if (this.propType === 'unidimensional') {\r\n multipliedValue = val * this.mult;\r\n\r\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\r\n this.v = multipliedValue;\r\n this._mdf = true;\r\n }\r\n } else {\r\n var i = 0;\r\n var len = this.v.length;\r\n\r\n while (i < len) {\r\n multipliedValue = val[i] * this.mult;\r\n\r\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\r\n this.v[i] = multipliedValue;\r\n this._mdf = true;\r\n }\r\n\r\n i += 1;\r\n }\r\n }\r\n }\r\n\r\n function processEffectsSequence() {\r\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\r\n return;\r\n }\r\n\r\n if (this.lock) {\r\n this.setVValue(this.pv);\r\n return;\r\n }\r\n\r\n this.lock = true;\r\n this._mdf = this._isFirstFrame;\r\n var i;\r\n var len = this.effectsSequence.length;\r\n var finalValue = this.kf ? this.pv : this.data.k;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n finalValue = this.effectsSequence[i](finalValue);\r\n }\r\n\r\n this.setVValue(finalValue);\r\n this._isFirstFrame = false;\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function addEffect(effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.container.addDynamicProperty(this);\r\n }\r\n\r\n function ValueProperty(elem, data, mult, container) {\r\n this.propType = 'unidimensional';\r\n this.mult = mult || 1;\r\n this.data = data;\r\n this.v = mult ? data.k * mult : data.k;\r\n this.pv = data.k;\r\n this._mdf = false;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.k = false;\r\n this.kf = false;\r\n this.vel = 0;\r\n this.effectsSequence = [];\r\n this._isFirstFrame = true;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function MultiDimensionalProperty(elem, data, mult, container) {\r\n this.propType = 'multidimensional';\r\n this.mult = mult || 1;\r\n this.data = data;\r\n this._mdf = false;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.k = false;\r\n this.kf = false;\r\n this.frameId = -1;\r\n var i;\r\n var len = data.k.length;\r\n this.v = createTypedArray('float32', len);\r\n this.pv = createTypedArray('float32', len);\r\n this.vel = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.v[i] = data.k[i] * this.mult;\r\n this.pv[i] = data.k[i];\r\n }\r\n\r\n this._isFirstFrame = true;\r\n this.effectsSequence = [];\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function KeyframedValueProperty(elem, data, mult, container) {\r\n this.propType = 'unidimensional';\r\n this.keyframes = data.k;\r\n this.keyframesMetadata = [];\r\n this.offsetTime = elem.data.st;\r\n this.frameId = -1;\r\n this._caching = {\r\n lastFrame: initFrame,\r\n lastIndex: 0,\r\n value: 0,\r\n _lastKeyframeIndex: -1\r\n };\r\n this.k = true;\r\n this.kf = true;\r\n this.data = data;\r\n this.mult = mult || 1;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.v = initFrame;\r\n this.pv = initFrame;\r\n this._isFirstFrame = true;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.interpolateValue = interpolateValue;\r\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\r\n this.propType = 'multidimensional';\r\n var i;\r\n var len = data.k.length;\r\n var s;\r\n var e;\r\n var to;\r\n var ti;\r\n\r\n for (i = 0; i < len - 1; i += 1) {\r\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\r\n s = data.k[i].s;\r\n e = data.k[i + 1].s;\r\n to = data.k[i].to;\r\n ti = data.k[i].ti;\r\n\r\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])) {\r\n data.k[i].to = null;\r\n data.k[i].ti = null;\r\n }\r\n\r\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\r\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\r\n data.k[i].to = null;\r\n data.k[i].ti = null;\r\n }\r\n }\r\n }\r\n }\r\n\r\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\r\n this.data = data;\r\n this.keyframes = data.k;\r\n this.keyframesMetadata = [];\r\n this.offsetTime = elem.data.st;\r\n this.k = true;\r\n this.kf = true;\r\n this._isFirstFrame = true;\r\n this.mult = mult || 1;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.interpolateValue = interpolateValue;\r\n this.frameId = -1;\r\n var arrLen = data.k[0].s.length;\r\n this.v = createTypedArray('float32', arrLen);\r\n this.pv = createTypedArray('float32', arrLen);\r\n\r\n for (i = 0; i < arrLen; i += 1) {\r\n this.v[i] = initFrame;\r\n this.pv[i] = initFrame;\r\n }\r\n\r\n this._caching = {\r\n lastFrame: initFrame,\r\n lastIndex: 0,\r\n value: createTypedArray('float32', arrLen)\r\n };\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function getProp(elem, data, type, mult, container) {\r\n var p;\r\n\r\n if (!data.k.length) {\r\n p = new ValueProperty(elem, data, mult, container);\r\n } else if (typeof data.k[0] === 'number') {\r\n p = new MultiDimensionalProperty(elem, data, mult, container);\r\n } else {\r\n switch (type) {\r\n case 0:\r\n p = new KeyframedValueProperty(elem, data, mult, container);\r\n break;\r\n\r\n case 1:\r\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n if (p.effectsSequence.length) {\r\n container.addDynamicProperty(p);\r\n }\r\n\r\n return p;\r\n }\r\n\r\n var ob = {\r\n getProp: getProp\r\n };\r\n return ob;\r\n }();\r\n\r\n function DynamicPropertyContainer() {}\r\n\r\n DynamicPropertyContainer.prototype = {\r\n addDynamicProperty: function addDynamicProperty(prop) {\r\n if (this.dynamicProperties.indexOf(prop) === -1) {\r\n this.dynamicProperties.push(prop);\r\n this.container.addDynamicProperty(this);\r\n this._isAnimated = true;\r\n }\r\n },\r\n iterateDynamicProperties: function iterateDynamicProperties() {\r\n this._mdf = false;\r\n var i;\r\n var len = this.dynamicProperties.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n\r\n if (this.dynamicProperties[i]._mdf) {\r\n this._mdf = true;\r\n }\r\n }\r\n },\r\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\r\n this.container = container;\r\n this.dynamicProperties = [];\r\n this._mdf = false;\r\n this._isAnimated = false;\r\n }\r\n };\r\n\r\n var pointPool = function () {\r\n function create() {\r\n return createTypedArray('float32', 2);\r\n }\r\n\r\n return poolFactory(8, create);\r\n }();\r\n\r\n function ShapePath() {\r\n this.c = false;\r\n this._length = 0;\r\n this._maxLength = 8;\r\n this.v = createSizedArray(this._maxLength);\r\n this.o = createSizedArray(this._maxLength);\r\n this.i = createSizedArray(this._maxLength);\r\n }\r\n\r\n ShapePath.prototype.setPathData = function (closed, len) {\r\n this.c = closed;\r\n this.setLength(len);\r\n var i = 0;\r\n\r\n while (i < len) {\r\n this.v[i] = pointPool.newElement();\r\n this.o[i] = pointPool.newElement();\r\n this.i[i] = pointPool.newElement();\r\n i += 1;\r\n }\r\n };\r\n\r\n ShapePath.prototype.setLength = function (len) {\r\n while (this._maxLength < len) {\r\n this.doubleArrayLength();\r\n }\r\n\r\n this._length = len;\r\n };\r\n\r\n ShapePath.prototype.doubleArrayLength = function () {\r\n this.v = this.v.concat(createSizedArray(this._maxLength));\r\n this.i = this.i.concat(createSizedArray(this._maxLength));\r\n this.o = this.o.concat(createSizedArray(this._maxLength));\r\n this._maxLength *= 2;\r\n };\r\n\r\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\r\n var arr;\r\n this._length = Math.max(this._length, pos + 1);\r\n\r\n if (this._length >= this._maxLength) {\r\n this.doubleArrayLength();\r\n }\r\n\r\n switch (type) {\r\n case 'v':\r\n arr = this.v;\r\n break;\r\n\r\n case 'i':\r\n arr = this.i;\r\n break;\r\n\r\n case 'o':\r\n arr = this.o;\r\n break;\r\n\r\n default:\r\n arr = [];\r\n break;\r\n }\r\n\r\n if (!arr[pos] || arr[pos] && !replace) {\r\n arr[pos] = pointPool.newElement();\r\n }\r\n\r\n arr[pos][0] = x;\r\n arr[pos][1] = y;\r\n };\r\n\r\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\r\n this.setXYAt(vX, vY, 'v', pos, replace);\r\n this.setXYAt(oX, oY, 'o', pos, replace);\r\n this.setXYAt(iX, iY, 'i', pos, replace);\r\n };\r\n\r\n ShapePath.prototype.reverse = function () {\r\n var newPath = new ShapePath();\r\n newPath.setPathData(this.c, this._length);\r\n var vertices = this.v;\r\n var outPoints = this.o;\r\n var inPoints = this.i;\r\n var init = 0;\r\n\r\n if (this.c) {\r\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\r\n init = 1;\r\n }\r\n\r\n var cnt = this._length - 1;\r\n var len = this._length;\r\n var i;\r\n\r\n for (i = init; i < len; i += 1) {\r\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\r\n cnt -= 1;\r\n }\r\n\r\n return newPath;\r\n };\r\n\r\n ShapePath.prototype.length = function () {\r\n return this._length;\r\n };\r\n\r\n var shapePool = function () {\r\n function create() {\r\n return new ShapePath();\r\n }\r\n\r\n function release(shapePath) {\r\n var len = shapePath._length;\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n pointPool.release(shapePath.v[i]);\r\n pointPool.release(shapePath.i[i]);\r\n pointPool.release(shapePath.o[i]);\r\n shapePath.v[i] = null;\r\n shapePath.i[i] = null;\r\n shapePath.o[i] = null;\r\n }\r\n\r\n shapePath._length = 0;\r\n shapePath.c = false;\r\n }\r\n\r\n function clone(shape) {\r\n var cloned = factory.newElement();\r\n var i;\r\n var len = shape._length === undefined ? shape.v.length : shape._length;\r\n cloned.setLength(len);\r\n cloned.c = shape.c;\r\n\r\n for (i = 0; i < len; i += 1) {\r\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);\r\n }\r\n\r\n return cloned;\r\n }\r\n\r\n var factory = poolFactory(4, create, release);\r\n factory.clone = clone;\r\n return factory;\r\n }();\r\n\r\n function ShapeCollection() {\r\n this._length = 0;\r\n this._maxLength = 4;\r\n this.shapes = createSizedArray(this._maxLength);\r\n }\r\n\r\n ShapeCollection.prototype.addShape = function (shapeData) {\r\n if (this._length === this._maxLength) {\r\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\r\n this._maxLength *= 2;\r\n }\r\n\r\n this.shapes[this._length] = shapeData;\r\n this._length += 1;\r\n };\r\n\r\n ShapeCollection.prototype.releaseShapes = function () {\r\n var i;\r\n\r\n for (i = 0; i < this._length; i += 1) {\r\n shapePool.release(this.shapes[i]);\r\n }\r\n\r\n this._length = 0;\r\n };\r\n\r\n var shapeCollectionPool = function () {\r\n var ob = {\r\n newShapeCollection: newShapeCollection,\r\n release: release\r\n };\r\n var _length = 0;\r\n var _maxLength = 4;\r\n var pool = createSizedArray(_maxLength);\r\n\r\n function newShapeCollection() {\r\n var shapeCollection;\r\n\r\n if (_length) {\r\n _length -= 1;\r\n shapeCollection = pool[_length];\r\n } else {\r\n shapeCollection = new ShapeCollection();\r\n }\r\n\r\n return shapeCollection;\r\n }\r\n\r\n function release(shapeCollection) {\r\n var i;\r\n var len = shapeCollection._length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapePool.release(shapeCollection.shapes[i]);\r\n }\r\n\r\n shapeCollection._length = 0;\r\n\r\n if (_length === _maxLength) {\r\n pool = pooling[\"double\"](pool);\r\n _maxLength *= 2;\r\n }\r\n\r\n pool[_length] = shapeCollection;\r\n _length += 1;\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n var ShapePropertyFactory = function () {\r\n var initFrame = -999999;\r\n\r\n function interpolateShape(frameNum, previousValue, caching) {\r\n var iterationIndex = caching.lastIndex;\r\n var keyPropS;\r\n var keyPropE;\r\n var isHold;\r\n var j;\r\n var k;\r\n var jLen;\r\n var kLen;\r\n var perc;\r\n var vertexValue;\r\n var kf = this.keyframes;\r\n\r\n if (frameNum < kf[0].t - this.offsetTime) {\r\n keyPropS = kf[0].s[0];\r\n isHold = true;\r\n iterationIndex = 0;\r\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\r\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\r\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 } */\r\n\r\n isHold = true;\r\n } else {\r\n var i = iterationIndex;\r\n var len = kf.length - 1;\r\n var flag = true;\r\n var keyData;\r\n var nextKeyData;\r\n var keyframeMetadata;\r\n\r\n while (flag) {\r\n keyData = kf[i];\r\n nextKeyData = kf[i + 1];\r\n\r\n if (nextKeyData.t - this.offsetTime > frameNum) {\r\n break;\r\n }\r\n\r\n if (i < len - 1) {\r\n i += 1;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n\r\n keyframeMetadata = this.keyframesMetadata[i] || {};\r\n isHold = keyData.h === 1;\r\n iterationIndex = i;\r\n\r\n if (!isHold) {\r\n if (frameNum >= nextKeyData.t - this.offsetTime) {\r\n perc = 1;\r\n } else if (frameNum < keyData.t - this.offsetTime) {\r\n perc = 0;\r\n } else {\r\n var fnc;\r\n\r\n if (keyframeMetadata.__fnct) {\r\n fnc = keyframeMetadata.__fnct;\r\n } else {\r\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\r\n keyframeMetadata.__fnct = fnc;\r\n }\r\n\r\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\r\n }\r\n\r\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\r\n }\r\n\r\n keyPropS = keyData.s[0];\r\n }\r\n\r\n jLen = previousValue._length;\r\n kLen = keyPropS.i[0].length;\r\n caching.lastIndex = iterationIndex;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n for (k = 0; k < kLen; k += 1) {\r\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\r\n previousValue.i[j][k] = vertexValue;\r\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\r\n previousValue.o[j][k] = vertexValue;\r\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\r\n previousValue.v[j][k] = vertexValue;\r\n }\r\n }\r\n }\r\n\r\n function interpolateShapeCurrentTime() {\r\n var frameNum = this.comp.renderedFrame - this.offsetTime;\r\n var initTime = this.keyframes[0].t - this.offsetTime;\r\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\r\n var lastFrame = this._caching.lastFrame;\r\n\r\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\r\n /// /\r\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\r\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\r\n }\r\n\r\n this._caching.lastFrame = frameNum;\r\n return this.pv;\r\n }\r\n\r\n function resetShape() {\r\n this.paths = this.localShapeCollection;\r\n }\r\n\r\n function shapesEqual(shape1, shape2) {\r\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\r\n return false;\r\n }\r\n\r\n var i;\r\n var len = shape1._length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\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]) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n function setVValue(newPath) {\r\n if (!shapesEqual(this.v, newPath)) {\r\n this.v = shapePool.clone(newPath);\r\n this.localShapeCollection.releaseShapes();\r\n this.localShapeCollection.addShape(this.v);\r\n this._mdf = true;\r\n this.paths = this.localShapeCollection;\r\n }\r\n }\r\n\r\n function processEffectsSequence() {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n\r\n if (!this.effectsSequence.length) {\r\n this._mdf = false;\r\n return;\r\n }\r\n\r\n if (this.lock) {\r\n this.setVValue(this.pv);\r\n return;\r\n }\r\n\r\n this.lock = true;\r\n this._mdf = false;\r\n var finalValue;\r\n\r\n if (this.kf) {\r\n finalValue = this.pv;\r\n } else if (this.data.ks) {\r\n finalValue = this.data.ks.k;\r\n } else {\r\n finalValue = this.data.pt.k;\r\n }\r\n\r\n var i;\r\n var len = this.effectsSequence.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n finalValue = this.effectsSequence[i](finalValue);\r\n }\r\n\r\n this.setVValue(finalValue);\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function ShapeProperty(elem, data, type) {\r\n this.propType = 'shape';\r\n this.comp = elem.comp;\r\n this.container = elem;\r\n this.elem = elem;\r\n this.data = data;\r\n this.k = false;\r\n this.kf = false;\r\n this._mdf = false;\r\n var pathData = type === 3 ? data.pt.k : data.ks.k;\r\n this.v = shapePool.clone(pathData);\r\n this.pv = shapePool.clone(this.v);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.paths.addShape(this.v);\r\n this.reset = resetShape;\r\n this.effectsSequence = [];\r\n }\r\n\r\n function addEffect(effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.container.addDynamicProperty(this);\r\n }\r\n\r\n ShapeProperty.prototype.interpolateShape = interpolateShape;\r\n ShapeProperty.prototype.getValue = processEffectsSequence;\r\n ShapeProperty.prototype.setVValue = setVValue;\r\n ShapeProperty.prototype.addEffect = addEffect;\r\n\r\n function KeyframedShapeProperty(elem, data, type) {\r\n this.propType = 'shape';\r\n this.comp = elem.comp;\r\n this.elem = elem;\r\n this.container = elem;\r\n this.offsetTime = elem.data.st;\r\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\r\n this.keyframesMetadata = [];\r\n this.k = true;\r\n this.kf = true;\r\n var len = this.keyframes[0].s[0].i.length;\r\n this.v = shapePool.newElement();\r\n this.v.setPathData(this.keyframes[0].s[0].c, len);\r\n this.pv = shapePool.clone(this.v);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.paths.addShape(this.v);\r\n this.lastFrame = initFrame;\r\n this.reset = resetShape;\r\n this._caching = {\r\n lastFrame: initFrame,\r\n lastIndex: 0\r\n };\r\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\r\n }\r\n\r\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\r\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\r\n KeyframedShapeProperty.prototype.setVValue = setVValue;\r\n KeyframedShapeProperty.prototype.addEffect = addEffect;\r\n\r\n var EllShapeProperty = function () {\r\n var cPoint = roundCorner;\r\n\r\n function EllShapePropertyFactory(elem, data) {\r\n this.v = shapePool.newElement();\r\n this.v.setPathData(true, 4);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.localShapeCollection.addShape(this.v);\r\n this.d = data.d;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.frameId = -1;\r\n this.initDynamicPropertyContainer(elem);\r\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\r\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\r\n\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.k = false;\r\n this.convertEllToPath();\r\n }\r\n }\r\n\r\n EllShapePropertyFactory.prototype = {\r\n reset: resetShape,\r\n getValue: function getValue() {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf) {\r\n this.convertEllToPath();\r\n }\r\n },\r\n convertEllToPath: function convertEllToPath() {\r\n var p0 = this.p.v[0];\r\n var p1 = this.p.v[1];\r\n var s0 = this.s.v[0] / 2;\r\n var s1 = this.s.v[1] / 2;\r\n\r\n var _cw = this.d !== 3;\r\n\r\n var _v = this.v;\r\n _v.v[0][0] = p0;\r\n _v.v[0][1] = p1 - s1;\r\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.v[1][1] = p1;\r\n _v.v[2][0] = p0;\r\n _v.v[2][1] = p1 + s1;\r\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.v[3][1] = p1;\r\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\r\n _v.i[0][1] = p1 - s1;\r\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.i[1][1] = p1 - s1 * cPoint;\r\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\r\n _v.i[2][1] = p1 + s1;\r\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.i[3][1] = p1 + s1 * cPoint;\r\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\r\n _v.o[0][1] = p1 - s1;\r\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.o[1][1] = p1 + s1 * cPoint;\r\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\r\n _v.o[2][1] = p1 + s1;\r\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.o[3][1] = p1 - s1 * cPoint;\r\n }\r\n };\r\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\r\n return EllShapePropertyFactory;\r\n }();\r\n\r\n var StarShapeProperty = function () {\r\n function StarShapePropertyFactory(elem, data) {\r\n this.v = shapePool.newElement();\r\n this.v.setPathData(true, 0);\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.data = data;\r\n this.frameId = -1;\r\n this.d = data.d;\r\n this.initDynamicPropertyContainer(elem);\r\n\r\n if (data.sy === 1) {\r\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\r\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\r\n this.convertToPath = this.convertStarToPath;\r\n } else {\r\n this.convertToPath = this.convertPolygonToPath;\r\n }\r\n\r\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\r\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\r\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\r\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\r\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.localShapeCollection.addShape(this.v);\r\n this.paths = this.localShapeCollection;\r\n\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.k = false;\r\n this.convertToPath();\r\n }\r\n }\r\n\r\n StarShapePropertyFactory.prototype = {\r\n reset: resetShape,\r\n getValue: function getValue() {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf) {\r\n this.convertToPath();\r\n }\r\n },\r\n convertStarToPath: function convertStarToPath() {\r\n var numPts = Math.floor(this.pt.v) * 2;\r\n var angle = Math.PI * 2 / numPts;\r\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\r\n\r\n var longFlag = true;\r\n var longRad = this.or.v;\r\n var shortRad = this.ir.v;\r\n var longRound = this.os.v;\r\n var shortRound = this.is.v;\r\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\r\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\r\n var i;\r\n var rad;\r\n var roundness;\r\n var perimSegment;\r\n var currentAng = -Math.PI / 2;\r\n currentAng += this.r.v;\r\n var dir = this.data.d === 3 ? -1 : 1;\r\n this.v._length = 0;\r\n\r\n for (i = 0; i < numPts; i += 1) {\r\n rad = longFlag ? longRad : shortRad;\r\n roundness = longFlag ? longRound : shortRound;\r\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\r\n var x = rad * Math.cos(currentAng);\r\n var y = rad * Math.sin(currentAng);\r\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\r\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\r\n x += +this.p.v[0];\r\n y += +this.p.v[1];\r\n this.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);\r\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; */\r\n\r\n longFlag = !longFlag;\r\n currentAng += angle * dir;\r\n }\r\n },\r\n convertPolygonToPath: function convertPolygonToPath() {\r\n var numPts = Math.floor(this.pt.v);\r\n var angle = Math.PI * 2 / numPts;\r\n var rad = this.or.v;\r\n var roundness = this.os.v;\r\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\r\n var i;\r\n var currentAng = -Math.PI * 0.5;\r\n var dir = this.data.d === 3 ? -1 : 1;\r\n currentAng += this.r.v;\r\n this.v._length = 0;\r\n\r\n for (i = 0; i < numPts; i += 1) {\r\n var x = rad * Math.cos(currentAng);\r\n var y = rad * Math.sin(currentAng);\r\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\r\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\r\n x += +this.p.v[0];\r\n y += +this.p.v[1];\r\n this.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);\r\n currentAng += angle * dir;\r\n }\r\n\r\n this.paths.length = 0;\r\n this.paths[0] = this.v;\r\n }\r\n };\r\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\r\n return StarShapePropertyFactory;\r\n }();\r\n\r\n var RectShapeProperty = function () {\r\n function RectShapePropertyFactory(elem, data) {\r\n this.v = shapePool.newElement();\r\n this.v.c = true;\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.localShapeCollection.addShape(this.v);\r\n this.paths = this.localShapeCollection;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.frameId = -1;\r\n this.d = data.d;\r\n this.initDynamicPropertyContainer(elem);\r\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\r\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\r\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\r\n\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.k = false;\r\n this.convertRectToPath();\r\n }\r\n }\r\n\r\n RectShapePropertyFactory.prototype = {\r\n convertRectToPath: function convertRectToPath() {\r\n var p0 = this.p.v[0];\r\n var p1 = this.p.v[1];\r\n var v0 = this.s.v[0] / 2;\r\n var v1 = this.s.v[1] / 2;\r\n var round = bmMin(v0, v1, this.r.v);\r\n var cPoint = round * (1 - roundCorner);\r\n this.v._length = 0;\r\n\r\n if (this.d === 2 || this.d === 1) {\r\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\r\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\r\n\r\n if (round !== 0) {\r\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\r\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\r\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\r\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\r\n } else {\r\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\r\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\r\n }\r\n } else {\r\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\r\n\r\n if (round !== 0) {\r\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\r\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\r\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\r\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\r\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\r\n } else {\r\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\r\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\r\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\r\n }\r\n }\r\n },\r\n getValue: function getValue() {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf) {\r\n this.convertRectToPath();\r\n }\r\n },\r\n reset: resetShape\r\n };\r\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\r\n return RectShapePropertyFactory;\r\n }();\r\n\r\n function getShapeProp(elem, data, type) {\r\n var prop;\r\n\r\n if (type === 3 || type === 4) {\r\n var dataProp = type === 3 ? data.pt : data.ks;\r\n var keys = dataProp.k;\r\n\r\n if (keys.length) {\r\n prop = new KeyframedShapeProperty(elem, data, type);\r\n } else {\r\n prop = new ShapeProperty(elem, data, type);\r\n }\r\n } else if (type === 5) {\r\n prop = new RectShapeProperty(elem, data);\r\n } else if (type === 6) {\r\n prop = new EllShapeProperty(elem, data);\r\n } else if (type === 7) {\r\n prop = new StarShapeProperty(elem, data);\r\n }\r\n\r\n if (prop.k) {\r\n elem.addDynamicProperty(prop);\r\n }\r\n\r\n return prop;\r\n }\r\n\r\n function getConstructorFunction() {\r\n return ShapeProperty;\r\n }\r\n\r\n function getKeyframedConstructorFunction() {\r\n return KeyframedShapeProperty;\r\n }\r\n\r\n var ob = {};\r\n ob.getShapeProp = getShapeProp;\r\n ob.getConstructorFunction = getConstructorFunction;\r\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\r\n return ob;\r\n }();\r\n\r\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 */\r\n\r\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 */\r\n\r\n var Matrix = function () {\r\n var _cos = Math.cos;\r\n var _sin = Math.sin;\r\n var _tan = Math.tan;\r\n var _rnd = Math.round;\r\n\r\n function reset() {\r\n this.props[0] = 1;\r\n this.props[1] = 0;\r\n this.props[2] = 0;\r\n this.props[3] = 0;\r\n this.props[4] = 0;\r\n this.props[5] = 1;\r\n this.props[6] = 0;\r\n this.props[7] = 0;\r\n this.props[8] = 0;\r\n this.props[9] = 0;\r\n this.props[10] = 1;\r\n this.props[11] = 0;\r\n this.props[12] = 0;\r\n this.props[13] = 0;\r\n this.props[14] = 0;\r\n this.props[15] = 1;\r\n return this;\r\n }\r\n\r\n function rotate(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n\r\n var mCos = _cos(angle);\r\n\r\n var mSin = _sin(angle);\r\n\r\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function rotateX(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n\r\n var mCos = _cos(angle);\r\n\r\n var mSin = _sin(angle);\r\n\r\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function rotateY(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n\r\n var mCos = _cos(angle);\r\n\r\n var mSin = _sin(angle);\r\n\r\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function rotateZ(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n\r\n var mCos = _cos(angle);\r\n\r\n var mSin = _sin(angle);\r\n\r\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function shear(sx, sy) {\r\n return this._t(1, sy, sx, 1, 0, 0);\r\n }\r\n\r\n function skew(ax, ay) {\r\n return this.shear(_tan(ax), _tan(ay));\r\n }\r\n\r\n function skewFromAxis(ax, angle) {\r\n var mCos = _cos(angle);\r\n\r\n var mSin = _sin(angle);\r\n\r\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);\r\n }\r\n\r\n function scale(sx, sy, sz) {\r\n if (!sz && sz !== 0) {\r\n sz = 1;\r\n }\r\n\r\n if (sx === 1 && sy === 1 && sz === 1) {\r\n return this;\r\n }\r\n\r\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\r\n this.props[0] = a;\r\n this.props[1] = b;\r\n this.props[2] = c;\r\n this.props[3] = d;\r\n this.props[4] = e;\r\n this.props[5] = f;\r\n this.props[6] = g;\r\n this.props[7] = h;\r\n this.props[8] = i;\r\n this.props[9] = j;\r\n this.props[10] = k;\r\n this.props[11] = l;\r\n this.props[12] = m;\r\n this.props[13] = n;\r\n this.props[14] = o;\r\n this.props[15] = p;\r\n return this;\r\n }\r\n\r\n function translate(tx, ty, tz) {\r\n tz = tz || 0;\r\n\r\n if (tx !== 0 || ty !== 0 || tz !== 0) {\r\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\r\n var _p = this.props;\r\n\r\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) {\r\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\r\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\r\n _p[12] = _p[12] * a2 + _p[15] * m2;\r\n _p[13] = _p[13] * f2 + _p[15] * n2;\r\n _p[14] = _p[14] * k2 + _p[15] * o2;\r\n _p[15] *= p2; // }\r\n\r\n this._identityCalculated = false;\r\n return this;\r\n }\r\n\r\n var a1 = _p[0];\r\n var b1 = _p[1];\r\n var c1 = _p[2];\r\n var d1 = _p[3];\r\n var e1 = _p[4];\r\n var f1 = _p[5];\r\n var g1 = _p[6];\r\n var h1 = _p[7];\r\n var i1 = _p[8];\r\n var j1 = _p[9];\r\n var k1 = _p[10];\r\n var l1 = _p[11];\r\n var m1 = _p[12];\r\n var n1 = _p[13];\r\n var o1 = _p[14];\r\n var p1 = _p[15];\r\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\r\n\r\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\r\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\r\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\r\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\r\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\r\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\r\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\r\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\r\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\r\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\r\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\r\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\r\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\r\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\r\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\r\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\r\n this._identityCalculated = false;\r\n return this;\r\n }\r\n\r\n function isIdentity() {\r\n if (!this._identityCalculated) {\r\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\r\n this._identityCalculated = true;\r\n }\r\n\r\n return this._identity;\r\n }\r\n\r\n function equals(matr) {\r\n var i = 0;\r\n\r\n while (i < 16) {\r\n if (matr.props[i] !== this.props[i]) {\r\n return false;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n function clone(matr) {\r\n var i;\r\n\r\n for (i = 0; i < 16; i += 1) {\r\n matr.props[i] = this.props[i];\r\n }\r\n\r\n return matr;\r\n }\r\n\r\n function cloneFromProps(props) {\r\n var i;\r\n\r\n for (i = 0; i < 16; i += 1) {\r\n this.props[i] = props[i];\r\n }\r\n }\r\n\r\n function applyToPoint(x, y, z) {\r\n return {\r\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\r\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\r\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\r\n };\r\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 }; */\r\n }\r\n\r\n function applyToX(x, y, z) {\r\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\r\n }\r\n\r\n function applyToY(x, y, z) {\r\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\r\n }\r\n\r\n function applyToZ(x, y, z) {\r\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\r\n }\r\n\r\n function getInverseMatrix() {\r\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\r\n var a = this.props[5] / determinant;\r\n var b = -this.props[1] / determinant;\r\n var c = -this.props[4] / determinant;\r\n var d = this.props[0] / determinant;\r\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\r\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\r\n var inverseMatrix = new Matrix();\r\n inverseMatrix.props[0] = a;\r\n inverseMatrix.props[1] = b;\r\n inverseMatrix.props[4] = c;\r\n inverseMatrix.props[5] = d;\r\n inverseMatrix.props[12] = e;\r\n inverseMatrix.props[13] = f;\r\n return inverseMatrix;\r\n }\r\n\r\n function inversePoint(pt) {\r\n var inverseMatrix = this.getInverseMatrix();\r\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\r\n }\r\n\r\n function inversePoints(pts) {\r\n var i;\r\n var len = pts.length;\r\n var retPts = [];\r\n\r\n for (i = 0; i < len; i += 1) {\r\n retPts[i] = inversePoint(pts[i]);\r\n }\r\n\r\n return retPts;\r\n }\r\n\r\n function applyToTriplePoints(pt1, pt2, pt3) {\r\n var arr = createTypedArray('float32', 6);\r\n\r\n if (this.isIdentity()) {\r\n arr[0] = pt1[0];\r\n arr[1] = pt1[1];\r\n arr[2] = pt2[0];\r\n arr[3] = pt2[1];\r\n arr[4] = pt3[0];\r\n arr[5] = pt3[1];\r\n } else {\r\n var p0 = this.props[0];\r\n var p1 = this.props[1];\r\n var p4 = this.props[4];\r\n var p5 = this.props[5];\r\n var p12 = this.props[12];\r\n var p13 = this.props[13];\r\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\r\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\r\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\r\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\r\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\r\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n function applyToPointArray(x, y, z) {\r\n var arr;\r\n\r\n if (this.isIdentity()) {\r\n arr = [x, y, z];\r\n } else {\r\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n function applyToPointStringified(x, y) {\r\n if (this.isIdentity()) {\r\n return x + ',' + y;\r\n }\r\n\r\n var _p = this.props;\r\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;\r\n }\r\n\r\n function toCSS() {\r\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.\r\n\r\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\r\n var i = 0;\r\n var props = this.props;\r\n var cssValue = 'matrix3d(';\r\n var v = 10000;\r\n\r\n while (i < 16) {\r\n cssValue += _rnd(props[i] * v) / v;\r\n cssValue += i === 15 ? ')' : ',';\r\n i += 1;\r\n }\r\n\r\n return cssValue;\r\n }\r\n\r\n function roundMatrixProperty(val) {\r\n var v = 10000;\r\n\r\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\r\n return _rnd(val * v) / v;\r\n }\r\n\r\n return val;\r\n }\r\n\r\n function to2dCSS() {\r\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.\r\n\r\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\r\n var props = this.props;\r\n\r\n var _a = roundMatrixProperty(props[0]);\r\n\r\n var _b = roundMatrixProperty(props[1]);\r\n\r\n var _c = roundMatrixProperty(props[4]);\r\n\r\n var _d = roundMatrixProperty(props[5]);\r\n\r\n var _e = roundMatrixProperty(props[12]);\r\n\r\n var _f = roundMatrixProperty(props[13]);\r\n\r\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\r\n }\r\n\r\n return function () {\r\n this.reset = reset;\r\n this.rotate = rotate;\r\n this.rotateX = rotateX;\r\n this.rotateY = rotateY;\r\n this.rotateZ = rotateZ;\r\n this.skew = skew;\r\n this.skewFromAxis = skewFromAxis;\r\n this.shear = shear;\r\n this.scale = scale;\r\n this.setTransform = setTransform;\r\n this.translate = translate;\r\n this.transform = transform;\r\n this.applyToPoint = applyToPoint;\r\n this.applyToX = applyToX;\r\n this.applyToY = applyToY;\r\n this.applyToZ = applyToZ;\r\n this.applyToPointArray = applyToPointArray;\r\n this.applyToTriplePoints = applyToTriplePoints;\r\n this.applyToPointStringified = applyToPointStringified;\r\n this.toCSS = toCSS;\r\n this.to2dCSS = to2dCSS;\r\n this.clone = clone;\r\n this.cloneFromProps = cloneFromProps;\r\n this.equals = equals;\r\n this.inversePoints = inversePoints;\r\n this.inversePoint = inversePoint;\r\n this.getInverseMatrix = getInverseMatrix;\r\n this._t = this.transform;\r\n this.isIdentity = isIdentity;\r\n this._identity = true;\r\n this._identityCalculated = false;\r\n this.props = createTypedArray('float32', 16);\r\n this.reset();\r\n };\r\n }();\r\n\r\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\r\n var lottie = {};\r\n var standalone = '__[STANDALONE]__';\r\n var animationData = '__[ANIMATIONDATA]__';\r\n var renderer = '';\r\n\r\n function setLocation(href) {\r\n setLocationHref(href);\r\n }\r\n\r\n function searchAnimations() {\r\n if (standalone === true) {\r\n animationManager.searchAnimations(animationData, standalone, renderer);\r\n } else {\r\n animationManager.searchAnimations();\r\n }\r\n }\r\n\r\n function setSubframeRendering(flag) {\r\n setSubframeEnabled(flag);\r\n }\r\n\r\n function setPrefix(prefix) {\r\n setIdPrefix(prefix);\r\n }\r\n\r\n function loadAnimation(params) {\r\n if (standalone === true) {\r\n params.animationData = JSON.parse(animationData);\r\n }\r\n\r\n return animationManager.loadAnimation(params);\r\n }\r\n\r\n function setQuality(value) {\r\n if (typeof value === 'string') {\r\n switch (value) {\r\n case 'high':\r\n setDefaultCurveSegments(200);\r\n break;\r\n\r\n default:\r\n case 'medium':\r\n setDefaultCurveSegments(50);\r\n break;\r\n\r\n case 'low':\r\n setDefaultCurveSegments(10);\r\n break;\r\n }\r\n } else if (!isNaN(value) && value > 1) {\r\n setDefaultCurveSegments(value);\r\n }\r\n\r\n if (getDefaultCurveSegments() >= 50) {\r\n roundValues(false);\r\n } else {\r\n roundValues(true);\r\n }\r\n }\r\n\r\n function inBrowser() {\r\n return typeof navigator !== 'undefined';\r\n }\r\n\r\n function installPlugin(type, plugin) {\r\n if (type === 'expressions') {\r\n setExpressionsPlugin(plugin);\r\n }\r\n }\r\n\r\n function getFactory(name) {\r\n switch (name) {\r\n case 'propertyFactory':\r\n return PropertyFactory;\r\n\r\n case 'shapePropertyFactory':\r\n return ShapePropertyFactory;\r\n\r\n case 'matrix':\r\n return Matrix;\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n lottie.play = animationManager.play;\r\n lottie.pause = animationManager.pause;\r\n lottie.setLocationHref = setLocation;\r\n lottie.togglePause = animationManager.togglePause;\r\n lottie.setSpeed = animationManager.setSpeed;\r\n lottie.setDirection = animationManager.setDirection;\r\n lottie.stop = animationManager.stop;\r\n lottie.searchAnimations = searchAnimations;\r\n lottie.registerAnimation = animationManager.registerAnimation;\r\n lottie.loadAnimation = loadAnimation;\r\n lottie.setSubframeRendering = setSubframeRendering;\r\n lottie.resize = animationManager.resize; // lottie.start = start;\r\n\r\n lottie.goToAndStop = animationManager.goToAndStop;\r\n lottie.destroy = animationManager.destroy;\r\n lottie.setQuality = setQuality;\r\n lottie.inBrowser = inBrowser;\r\n lottie.installPlugin = installPlugin;\r\n lottie.freeze = animationManager.freeze;\r\n lottie.unfreeze = animationManager.unfreeze;\r\n lottie.setVolume = animationManager.setVolume;\r\n lottie.mute = animationManager.mute;\r\n lottie.unmute = animationManager.unmute;\r\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\r\n lottie.useWebWorker = setWebWorker;\r\n lottie.setIDPrefix = setPrefix;\r\n lottie.__getFactory = getFactory;\r\n lottie.version = '5.10.2';\r\n\r\n function checkReady() {\r\n if (document.readyState === 'complete') {\r\n clearInterval(readyStateCheckInterval);\r\n searchAnimations();\r\n }\r\n }\r\n\r\n function getQueryVariable(variable) {\r\n var vars = queryString.split('&');\r\n\r\n for (var i = 0; i < vars.length; i += 1) {\r\n var pair = vars[i].split('=');\r\n\r\n if (decodeURIComponent(pair[0]) == variable) {\r\n // eslint-disable-line eqeqeq\r\n return decodeURIComponent(pair[1]);\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var queryString = '';\r\n\r\n if (standalone) {\r\n var scripts = document.getElementsByTagName('script');\r\n var index = scripts.length - 1;\r\n var myScript = scripts[index] || {\r\n src: ''\r\n };\r\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\r\n\r\n renderer = getQueryVariable('renderer');\r\n }\r\n\r\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\r\n\r\n try {\r\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\r\n ) {\r\n window.bodymovin = lottie;\r\n }\r\n } catch (err) {//\r\n }\r\n\r\n var ShapeModifiers = function () {\r\n var ob = {};\r\n var modifiers = {};\r\n ob.registerModifier = registerModifier;\r\n ob.getModifier = getModifier;\r\n\r\n function registerModifier(nm, factory) {\r\n if (!modifiers[nm]) {\r\n modifiers[nm] = factory;\r\n }\r\n }\r\n\r\n function getModifier(nm, elem, data) {\r\n return new modifiers[nm](elem, data);\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n function ShapeModifier() {}\r\n\r\n ShapeModifier.prototype.initModifierProperties = function () {};\r\n\r\n ShapeModifier.prototype.addShapeToModifier = function () {};\r\n\r\n ShapeModifier.prototype.addShape = function (data) {\r\n if (!this.closed) {\r\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.\r\n data.sh.container.addDynamicProperty(data.sh);\r\n var shapeData = {\r\n shape: data.sh,\r\n data: data,\r\n localShapeCollection: shapeCollectionPool.newShapeCollection()\r\n };\r\n this.shapes.push(shapeData);\r\n this.addShapeToModifier(shapeData);\r\n\r\n if (this._isAnimated) {\r\n data.setAsAnimated();\r\n }\r\n }\r\n };\r\n\r\n ShapeModifier.prototype.init = function (elem, data) {\r\n this.shapes = [];\r\n this.elem = elem;\r\n this.initDynamicPropertyContainer(elem);\r\n this.initModifierProperties(elem, data);\r\n this.frameId = initialDefaultFrame;\r\n this.closed = false;\r\n this.k = false;\r\n\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.getValue(true);\r\n }\r\n };\r\n\r\n ShapeModifier.prototype.processKeys = function () {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n };\r\n\r\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\r\n\r\n function TrimModifier() {}\r\n\r\n extendPrototype([ShapeModifier], TrimModifier);\r\n\r\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\r\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\r\n this.sValue = 0;\r\n this.eValue = 0;\r\n this.getValue = this.processKeys;\r\n this.m = data.m;\r\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\r\n };\r\n\r\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\r\n shapeData.pathsData = [];\r\n };\r\n\r\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\r\n var segments = [];\r\n\r\n if (e <= 1) {\r\n segments.push({\r\n s: s,\r\n e: e\r\n });\r\n } else if (s >= 1) {\r\n segments.push({\r\n s: s - 1,\r\n e: e - 1\r\n });\r\n } else {\r\n segments.push({\r\n s: s,\r\n e: 1\r\n });\r\n segments.push({\r\n s: 0,\r\n e: e - 1\r\n });\r\n }\r\n\r\n var shapeSegments = [];\r\n var i;\r\n var len = segments.length;\r\n var segmentOb;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n segmentOb = segments[i];\r\n\r\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\r\n var shapeS;\r\n var shapeE;\r\n\r\n if (segmentOb.s * totalModifierLength <= addedLength) {\r\n shapeS = 0;\r\n } else {\r\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\r\n }\r\n\r\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\r\n shapeE = 1;\r\n } else {\r\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\r\n }\r\n\r\n shapeSegments.push([shapeS, shapeE]);\r\n }\r\n }\r\n\r\n if (!shapeSegments.length) {\r\n shapeSegments.push([0, 0]);\r\n }\r\n\r\n return shapeSegments;\r\n };\r\n\r\n TrimModifier.prototype.releasePathsData = function (pathsData) {\r\n var i;\r\n var len = pathsData.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n segmentsLengthPool.release(pathsData[i]);\r\n }\r\n\r\n pathsData.length = 0;\r\n return pathsData;\r\n };\r\n\r\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var s;\r\n var e;\r\n\r\n if (this._mdf || _isFirstFrame) {\r\n var o = this.o.v % 360 / 360;\r\n\r\n if (o < 0) {\r\n o += 1;\r\n }\r\n\r\n if (this.s.v > 1) {\r\n s = 1 + o;\r\n } else if (this.s.v < 0) {\r\n s = 0 + o;\r\n } else {\r\n s = this.s.v + o;\r\n }\r\n\r\n if (this.e.v > 1) {\r\n e = 1 + o;\r\n } else if (this.e.v < 0) {\r\n e = 0 + o;\r\n } else {\r\n e = this.e.v + o;\r\n }\r\n\r\n if (s > e) {\r\n var _s = s;\r\n s = e;\r\n e = _s;\r\n }\r\n\r\n s = Math.round(s * 10000) * 0.0001;\r\n e = Math.round(e * 10000) * 0.0001;\r\n this.sValue = s;\r\n this.eValue = e;\r\n } else {\r\n s = this.sValue;\r\n e = this.eValue;\r\n }\r\n\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var pathsData;\r\n var pathData;\r\n var totalShapeLength;\r\n var totalModifierLength = 0;\r\n\r\n if (e === s) {\r\n for (i = 0; i < len; i += 1) {\r\n this.shapes[i].localShapeCollection.releaseShapes();\r\n this.shapes[i].shape._mdf = true;\r\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\r\n\r\n if (this._mdf) {\r\n this.shapes[i].pathsData.length = 0;\r\n }\r\n }\r\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\r\n var segments = [];\r\n var shapeData;\r\n var localShapeCollection;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\r\n\r\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n } else {\r\n shapePaths = shapeData.shape.paths;\r\n jLen = shapePaths._length;\r\n totalShapeLength = 0;\r\n\r\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\r\n totalShapeLength = shapeData.totalShapeLength;\r\n } else {\r\n pathsData = this.releasePathsData(shapeData.pathsData);\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\r\n pathsData.push(pathData);\r\n totalShapeLength += pathData.totalLength;\r\n }\r\n\r\n shapeData.totalShapeLength = totalShapeLength;\r\n shapeData.pathsData = pathsData;\r\n }\r\n\r\n totalModifierLength += totalShapeLength;\r\n shapeData.shape._mdf = true;\r\n }\r\n }\r\n\r\n var shapeS = s;\r\n var shapeE = e;\r\n var addedLength = 0;\r\n var edges;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n shapeData = this.shapes[i];\r\n\r\n if (shapeData.shape._mdf) {\r\n localShapeCollection = shapeData.localShapeCollection;\r\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\r\n\r\n if (this.m === 2 && len > 1) {\r\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\r\n addedLength += shapeData.totalShapeLength;\r\n } else {\r\n edges = [[shapeS, shapeE]];\r\n }\r\n\r\n jLen = edges.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n shapeS = edges[j][0];\r\n shapeE = edges[j][1];\r\n segments.length = 0;\r\n\r\n if (shapeE <= 1) {\r\n segments.push({\r\n s: shapeData.totalShapeLength * shapeS,\r\n e: shapeData.totalShapeLength * shapeE\r\n });\r\n } else if (shapeS >= 1) {\r\n segments.push({\r\n s: shapeData.totalShapeLength * (shapeS - 1),\r\n e: shapeData.totalShapeLength * (shapeE - 1)\r\n });\r\n } else {\r\n segments.push({\r\n s: shapeData.totalShapeLength * shapeS,\r\n e: shapeData.totalShapeLength\r\n });\r\n segments.push({\r\n s: 0,\r\n e: shapeData.totalShapeLength * (shapeE - 1)\r\n });\r\n }\r\n\r\n var newShapesData = this.addShapes(shapeData, segments[0]);\r\n\r\n if (segments[0].s !== segments[0].e) {\r\n if (segments.length > 1) {\r\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\r\n\r\n if (lastShapeInCollection.c) {\r\n var lastShape = newShapesData.pop();\r\n this.addPaths(newShapesData, localShapeCollection);\r\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\r\n } else {\r\n this.addPaths(newShapesData, localShapeCollection);\r\n newShapesData = this.addShapes(shapeData, segments[1]);\r\n }\r\n }\r\n\r\n this.addPaths(newShapesData, localShapeCollection);\r\n }\r\n }\r\n\r\n shapeData.shape.paths = localShapeCollection;\r\n }\r\n }\r\n } else if (this._mdf) {\r\n for (i = 0; i < len; i += 1) {\r\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\r\n // Don't remove this even if it's losing cached info.\r\n this.shapes[i].pathsData.length = 0;\r\n this.shapes[i].shape._mdf = true;\r\n }\r\n }\r\n };\r\n\r\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\r\n var i;\r\n var len = newPaths.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n localShapeCollection.addShape(newPaths[i]);\r\n }\r\n };\r\n\r\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\r\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\r\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\r\n\r\n if (newShape) {\r\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\r\n }\r\n\r\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\r\n };\r\n\r\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\r\n shapePath.setXYAt(points[1], points[5], 'o', pos);\r\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\r\n\r\n if (newShape) {\r\n shapePath.setXYAt(points[0], points[4], 'v', pos);\r\n }\r\n\r\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\r\n };\r\n\r\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\r\n var pathsData = shapeData.pathsData;\r\n var shapePaths = shapeData.shape.paths.shapes;\r\n var i;\r\n var len = shapeData.shape.paths._length;\r\n var j;\r\n var jLen;\r\n var addedLength = 0;\r\n var currentLengthData;\r\n var segmentCount;\r\n var lengths;\r\n var segment;\r\n var shapes = [];\r\n var initPos;\r\n var newShape = true;\r\n\r\n if (!shapePath) {\r\n shapePath = shapePool.newElement();\r\n segmentCount = 0;\r\n initPos = 0;\r\n } else {\r\n segmentCount = shapePath._length;\r\n initPos = shapePath._length;\r\n }\r\n\r\n shapes.push(shapePath);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n lengths = pathsData[i].lengths;\r\n shapePath.c = shapePaths[i].c;\r\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\r\n\r\n for (j = 1; j < jLen; j += 1) {\r\n currentLengthData = lengths[j - 1];\r\n\r\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\r\n addedLength += currentLengthData.addedLength;\r\n shapePath.c = false;\r\n } else if (addedLength > shapeSegment.e) {\r\n shapePath.c = false;\r\n break;\r\n } else {\r\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\r\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\r\n newShape = false;\r\n } else {\r\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]);\r\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\r\n\r\n newShape = false;\r\n shapePath.c = false;\r\n }\r\n\r\n addedLength += currentLengthData.addedLength;\r\n segmentCount += 1;\r\n }\r\n }\r\n\r\n if (shapePaths[i].c && lengths.length) {\r\n currentLengthData = lengths[j - 1];\r\n\r\n if (addedLength <= shapeSegment.e) {\r\n var segmentLength = lengths[j - 1].addedLength;\r\n\r\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\r\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\r\n newShape = false;\r\n } else {\r\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]);\r\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\r\n\r\n newShape = false;\r\n shapePath.c = false;\r\n }\r\n } else {\r\n shapePath.c = false;\r\n }\r\n\r\n addedLength += currentLengthData.addedLength;\r\n segmentCount += 1;\r\n }\r\n\r\n if (shapePath._length) {\r\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\r\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\r\n }\r\n\r\n if (addedLength > shapeSegment.e) {\r\n break;\r\n }\r\n\r\n if (i < len - 1) {\r\n shapePath = shapePool.newElement();\r\n newShape = true;\r\n shapes.push(shapePath);\r\n segmentCount = 0;\r\n }\r\n }\r\n\r\n return shapes;\r\n };\r\n\r\n function PuckerAndBloatModifier() {}\r\n\r\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\r\n\r\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\r\n this._isAnimated = !!this.amount.effectsSequence.length;\r\n };\r\n\r\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\r\n var percent = amount / 100;\r\n var centerPoint = [0, 0];\r\n var pathLength = path._length;\r\n var i = 0;\r\n\r\n for (i = 0; i < pathLength; i += 1) {\r\n centerPoint[0] += path.v[i][0];\r\n centerPoint[1] += path.v[i][1];\r\n }\r\n\r\n centerPoint[0] /= pathLength;\r\n centerPoint[1] /= pathLength;\r\n var clonedPath = shapePool.newElement();\r\n clonedPath.c = path.c;\r\n var vX;\r\n var vY;\r\n var oX;\r\n var oY;\r\n var iX;\r\n var iY;\r\n\r\n for (i = 0; i < pathLength; i += 1) {\r\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\r\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\r\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\r\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\r\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\r\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\r\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\r\n }\r\n\r\n return clonedPath;\r\n };\r\n\r\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var amount = this.amount.v;\r\n\r\n if (amount !== 0) {\r\n var shapeData;\r\n var localShapeCollection;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n localShapeCollection = shapeData.localShapeCollection;\r\n\r\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\r\n localShapeCollection.releaseShapes();\r\n shapeData.shape._mdf = true;\r\n shapePaths = shapeData.shape.paths.shapes;\r\n jLen = shapeData.shape.paths._length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\r\n }\r\n }\r\n\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n }\r\n }\r\n\r\n if (!this.dynamicProperties.length) {\r\n this._mdf = false;\r\n }\r\n };\r\n\r\n var TransformPropertyFactory = function () {\r\n var defaultVector = [0, 0];\r\n\r\n function applyToMatrix(mat) {\r\n var _mdf = this._mdf;\r\n this.iterateDynamicProperties();\r\n this._mdf = this._mdf || _mdf;\r\n\r\n if (this.a) {\r\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n }\r\n\r\n if (this.s) {\r\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n }\r\n\r\n if (this.sk) {\r\n mat.skewFromAxis(-this.sk.v, this.sa.v);\r\n }\r\n\r\n if (this.r) {\r\n mat.rotate(-this.r.v);\r\n } else {\r\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\r\n }\r\n\r\n if (this.data.p.s) {\r\n if (this.data.p.z) {\r\n mat.translate(this.px.v, this.py.v, -this.pz.v);\r\n } else {\r\n mat.translate(this.px.v, this.py.v, 0);\r\n }\r\n } else {\r\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\r\n }\r\n }\r\n\r\n function processKeys(forceRender) {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n\r\n if (this._isDirty) {\r\n this.precalculateMatrix();\r\n this._isDirty = false;\r\n }\r\n\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf || forceRender) {\r\n var frameRate;\r\n this.v.cloneFromProps(this.pre.props);\r\n\r\n if (this.appliedTransformations < 1) {\r\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n }\r\n\r\n if (this.appliedTransformations < 2) {\r\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n }\r\n\r\n if (this.sk && this.appliedTransformations < 3) {\r\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\r\n }\r\n\r\n if (this.r && this.appliedTransformations < 4) {\r\n this.v.rotate(-this.r.v);\r\n } else if (!this.r && this.appliedTransformations < 4) {\r\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\r\n }\r\n\r\n if (this.autoOriented) {\r\n var v1;\r\n var v2;\r\n frameRate = this.elem.globalData.frameRate;\r\n\r\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\r\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\r\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\r\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\r\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\r\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\r\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\r\n } else {\r\n v1 = this.p.pv;\r\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\r\n }\r\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\r\n v1 = [];\r\n v2 = [];\r\n var px = this.px;\r\n var py = this.py;\r\n\r\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\r\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\r\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\r\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\r\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\r\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\r\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\r\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\r\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\r\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\r\n } else {\r\n v1 = [px.pv, py.pv];\r\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\r\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\r\n }\r\n } else {\r\n v2 = defaultVector;\r\n v1 = v2;\r\n }\r\n\r\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\r\n }\r\n\r\n if (this.data.p && this.data.p.s) {\r\n if (this.data.p.z) {\r\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\r\n } else {\r\n this.v.translate(this.px.v, this.py.v, 0);\r\n }\r\n } else {\r\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\r\n }\r\n }\r\n\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function precalculateMatrix() {\r\n if (!this.a.k) {\r\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n this.appliedTransformations = 1;\r\n } else {\r\n return;\r\n }\r\n\r\n if (!this.s.effectsSequence.length) {\r\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n this.appliedTransformations = 2;\r\n } else {\r\n return;\r\n }\r\n\r\n if (this.sk) {\r\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\r\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\r\n this.appliedTransformations = 3;\r\n } else {\r\n return;\r\n }\r\n }\r\n\r\n if (this.r) {\r\n if (!this.r.effectsSequence.length) {\r\n this.pre.rotate(-this.r.v);\r\n this.appliedTransformations = 4;\r\n }\r\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\r\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\r\n this.appliedTransformations = 4;\r\n }\r\n }\r\n\r\n function autoOrient() {//\r\n // var prevP = this.getValueAtTime();\r\n }\r\n\r\n function addDynamicProperty(prop) {\r\n this._addDynamicProperty(prop);\r\n\r\n this.elem.addDynamicProperty(prop);\r\n this._isDirty = true;\r\n }\r\n\r\n function TransformProperty(elem, data, container) {\r\n this.elem = elem;\r\n this.frameId = -1;\r\n this.propType = 'transform';\r\n this.data = data;\r\n this.v = new Matrix(); // Precalculated matrix with non animated properties\r\n\r\n this.pre = new Matrix();\r\n this.appliedTransformations = 0;\r\n this.initDynamicPropertyContainer(container || elem);\r\n\r\n if (data.p && data.p.s) {\r\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\r\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\r\n\r\n if (data.p.z) {\r\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\r\n }\r\n } else {\r\n this.p = PropertyFactory.getProp(elem, data.p || {\r\n k: [0, 0, 0]\r\n }, 1, 0, this);\r\n }\r\n\r\n if (data.rx) {\r\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\r\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\r\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\r\n\r\n if (data.or.k[0].ti) {\r\n var i;\r\n var len = data.or.k.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n data.or.k[i].to = null;\r\n data.or.k[i].ti = null;\r\n }\r\n }\r\n\r\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\r\n\r\n this.or.sh = true;\r\n } else {\r\n this.r = PropertyFactory.getProp(elem, data.r || {\r\n k: 0\r\n }, 0, degToRads, this);\r\n }\r\n\r\n if (data.sk) {\r\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\r\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\r\n }\r\n\r\n this.a = PropertyFactory.getProp(elem, data.a || {\r\n k: [0, 0, 0]\r\n }, 1, 0, this);\r\n this.s = PropertyFactory.getProp(elem, data.s || {\r\n k: [100, 100, 100]\r\n }, 1, 0.01, this); // 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.\r\n\r\n if (data.o) {\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\r\n } else {\r\n this.o = {\r\n _mdf: false,\r\n v: 1\r\n };\r\n }\r\n\r\n this._isDirty = true;\r\n\r\n if (!this.dynamicProperties.length) {\r\n this.getValue(true);\r\n }\r\n }\r\n\r\n TransformProperty.prototype = {\r\n applyToMatrix: applyToMatrix,\r\n getValue: processKeys,\r\n precalculateMatrix: precalculateMatrix,\r\n autoOrient: autoOrient\r\n };\r\n extendPrototype([DynamicPropertyContainer], TransformProperty);\r\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\r\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\r\n\r\n function getTransformProperty(elem, data, container) {\r\n return new TransformProperty(elem, data, container);\r\n }\r\n\r\n return {\r\n getTransformProperty: getTransformProperty\r\n };\r\n }();\r\n\r\n function RepeaterModifier() {}\r\n\r\n extendPrototype([ShapeModifier], RepeaterModifier);\r\n\r\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\r\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\r\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\r\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\r\n this.data = data;\r\n\r\n if (!this.dynamicProperties.length) {\r\n this.getValue(true);\r\n }\r\n\r\n this._isAnimated = !!this.dynamicProperties.length;\r\n this.pMatrix = new Matrix();\r\n this.rMatrix = new Matrix();\r\n this.sMatrix = new Matrix();\r\n this.tMatrix = new Matrix();\r\n this.matrix = new Matrix();\r\n };\r\n\r\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\r\n var dir = inv ? -1 : 1;\r\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\r\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\r\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\r\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\r\n rMatrix.rotate(-transform.r.v * dir * perc);\r\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\r\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\r\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\r\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\r\n };\r\n\r\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\r\n this.elem = elem;\r\n this.arr = arr;\r\n this.pos = pos;\r\n this.elemsData = elemsData;\r\n this._currentCopies = 0;\r\n this._elements = [];\r\n this._groups = [];\r\n this.frameId = -1;\r\n this.initDynamicPropertyContainer(elem);\r\n this.initModifierProperties(elem, arr[pos]);\r\n\r\n while (pos > 0) {\r\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\r\n\r\n this._elements.unshift(arr[pos]);\r\n }\r\n\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.getValue(true);\r\n }\r\n };\r\n\r\n RepeaterModifier.prototype.resetElements = function (elements) {\r\n var i;\r\n var len = elements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n elements[i]._processed = false;\r\n\r\n if (elements[i].ty === 'gr') {\r\n this.resetElements(elements[i].it);\r\n }\r\n }\r\n };\r\n\r\n RepeaterModifier.prototype.cloneElements = function (elements) {\r\n var newElements = JSON.parse(JSON.stringify(elements));\r\n this.resetElements(newElements);\r\n return newElements;\r\n };\r\n\r\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\r\n var i;\r\n var len = elements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n elements[i]._render = renderFlag;\r\n\r\n if (elements[i].ty === 'gr') {\r\n this.changeGroupRender(elements[i].it, renderFlag);\r\n }\r\n }\r\n };\r\n\r\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var items;\r\n var itemsTransform;\r\n var i;\r\n var dir;\r\n var cont;\r\n var hasReloaded = false;\r\n\r\n if (this._mdf || _isFirstFrame) {\r\n var copies = Math.ceil(this.c.v);\r\n\r\n if (this._groups.length < copies) {\r\n while (this._groups.length < copies) {\r\n var group = {\r\n it: this.cloneElements(this._elements),\r\n ty: 'gr'\r\n };\r\n group.it.push({\r\n a: {\r\n a: 0,\r\n ix: 1,\r\n k: [0, 0]\r\n },\r\n nm: 'Transform',\r\n o: {\r\n a: 0,\r\n ix: 7,\r\n k: 100\r\n },\r\n p: {\r\n a: 0,\r\n ix: 2,\r\n k: [0, 0]\r\n },\r\n r: {\r\n a: 1,\r\n ix: 6,\r\n k: [{\r\n s: 0,\r\n e: 0,\r\n t: 0\r\n }, {\r\n s: 0,\r\n e: 0,\r\n t: 1\r\n }]\r\n },\r\n s: {\r\n a: 0,\r\n ix: 3,\r\n k: [100, 100]\r\n },\r\n sa: {\r\n a: 0,\r\n ix: 5,\r\n k: 0\r\n },\r\n sk: {\r\n a: 0,\r\n ix: 4,\r\n k: 0\r\n },\r\n ty: 'tr'\r\n });\r\n this.arr.splice(0, 0, group);\r\n\r\n this._groups.splice(0, 0, group);\r\n\r\n this._currentCopies += 1;\r\n }\r\n\r\n this.elem.reloadShapes();\r\n hasReloaded = true;\r\n }\r\n\r\n cont = 0;\r\n var renderFlag;\r\n\r\n for (i = 0; i <= this._groups.length - 1; i += 1) {\r\n renderFlag = cont < copies;\r\n this._groups[i]._render = renderFlag;\r\n this.changeGroupRender(this._groups[i].it, renderFlag);\r\n\r\n if (!renderFlag) {\r\n var elems = this.elemsData[i].it;\r\n var transformData = elems[elems.length - 1];\r\n\r\n if (transformData.transform.op.v !== 0) {\r\n transformData.transform.op._mdf = true;\r\n transformData.transform.op.v = 0;\r\n } else {\r\n transformData.transform.op._mdf = false;\r\n }\r\n }\r\n\r\n cont += 1;\r\n }\r\n\r\n this._currentCopies = copies; /// /\r\n\r\n var offset = this.o.v;\r\n var offsetModulo = offset % 1;\r\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\r\n var pProps = this.pMatrix.props;\r\n var rProps = this.rMatrix.props;\r\n var sProps = this.sMatrix.props;\r\n this.pMatrix.reset();\r\n this.rMatrix.reset();\r\n this.sMatrix.reset();\r\n this.tMatrix.reset();\r\n this.matrix.reset();\r\n var iteration = 0;\r\n\r\n if (offset > 0) {\r\n while (iteration < roundOffset) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\r\n iteration += 1;\r\n }\r\n\r\n if (offsetModulo) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\r\n iteration += offsetModulo;\r\n }\r\n } else if (offset < 0) {\r\n while (iteration > roundOffset) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\r\n iteration -= 1;\r\n }\r\n\r\n if (offsetModulo) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\r\n iteration -= offsetModulo;\r\n }\r\n }\r\n\r\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\r\n dir = this.data.m === 1 ? 1 : -1;\r\n cont = this._currentCopies;\r\n var j;\r\n var jLen;\r\n\r\n while (cont) {\r\n items = this.elemsData[i].it;\r\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\r\n jLen = itemsTransform.length;\r\n items[items.length - 1].transform.mProps._mdf = true;\r\n items[items.length - 1].transform.op._mdf = true;\r\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\r\n\r\n if (iteration !== 0) {\r\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\r\n }\r\n\r\n this.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]);\r\n this.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]);\r\n this.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]);\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsTransform[j] = this.matrix.props[j];\r\n }\r\n\r\n this.matrix.reset();\r\n } else {\r\n this.matrix.reset();\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsTransform[j] = this.matrix.props[j];\r\n }\r\n }\r\n\r\n iteration += 1;\r\n cont -= 1;\r\n i += dir;\r\n }\r\n } else {\r\n cont = this._currentCopies;\r\n i = 0;\r\n dir = 1;\r\n\r\n while (cont) {\r\n items = this.elemsData[i].it;\r\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\r\n items[items.length - 1].transform.mProps._mdf = false;\r\n items[items.length - 1].transform.op._mdf = false;\r\n cont -= 1;\r\n i += dir;\r\n }\r\n }\r\n\r\n return hasReloaded;\r\n };\r\n\r\n RepeaterModifier.prototype.addShape = function () {};\r\n\r\n function RoundCornersModifier() {}\r\n\r\n extendPrototype([ShapeModifier], RoundCornersModifier);\r\n\r\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\r\n this._isAnimated = !!this.rd.effectsSequence.length;\r\n };\r\n\r\n RoundCornersModifier.prototype.processPath = function (path, round) {\r\n var clonedPath = shapePool.newElement();\r\n clonedPath.c = path.c;\r\n var i;\r\n var len = path._length;\r\n var currentV;\r\n var currentI;\r\n var currentO;\r\n var closerV;\r\n var distance;\r\n var newPosPerc;\r\n var index = 0;\r\n var vX;\r\n var vY;\r\n var oX;\r\n var oY;\r\n var iX;\r\n var iY;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n currentV = path.v[i];\r\n currentO = path.o[i];\r\n currentI = path.i[i];\r\n\r\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\r\n if ((i === 0 || i === len - 1) && !path.c) {\r\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\r\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\r\n\r\n index += 1;\r\n } else {\r\n if (i === 0) {\r\n closerV = path.v[len - 1];\r\n } else {\r\n closerV = path.v[i - 1];\r\n }\r\n\r\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\r\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\r\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\r\n vX = iX;\r\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\r\n vY = iY;\r\n oX = vX - (vX - currentV[0]) * roundCorner;\r\n oY = vY - (vY - currentV[1]) * roundCorner;\r\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\r\n index += 1;\r\n\r\n if (i === len - 1) {\r\n closerV = path.v[0];\r\n } else {\r\n closerV = path.v[i + 1];\r\n }\r\n\r\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\r\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\r\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\r\n vX = oX;\r\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\r\n vY = oY;\r\n iX = vX - (vX - currentV[0]) * roundCorner;\r\n iY = vY - (vY - currentV[1]) * roundCorner;\r\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\r\n index += 1;\r\n }\r\n } else {\r\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);\r\n index += 1;\r\n }\r\n }\r\n\r\n return clonedPath;\r\n };\r\n\r\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var rd = this.rd.v;\r\n\r\n if (rd !== 0) {\r\n var shapeData;\r\n var localShapeCollection;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n localShapeCollection = shapeData.localShapeCollection;\r\n\r\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\r\n localShapeCollection.releaseShapes();\r\n shapeData.shape._mdf = true;\r\n shapePaths = shapeData.shape.paths.shapes;\r\n jLen = shapeData.shape.paths._length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\r\n }\r\n }\r\n\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n }\r\n }\r\n\r\n if (!this.dynamicProperties.length) {\r\n this._mdf = false;\r\n }\r\n };\r\n\r\n function floatEqual(a, b) {\r\n return Math.abs(a - b) * 100000 <= Math.min(Math.abs(a), Math.abs(b));\r\n }\r\n\r\n function floatZero(f) {\r\n return Math.abs(f) <= 0.00001;\r\n }\r\n\r\n function lerp(p0, p1, amount) {\r\n return p0 * (1 - amount) + p1 * amount;\r\n }\r\n\r\n function lerpPoint(p0, p1, amount) {\r\n return [lerp(p0[0], p1[0], amount), lerp(p0[1], p1[1], amount)];\r\n }\r\n\r\n function quadRoots(a, b, c) {\r\n // no root\r\n if (a === 0) return [];\r\n var s = b * b - 4 * a * c; // Complex roots\r\n\r\n if (s < 0) return [];\r\n var singleRoot = -b / (2 * a); // 1 root\r\n\r\n if (s === 0) return [singleRoot];\r\n var delta = Math.sqrt(s) / (2 * a); // 2 roots\r\n\r\n return [singleRoot - delta, singleRoot + delta];\r\n }\r\n\r\n function polynomialCoefficients(p0, p1, p2, p3) {\r\n return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];\r\n }\r\n\r\n function singlePoint(p) {\r\n return new PolynomialBezier(p, p, p, p, false);\r\n }\r\n\r\n function PolynomialBezier(p0, p1, p2, p3, linearize) {\r\n if (linearize && pointEqual(p0, p1)) {\r\n p1 = lerpPoint(p0, p3, 1 / 3);\r\n }\r\n\r\n if (linearize && pointEqual(p2, p3)) {\r\n p2 = lerpPoint(p0, p3, 2 / 3);\r\n }\r\n\r\n var coeffx = polynomialCoefficients(p0[0], p1[0], p2[0], p3[0]);\r\n var coeffy = polynomialCoefficients(p0[1], p1[1], p2[1], p3[1]);\r\n this.a = [coeffx[0], coeffy[0]];\r\n this.b = [coeffx[1], coeffy[1]];\r\n this.c = [coeffx[2], coeffy[2]];\r\n this.d = [coeffx[3], coeffy[3]];\r\n this.points = [p0, p1, p2, p3];\r\n }\r\n\r\n PolynomialBezier.prototype.point = function (t) {\r\n return [((this.a[0] * t + this.b[0]) * t + this.c[0]) * t + this.d[0], ((this.a[1] * t + this.b[1]) * t + this.c[1]) * t + this.d[1]];\r\n };\r\n\r\n PolynomialBezier.prototype.derivative = function (t) {\r\n return [(3 * t * this.a[0] + 2 * this.b[0]) * t + this.c[0], (3 * t * this.a[1] + 2 * this.b[1]) * t + this.c[1]];\r\n };\r\n\r\n PolynomialBezier.prototype.tangentAngle = function (t) {\r\n var p = this.derivative(t);\r\n return Math.atan2(p[1], p[0]);\r\n };\r\n\r\n PolynomialBezier.prototype.normalAngle = function (t) {\r\n var p = this.derivative(t);\r\n return Math.atan2(p[0], p[1]);\r\n };\r\n\r\n PolynomialBezier.prototype.inflectionPoints = function () {\r\n var denom = this.a[1] * this.b[0] - this.a[0] * this.b[1];\r\n if (floatZero(denom)) return [];\r\n var tcusp = -0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1]) / denom;\r\n var square = tcusp * tcusp - 1 / 3 * (this.b[1] * this.c[0] - this.b[0] * this.c[1]) / denom;\r\n if (square < 0) return [];\r\n var root = Math.sqrt(square);\r\n\r\n if (floatZero(root)) {\r\n if (root > 0 && root < 1) return [tcusp];\r\n return [];\r\n }\r\n\r\n return [tcusp - root, tcusp + root].filter(function (r) {\r\n return r > 0 && r < 1;\r\n });\r\n };\r\n\r\n PolynomialBezier.prototype.split = function (t) {\r\n if (t <= 0) return [singlePoint(this.points[0]), this];\r\n if (t >= 1) return [this, singlePoint(this.points[this.points.length - 1])];\r\n var p10 = lerpPoint(this.points[0], this.points[1], t);\r\n var p11 = lerpPoint(this.points[1], this.points[2], t);\r\n var p12 = lerpPoint(this.points[2], this.points[3], t);\r\n var p20 = lerpPoint(p10, p11, t);\r\n var p21 = lerpPoint(p11, p12, t);\r\n var p3 = lerpPoint(p20, p21, t);\r\n return [new PolynomialBezier(this.points[0], p10, p20, p3, true), new PolynomialBezier(p3, p21, p12, this.points[3], true)];\r\n };\r\n\r\n function extrema(bez, comp) {\r\n var min = bez.points[0][comp];\r\n var max = bez.points[bez.points.length - 1][comp];\r\n\r\n if (min > max) {\r\n var e = max;\r\n max = min;\r\n min = e;\r\n } // Derivative roots to find min/max\r\n\r\n\r\n var f = quadRoots(3 * bez.a[comp], 2 * bez.b[comp], bez.c[comp]);\r\n\r\n for (var i = 0; i < f.length; i += 1) {\r\n if (f[i] > 0 && f[i] < 1) {\r\n var val = bez.point(f[i])[comp];\r\n if (val < min) min = val;else if (val > max) max = val;\r\n }\r\n }\r\n\r\n return {\r\n min: min,\r\n max: max\r\n };\r\n }\r\n\r\n PolynomialBezier.prototype.bounds = function () {\r\n return {\r\n x: extrema(this, 0),\r\n y: extrema(this, 1)\r\n };\r\n };\r\n\r\n PolynomialBezier.prototype.boundingBox = function () {\r\n var bounds = this.bounds();\r\n return {\r\n left: bounds.x.min,\r\n right: bounds.x.max,\r\n top: bounds.y.min,\r\n bottom: bounds.y.max,\r\n width: bounds.x.max - bounds.x.min,\r\n height: bounds.y.max - bounds.y.min,\r\n cx: (bounds.x.max + bounds.x.min) / 2,\r\n cy: (bounds.y.max + bounds.y.min) / 2\r\n };\r\n };\r\n\r\n function intersectData(bez, t1, t2) {\r\n var box = bez.boundingBox();\r\n return {\r\n cx: box.cx,\r\n cy: box.cy,\r\n width: box.width,\r\n height: box.height,\r\n bez: bez,\r\n t: (t1 + t2) / 2,\r\n t1: t1,\r\n t2: t2\r\n };\r\n }\r\n\r\n function splitData(data) {\r\n var split = data.bez.split(0.5);\r\n return [intersectData(split[0], data.t1, data.t), intersectData(split[1], data.t, data.t2)];\r\n }\r\n\r\n function boxIntersect(b1, b2) {\r\n return Math.abs(b1.cx - b2.cx) * 2 < b1.width + b2.width && Math.abs(b1.cy - b2.cy) * 2 < b1.height + b2.height;\r\n }\r\n\r\n function intersectsImpl(d1, d2, depth, tolerance, intersections, maxRecursion) {\r\n if (!boxIntersect(d1, d2)) return;\r\n\r\n if (depth >= maxRecursion || d1.width <= tolerance && d1.height <= tolerance && d2.width <= tolerance && d2.height <= tolerance) {\r\n intersections.push([d1.t, d2.t]);\r\n return;\r\n }\r\n\r\n var d1s = splitData(d1);\r\n var d2s = splitData(d2);\r\n intersectsImpl(d1s[0], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\r\n intersectsImpl(d1s[0], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\r\n intersectsImpl(d1s[1], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\r\n intersectsImpl(d1s[1], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\r\n }\r\n\r\n PolynomialBezier.prototype.intersections = function (other, tolerance, maxRecursion) {\r\n if (tolerance === undefined) tolerance = 2;\r\n if (maxRecursion === undefined) maxRecursion = 7;\r\n var intersections = [];\r\n intersectsImpl(intersectData(this, 0, 1), intersectData(other, 0, 1), 0, tolerance, intersections, maxRecursion);\r\n return intersections;\r\n };\r\n\r\n PolynomialBezier.shapeSegment = function (shapePath, index) {\r\n var nextIndex = (index + 1) % shapePath.length();\r\n return new PolynomialBezier(shapePath.v[index], shapePath.o[index], shapePath.i[nextIndex], shapePath.v[nextIndex], true);\r\n };\r\n\r\n PolynomialBezier.shapeSegmentInverted = function (shapePath, index) {\r\n var nextIndex = (index + 1) % shapePath.length();\r\n return new PolynomialBezier(shapePath.v[nextIndex], shapePath.i[nextIndex], shapePath.o[index], shapePath.v[index], true);\r\n };\r\n\r\n function crossProduct(a, b) {\r\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\r\n }\r\n\r\n function lineIntersection(start1, end1, start2, end2) {\r\n var v1 = [start1[0], start1[1], 1];\r\n var v2 = [end1[0], end1[1], 1];\r\n var v3 = [start2[0], start2[1], 1];\r\n var v4 = [end2[0], end2[1], 1];\r\n var r = crossProduct(crossProduct(v1, v2), crossProduct(v3, v4));\r\n if (floatZero(r[2])) return null;\r\n return [r[0] / r[2], r[1] / r[2]];\r\n }\r\n\r\n function polarOffset(p, angle, length) {\r\n return [p[0] + Math.cos(angle) * length, p[1] - Math.sin(angle) * length];\r\n }\r\n\r\n function pointDistance(p1, p2) {\r\n return Math.hypot(p1[0] - p2[0], p1[1] - p2[1]);\r\n }\r\n\r\n function pointEqual(p1, p2) {\r\n return floatEqual(p1[0], p2[0]) && floatEqual(p1[1], p2[1]);\r\n }\r\n\r\n function ZigZagModifier() {}\r\n\r\n extendPrototype([ShapeModifier], ZigZagModifier);\r\n\r\n ZigZagModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.amplitude = PropertyFactory.getProp(elem, data.s, 0, null, this);\r\n this.frequency = PropertyFactory.getProp(elem, data.r, 0, null, this);\r\n this.pointsType = PropertyFactory.getProp(elem, data.pt, 0, null, this);\r\n this._isAnimated = this.amplitude.effectsSequence.length !== 0 || this.frequency.effectsSequence.length !== 0 || this.pointsType.effectsSequence.length !== 0;\r\n };\r\n\r\n function setPoint(outputBezier, point, angle, direction, amplitude, outAmplitude, inAmplitude) {\r\n var angO = angle - Math.PI / 2;\r\n var angI = angle + Math.PI / 2;\r\n var px = point[0] + Math.cos(angle) * direction * amplitude;\r\n var py = point[1] - Math.sin(angle) * direction * amplitude;\r\n outputBezier.setTripleAt(px, py, px + Math.cos(angO) * outAmplitude, py - Math.sin(angO) * outAmplitude, px + Math.cos(angI) * inAmplitude, py - Math.sin(angI) * inAmplitude, outputBezier.length());\r\n }\r\n\r\n function getPerpendicularVector(pt1, pt2) {\r\n var vector = [pt2[0] - pt1[0], pt2[1] - pt1[1]];\r\n var rot = -Math.PI * 0.5;\r\n var rotatedVector = [Math.cos(rot) * vector[0] - Math.sin(rot) * vector[1], Math.sin(rot) * vector[0] + Math.cos(rot) * vector[1]];\r\n return rotatedVector;\r\n }\r\n\r\n function getProjectingAngle(path, cur) {\r\n var prevIndex = cur === 0 ? path.length() - 1 : cur - 1;\r\n var nextIndex = (cur + 1) % path.length();\r\n var prevPoint = path.v[prevIndex];\r\n var nextPoint = path.v[nextIndex];\r\n var pVector = getPerpendicularVector(prevPoint, nextPoint);\r\n return Math.atan2(0, 1) - Math.atan2(pVector[1], pVector[0]);\r\n }\r\n\r\n function zigZagCorner(outputBezier, path, cur, amplitude, frequency, pointType, direction) {\r\n var angle = getProjectingAngle(path, cur);\r\n var point = path.v[cur % path._length];\r\n var prevPoint = path.v[cur === 0 ? path._length - 1 : cur - 1];\r\n var nextPoint = path.v[(cur + 1) % path._length];\r\n var prevDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - prevPoint[0], 2) + Math.pow(point[1] - prevPoint[1], 2)) : 0;\r\n var nextDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - nextPoint[0], 2) + Math.pow(point[1] - nextPoint[1], 2)) : 0;\r\n setPoint(outputBezier, path.v[cur % path._length], angle, direction, amplitude, nextDist / ((frequency + 1) * 2), prevDist / ((frequency + 1) * 2), pointType);\r\n }\r\n\r\n function zigZagSegment(outputBezier, segment, amplitude, frequency, pointType, direction) {\r\n for (var i = 0; i < frequency; i += 1) {\r\n var t = (i + 1) / (frequency + 1);\r\n var dist = pointType === 2 ? Math.sqrt(Math.pow(segment.points[3][0] - segment.points[0][0], 2) + Math.pow(segment.points[3][1] - segment.points[0][1], 2)) : 0;\r\n var angle = segment.normalAngle(t);\r\n var point = segment.point(t);\r\n setPoint(outputBezier, point, angle, direction, amplitude, dist / ((frequency + 1) * 2), dist / ((frequency + 1) * 2), pointType);\r\n direction = -direction;\r\n }\r\n\r\n return direction;\r\n }\r\n\r\n ZigZagModifier.prototype.processPath = function (path, amplitude, frequency, pointType) {\r\n var count = path._length;\r\n var clonedPath = shapePool.newElement();\r\n clonedPath.c = path.c;\r\n\r\n if (!path.c) {\r\n count -= 1;\r\n }\r\n\r\n if (count === 0) return clonedPath;\r\n var direction = -1;\r\n var segment = PolynomialBezier.shapeSegment(path, 0);\r\n zigZagCorner(clonedPath, path, 0, amplitude, frequency, pointType, direction);\r\n\r\n for (var i = 0; i < count; i += 1) {\r\n direction = zigZagSegment(clonedPath, segment, amplitude, frequency, pointType, -direction);\r\n\r\n if (i === count - 1 && !path.c) {\r\n segment = null;\r\n } else {\r\n segment = PolynomialBezier.shapeSegment(path, (i + 1) % count);\r\n }\r\n\r\n zigZagCorner(clonedPath, path, i + 1, amplitude, frequency, pointType, direction);\r\n }\r\n\r\n return clonedPath;\r\n };\r\n\r\n ZigZagModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var amplitude = this.amplitude.v;\r\n var frequency = Math.max(0, Math.round(this.frequency.v));\r\n var pointType = this.pointsType.v;\r\n\r\n if (amplitude !== 0) {\r\n var shapeData;\r\n var localShapeCollection;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n localShapeCollection = shapeData.localShapeCollection;\r\n\r\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\r\n localShapeCollection.releaseShapes();\r\n shapeData.shape._mdf = true;\r\n shapePaths = shapeData.shape.paths.shapes;\r\n jLen = shapeData.shape.paths._length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n localShapeCollection.addShape(this.processPath(shapePaths[j], amplitude, frequency, pointType));\r\n }\r\n }\r\n\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n }\r\n }\r\n\r\n if (!this.dynamicProperties.length) {\r\n this._mdf = false;\r\n }\r\n };\r\n\r\n function linearOffset(p1, p2, amount) {\r\n var angle = Math.atan2(p2[0] - p1[0], p2[1] - p1[1]);\r\n return [polarOffset(p1, angle, amount), polarOffset(p2, angle, amount)];\r\n }\r\n\r\n function offsetSegment(segment, amount) {\r\n var p0;\r\n var p1a;\r\n var p1b;\r\n var p2b;\r\n var p2a;\r\n var p3;\r\n var e;\r\n e = linearOffset(segment.points[0], segment.points[1], amount);\r\n p0 = e[0];\r\n p1a = e[1];\r\n e = linearOffset(segment.points[1], segment.points[2], amount);\r\n p1b = e[0];\r\n p2b = e[1];\r\n e = linearOffset(segment.points[2], segment.points[3], amount);\r\n p2a = e[0];\r\n p3 = e[1];\r\n var p1 = lineIntersection(p0, p1a, p1b, p2b);\r\n if (p1 === null) p1 = p1a;\r\n var p2 = lineIntersection(p2a, p3, p1b, p2b);\r\n if (p2 === null) p2 = p2a;\r\n return new PolynomialBezier(p0, p1, p2, p3);\r\n }\r\n\r\n function joinLines(outputBezier, seg1, seg2, lineJoin, miterLimit) {\r\n var p0 = seg1.points[3];\r\n var p1 = seg2.points[0]; // Bevel\r\n\r\n if (lineJoin === 3) return p0; // Connected, they don't need a joint\r\n\r\n if (pointEqual(p0, p1)) return p0; // Round\r\n\r\n if (lineJoin === 2) {\r\n var angleOut = -seg1.tangentAngle(1);\r\n var angleIn = -seg2.tangentAngle(0) + Math.PI;\r\n var center = lineIntersection(p0, polarOffset(p0, angleOut + Math.PI / 2, 100), p1, polarOffset(p1, angleOut + Math.PI / 2, 100));\r\n var radius = center ? pointDistance(center, p0) : pointDistance(p0, p1) / 2;\r\n var tan = polarOffset(p0, angleOut, 2 * radius * roundCorner);\r\n outputBezier.setXYAt(tan[0], tan[1], 'o', outputBezier.length() - 1);\r\n tan = polarOffset(p1, angleIn, 2 * radius * roundCorner);\r\n outputBezier.setTripleAt(p1[0], p1[1], p1[0], p1[1], tan[0], tan[1], outputBezier.length());\r\n return p1;\r\n } // Miter\r\n\r\n\r\n var t0 = pointEqual(p0, seg1.points[2]) ? seg1.points[0] : seg1.points[2];\r\n var t1 = pointEqual(p1, seg2.points[1]) ? seg2.points[3] : seg2.points[1];\r\n var intersection = lineIntersection(t0, p0, p1, t1);\r\n\r\n if (intersection && pointDistance(intersection, p0) < miterLimit) {\r\n outputBezier.setTripleAt(intersection[0], intersection[1], intersection[0], intersection[1], intersection[0], intersection[1], outputBezier.length());\r\n return intersection;\r\n }\r\n\r\n return p0;\r\n }\r\n\r\n function getIntersection(a, b) {\r\n var intersect = a.intersections(b);\r\n if (intersect.length && floatEqual(intersect[0][0], 1)) intersect.shift();\r\n if (intersect.length) return intersect[0];\r\n return null;\r\n }\r\n\r\n function pruneSegmentIntersection(a, b) {\r\n var outa = a.slice();\r\n var outb = b.slice();\r\n var intersect = getIntersection(a[a.length - 1], b[0]);\r\n\r\n if (intersect) {\r\n outa[a.length - 1] = a[a.length - 1].split(intersect[0])[0];\r\n outb[0] = b[0].split(intersect[1])[1];\r\n }\r\n\r\n if (a.length > 1 && b.length > 1) {\r\n intersect = getIntersection(a[0], b[b.length - 1]);\r\n\r\n if (intersect) {\r\n return [[a[0].split(intersect[0])[0]], [b[b.length - 1].split(intersect[1])[1]]];\r\n }\r\n }\r\n\r\n return [outa, outb];\r\n }\r\n\r\n function pruneIntersections(segments) {\r\n var e;\r\n\r\n for (var i = 1; i < segments.length; i += 1) {\r\n e = pruneSegmentIntersection(segments[i - 1], segments[i]);\r\n segments[i - 1] = e[0];\r\n segments[i] = e[1];\r\n }\r\n\r\n if (segments.length > 1) {\r\n e = pruneSegmentIntersection(segments[segments.length - 1], segments[0]);\r\n segments[segments.length - 1] = e[0];\r\n segments[0] = e[1];\r\n }\r\n\r\n return segments;\r\n }\r\n\r\n function offsetSegmentSplit(segment, amount) {\r\n /*\r\n We split each bezier segment into smaller pieces based\r\n on inflection points, this ensures the control point\r\n polygon is convex.\r\n (A cubic bezier can have none, one, or two inflection points)\r\n */\r\n var flex = segment.inflectionPoints();\r\n var left;\r\n var right;\r\n var split;\r\n var mid;\r\n\r\n if (flex.length === 0) {\r\n return [offsetSegment(segment, amount)];\r\n }\r\n\r\n if (flex.length === 1 || floatEqual(flex[1], 1)) {\r\n split = segment.split(flex[0]);\r\n left = split[0];\r\n right = split[1];\r\n return [offsetSegment(left, amount), offsetSegment(right, amount)];\r\n }\r\n\r\n split = segment.split(flex[0]);\r\n left = split[0];\r\n var t = (flex[1] - flex[0]) / (1 - flex[0]);\r\n split = split[1].split(t);\r\n mid = split[0];\r\n right = split[1];\r\n return [offsetSegment(left, amount), offsetSegment(mid, amount), offsetSegment(right, amount)];\r\n }\r\n\r\n function OffsetPathModifier() {}\r\n\r\n extendPrototype([ShapeModifier], OffsetPathModifier);\r\n\r\n OffsetPathModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\r\n this.miterLimit = PropertyFactory.getProp(elem, data.ml, 0, null, this);\r\n this.lineJoin = data.lj;\r\n this._isAnimated = this.amount.effectsSequence.length !== 0;\r\n };\r\n\r\n OffsetPathModifier.prototype.processPath = function (inputBezier, amount, lineJoin, miterLimit) {\r\n var outputBezier = shapePool.newElement();\r\n outputBezier.c = inputBezier.c;\r\n var count = inputBezier.length();\r\n\r\n if (!inputBezier.c) {\r\n count -= 1;\r\n }\r\n\r\n var i;\r\n var j;\r\n var segment;\r\n var multiSegments = [];\r\n\r\n for (i = 0; i < count; i += 1) {\r\n segment = PolynomialBezier.shapeSegment(inputBezier, i);\r\n multiSegments.push(offsetSegmentSplit(segment, amount));\r\n }\r\n\r\n if (!inputBezier.c) {\r\n for (i = count - 1; i >= 0; i -= 1) {\r\n segment = PolynomialBezier.shapeSegmentInverted(inputBezier, i);\r\n multiSegments.push(offsetSegmentSplit(segment, amount));\r\n }\r\n }\r\n\r\n multiSegments = pruneIntersections(multiSegments); // Add bezier segments to the output and apply line joints\r\n\r\n var lastPoint = null;\r\n var lastSeg = null;\r\n\r\n for (i = 0; i < multiSegments.length; i += 1) {\r\n var multiSegment = multiSegments[i];\r\n if (lastSeg) lastPoint = joinLines(outputBezier, lastSeg, multiSegment[0], lineJoin, miterLimit);\r\n lastSeg = multiSegment[multiSegment.length - 1];\r\n\r\n for (j = 0; j < multiSegment.length; j += 1) {\r\n segment = multiSegment[j];\r\n\r\n if (lastPoint && pointEqual(segment.points[0], lastPoint)) {\r\n outputBezier.setXYAt(segment.points[1][0], segment.points[1][1], 'o', outputBezier.length() - 1);\r\n } else {\r\n outputBezier.setTripleAt(segment.points[0][0], segment.points[0][1], segment.points[1][0], segment.points[1][1], segment.points[0][0], segment.points[0][1], outputBezier.length());\r\n }\r\n\r\n outputBezier.setTripleAt(segment.points[3][0], segment.points[3][1], segment.points[3][0], segment.points[3][1], segment.points[2][0], segment.points[2][1], outputBezier.length());\r\n lastPoint = segment.points[3];\r\n }\r\n }\r\n\r\n if (multiSegments.length) joinLines(outputBezier, lastSeg, multiSegments[0][0], lineJoin, miterLimit);\r\n return outputBezier;\r\n };\r\n\r\n OffsetPathModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var amount = this.amount.v;\r\n var miterLimit = this.miterLimit.v;\r\n var lineJoin = this.lineJoin;\r\n\r\n if (amount !== 0) {\r\n var shapeData;\r\n var localShapeCollection;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n localShapeCollection = shapeData.localShapeCollection;\r\n\r\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\r\n localShapeCollection.releaseShapes();\r\n shapeData.shape._mdf = true;\r\n shapePaths = shapeData.shape.paths.shapes;\r\n jLen = shapeData.shape.paths._length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount, lineJoin, miterLimit));\r\n }\r\n }\r\n\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n }\r\n }\r\n\r\n if (!this.dynamicProperties.length) {\r\n this._mdf = false;\r\n }\r\n };\r\n\r\n function getFontProperties(fontData) {\r\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\r\n var fWeight = 'normal';\r\n var fStyle = 'normal';\r\n var len = styles.length;\r\n var styleName;\r\n\r\n for (var i = 0; i < len; i += 1) {\r\n styleName = styles[i].toLowerCase();\r\n\r\n switch (styleName) {\r\n case 'italic':\r\n fStyle = 'italic';\r\n break;\r\n\r\n case 'bold':\r\n fWeight = '700';\r\n break;\r\n\r\n case 'black':\r\n fWeight = '900';\r\n break;\r\n\r\n case 'medium':\r\n fWeight = '500';\r\n break;\r\n\r\n case 'regular':\r\n case 'normal':\r\n fWeight = '400';\r\n break;\r\n\r\n case 'light':\r\n case 'thin':\r\n fWeight = '200';\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n return {\r\n style: fStyle,\r\n weight: fontData.fWeight || fWeight\r\n };\r\n }\r\n\r\n var FontManager = function () {\r\n var maxWaitingTime = 5000;\r\n var emptyChar = {\r\n w: 0,\r\n size: 0,\r\n shapes: [],\r\n data: {\r\n shapes: []\r\n }\r\n };\r\n var combinedCharacters = []; // Hindi characters\r\n\r\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]);\r\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\r\n var zeroWidthJoiner = [65039, 8205];\r\n\r\n function trimFontOptions(font) {\r\n var familyArray = font.split(',');\r\n var i;\r\n var len = familyArray.length;\r\n var enabledFamilies = [];\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\r\n enabledFamilies.push(familyArray[i]);\r\n }\r\n }\r\n\r\n return enabledFamilies.join(',');\r\n }\r\n\r\n function setUpNode(font, family) {\r\n var parentNode = createTag('span'); // Node is invisible to screen readers.\r\n\r\n parentNode.setAttribute('aria-hidden', true);\r\n parentNode.style.fontFamily = family;\r\n var node = createTag('span'); // Characters that vary significantly among different fonts\r\n\r\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\r\n\r\n parentNode.style.position = 'absolute';\r\n parentNode.style.left = '-10000px';\r\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\r\n\r\n parentNode.style.fontSize = '300px'; // Reset any font properties\r\n\r\n parentNode.style.fontVariant = 'normal';\r\n parentNode.style.fontStyle = 'normal';\r\n parentNode.style.fontWeight = 'normal';\r\n parentNode.style.letterSpacing = '0';\r\n parentNode.appendChild(node);\r\n document.body.appendChild(parentNode); // Remember width with no applied web font\r\n\r\n var width = node.offsetWidth;\r\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\r\n return {\r\n node: node,\r\n w: width,\r\n parent: parentNode\r\n };\r\n }\r\n\r\n function checkLoadedFonts() {\r\n var i;\r\n var len = this.fonts.length;\r\n var node;\r\n var w;\r\n var loadedCount = len;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.fonts[i].loaded) {\r\n loadedCount -= 1;\r\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\r\n this.fonts[i].loaded = true;\r\n } else {\r\n node = this.fonts[i].monoCase.node;\r\n w = this.fonts[i].monoCase.w;\r\n\r\n if (node.offsetWidth !== w) {\r\n loadedCount -= 1;\r\n this.fonts[i].loaded = true;\r\n } else {\r\n node = this.fonts[i].sansCase.node;\r\n w = this.fonts[i].sansCase.w;\r\n\r\n if (node.offsetWidth !== w) {\r\n loadedCount -= 1;\r\n this.fonts[i].loaded = true;\r\n }\r\n }\r\n\r\n if (this.fonts[i].loaded) {\r\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\r\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\r\n }\r\n }\r\n }\r\n\r\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\r\n setTimeout(this.checkLoadedFontsBinded, 20);\r\n } else {\r\n setTimeout(this.setIsLoadedBinded, 10);\r\n }\r\n }\r\n\r\n function createHelper(fontData, def) {\r\n var engine = document.body && def ? 'svg' : 'canvas';\r\n var helper;\r\n var fontProps = getFontProperties(fontData);\r\n\r\n if (engine === 'svg') {\r\n var tHelper = createNS('text');\r\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\r\n\r\n tHelper.setAttribute('font-family', fontData.fFamily);\r\n tHelper.setAttribute('font-style', fontProps.style);\r\n tHelper.setAttribute('font-weight', fontProps.weight);\r\n tHelper.textContent = '1';\r\n\r\n if (fontData.fClass) {\r\n tHelper.style.fontFamily = 'inherit';\r\n tHelper.setAttribute('class', fontData.fClass);\r\n } else {\r\n tHelper.style.fontFamily = fontData.fFamily;\r\n }\r\n\r\n def.appendChild(tHelper);\r\n helper = tHelper;\r\n } else {\r\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\r\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\r\n helper = tCanvasHelper;\r\n }\r\n\r\n function measure(text) {\r\n if (engine === 'svg') {\r\n helper.textContent = text;\r\n return helper.getComputedTextLength();\r\n }\r\n\r\n return helper.measureText(text).width;\r\n }\r\n\r\n return {\r\n measureText: measure\r\n };\r\n }\r\n\r\n function addFonts(fontData, defs) {\r\n if (!fontData) {\r\n this.isLoaded = true;\r\n return;\r\n }\r\n\r\n if (this.chars) {\r\n this.isLoaded = true;\r\n this.fonts = fontData.list;\r\n return;\r\n }\r\n\r\n if (!document.body) {\r\n this.isLoaded = true;\r\n fontData.list.forEach(function (data) {\r\n data.helper = createHelper(data);\r\n data.cache = {};\r\n });\r\n this.fonts = fontData.list;\r\n return;\r\n }\r\n\r\n var fontArr = fontData.list;\r\n var i;\r\n var len = fontArr.length;\r\n var _pendingFonts = len;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n var shouldLoadFont = true;\r\n var loadedSelector;\r\n var j;\r\n fontArr[i].loaded = false;\r\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\r\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\r\n\r\n if (!fontArr[i].fPath) {\r\n fontArr[i].loaded = true;\r\n _pendingFonts -= 1;\r\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\r\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\r\n\r\n if (loadedSelector.length > 0) {\r\n shouldLoadFont = false;\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var s = createTag('style');\r\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n s.setAttribute('f-origin', fontArr[i].origin);\r\n s.setAttribute('f-family', fontArr[i].fFamily);\r\n s.type = 'text/css';\r\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\r\n defs.appendChild(s);\r\n }\r\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\r\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\r\n\r\n for (j = 0; j < loadedSelector.length; j += 1) {\r\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\r\n // Font is already loaded\r\n shouldLoadFont = false;\r\n }\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var l = createTag('link');\r\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n l.setAttribute('f-origin', fontArr[i].origin);\r\n l.type = 'text/css';\r\n l.rel = 'stylesheet';\r\n l.href = fontArr[i].fPath;\r\n document.body.appendChild(l);\r\n }\r\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\r\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\r\n\r\n for (j = 0; j < loadedSelector.length; j += 1) {\r\n if (fontArr[i].fPath === loadedSelector[j].src) {\r\n // Font is already loaded\r\n shouldLoadFont = false;\r\n }\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var sc = createTag('link');\r\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n sc.setAttribute('f-origin', fontArr[i].origin);\r\n sc.setAttribute('rel', 'stylesheet');\r\n sc.setAttribute('href', fontArr[i].fPath);\r\n defs.appendChild(sc);\r\n }\r\n }\r\n\r\n fontArr[i].helper = createHelper(fontArr[i], defs);\r\n fontArr[i].cache = {};\r\n this.fonts.push(fontArr[i]);\r\n }\r\n\r\n if (_pendingFonts === 0) {\r\n this.isLoaded = true;\r\n } else {\r\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\r\n // Adding this timeout seems to fix it\r\n setTimeout(this.checkLoadedFonts.bind(this), 100);\r\n }\r\n }\r\n\r\n function addChars(chars) {\r\n if (!chars) {\r\n return;\r\n }\r\n\r\n if (!this.chars) {\r\n this.chars = [];\r\n }\r\n\r\n var i;\r\n var len = chars.length;\r\n var j;\r\n var jLen = this.chars.length;\r\n var found;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n j = 0;\r\n found = false;\r\n\r\n while (j < jLen) {\r\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\r\n found = true;\r\n }\r\n\r\n j += 1;\r\n }\r\n\r\n if (!found) {\r\n this.chars.push(chars[i]);\r\n jLen += 1;\r\n }\r\n }\r\n }\r\n\r\n function getCharData(_char, style, font) {\r\n var i = 0;\r\n var len = this.chars.length;\r\n\r\n while (i < len) {\r\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\r\n return this.chars[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\r\n && !this._warned) {\r\n this._warned = true;\r\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\r\n }\r\n\r\n return emptyChar;\r\n }\r\n\r\n function measureText(_char2, fontName, size) {\r\n var fontData = this.getFontByName(fontName);\r\n\r\n var index = _char2.charCodeAt(0);\r\n\r\n if (!fontData.cache[index + 1]) {\r\n var tHelper = fontData.helper;\r\n\r\n if (_char2 === ' ') {\r\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\r\n var singleSize = tHelper.measureText('||');\r\n fontData.cache[index + 1] = (doubleSize - singleSize) / 100;\r\n } else {\r\n fontData.cache[index + 1] = tHelper.measureText(_char2) / 100;\r\n }\r\n }\r\n\r\n return fontData.cache[index + 1] * size;\r\n }\r\n\r\n function getFontByName(name) {\r\n var i = 0;\r\n var len = this.fonts.length;\r\n\r\n while (i < len) {\r\n if (this.fonts[i].fName === name) {\r\n return this.fonts[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return this.fonts[0];\r\n }\r\n\r\n function isModifier(firstCharCode, secondCharCode) {\r\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\r\n return surrogateModifiers.indexOf(sum) !== -1;\r\n }\r\n\r\n function isZeroWidthJoiner(firstCharCode, secondCharCode) {\r\n if (!secondCharCode) {\r\n return firstCharCode === zeroWidthJoiner[1];\r\n }\r\n\r\n return firstCharCode === zeroWidthJoiner[0] && secondCharCode === zeroWidthJoiner[1];\r\n }\r\n\r\n function isCombinedCharacter(_char3) {\r\n return combinedCharacters.indexOf(_char3) !== -1;\r\n }\r\n\r\n function setIsLoaded() {\r\n this.isLoaded = true;\r\n }\r\n\r\n var Font = function Font() {\r\n this.fonts = [];\r\n this.chars = null;\r\n this.typekitLoaded = 0;\r\n this.isLoaded = false;\r\n this._warned = false;\r\n this.initTime = Date.now();\r\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\r\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\r\n };\r\n\r\n Font.isModifier = isModifier;\r\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\r\n Font.isCombinedCharacter = isCombinedCharacter;\r\n var fontPrototype = {\r\n addChars: addChars,\r\n addFonts: addFonts,\r\n getCharData: getCharData,\r\n getFontByName: getFontByName,\r\n measureText: measureText,\r\n checkLoadedFonts: checkLoadedFonts,\r\n setIsLoaded: setIsLoaded\r\n };\r\n Font.prototype = fontPrototype;\r\n return Font;\r\n }();\r\n\r\n function RenderableElement() {}\r\n\r\n RenderableElement.prototype = {\r\n initRenderable: function initRenderable() {\r\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\r\n this.isInRange = false; // layer's display state\r\n\r\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\r\n\r\n this.isTransparent = false; // list of animated components\r\n\r\n this.renderableComponents = [];\r\n },\r\n addRenderableComponent: function addRenderableComponent(component) {\r\n if (this.renderableComponents.indexOf(component) === -1) {\r\n this.renderableComponents.push(component);\r\n }\r\n },\r\n removeRenderableComponent: function removeRenderableComponent(component) {\r\n if (this.renderableComponents.indexOf(component) !== -1) {\r\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\r\n }\r\n },\r\n prepareRenderableFrame: function prepareRenderableFrame(num) {\r\n this.checkLayerLimits(num);\r\n },\r\n checkTransparency: function checkTransparency() {\r\n if (this.finalTransform.mProp.o.v <= 0) {\r\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\r\n this.isTransparent = true;\r\n this.hide();\r\n }\r\n } else if (this.isTransparent) {\r\n this.isTransparent = false;\r\n this.show();\r\n }\r\n },\r\n\r\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 */\r\n checkLayerLimits: function checkLayerLimits(num) {\r\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\r\n if (this.isInRange !== true) {\r\n this.globalData._mdf = true;\r\n this._mdf = true;\r\n this.isInRange = true;\r\n this.show();\r\n }\r\n } else if (this.isInRange !== false) {\r\n this.globalData._mdf = true;\r\n this.isInRange = false;\r\n this.hide();\r\n }\r\n },\r\n renderRenderable: function renderRenderable() {\r\n var i;\r\n var len = this.renderableComponents.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\r\n }\r\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\r\n\r\n },\r\n sourceRectAtTime: function sourceRectAtTime() {\r\n return {\r\n top: 0,\r\n left: 0,\r\n width: 100,\r\n height: 100\r\n };\r\n },\r\n getLayerSize: function getLayerSize() {\r\n if (this.data.ty === 5) {\r\n return {\r\n w: this.data.textData.width,\r\n h: this.data.textData.height\r\n };\r\n }\r\n\r\n return {\r\n w: this.data.width,\r\n h: this.data.height\r\n };\r\n }\r\n };\r\n\r\n var getBlendMode = function () {\r\n var blendModeEnums = {\r\n 0: 'source-over',\r\n 1: 'multiply',\r\n 2: 'screen',\r\n 3: 'overlay',\r\n 4: 'darken',\r\n 5: 'lighten',\r\n 6: 'color-dodge',\r\n 7: 'color-burn',\r\n 8: 'hard-light',\r\n 9: 'soft-light',\r\n 10: 'difference',\r\n 11: 'exclusion',\r\n 12: 'hue',\r\n 13: 'saturation',\r\n 14: 'color',\r\n 15: 'luminosity'\r\n };\r\n return function (mode) {\r\n return blendModeEnums[mode] || '';\r\n };\r\n }();\r\n\r\n function SliderEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n }\r\n\r\n function AngleEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n }\r\n\r\n function ColorEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\r\n }\r\n\r\n function PointEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\r\n }\r\n\r\n function LayerIndexEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n }\r\n\r\n function MaskIndexEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n }\r\n\r\n function CheckboxEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n }\r\n\r\n function NoValueEffect() {\r\n this.p = {};\r\n }\r\n\r\n function EffectsManager(data, element) {\r\n var effects = data.ef || [];\r\n this.effectElements = [];\r\n var i;\r\n var len = effects.length;\r\n var effectItem;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n effectItem = new GroupEffect(effects[i], element);\r\n this.effectElements.push(effectItem);\r\n }\r\n }\r\n\r\n function GroupEffect(data, element) {\r\n this.init(data, element);\r\n }\r\n\r\n extendPrototype([DynamicPropertyContainer], GroupEffect);\r\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\r\n\r\n GroupEffect.prototype.init = function (data, element) {\r\n this.data = data;\r\n this.effectElements = [];\r\n this.initDynamicPropertyContainer(element);\r\n var i;\r\n var len = this.data.ef.length;\r\n var eff;\r\n var effects = this.data.ef;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n eff = null;\r\n\r\n switch (effects[i].ty) {\r\n case 0:\r\n eff = new SliderEffect(effects[i], element, this);\r\n break;\r\n\r\n case 1:\r\n eff = new AngleEffect(effects[i], element, this);\r\n break;\r\n\r\n case 2:\r\n eff = new ColorEffect(effects[i], element, this);\r\n break;\r\n\r\n case 3:\r\n eff = new PointEffect(effects[i], element, this);\r\n break;\r\n\r\n case 4:\r\n case 7:\r\n eff = new CheckboxEffect(effects[i], element, this);\r\n break;\r\n\r\n case 10:\r\n eff = new LayerIndexEffect(effects[i], element, this);\r\n break;\r\n\r\n case 11:\r\n eff = new MaskIndexEffect(effects[i], element, this);\r\n break;\r\n\r\n case 5:\r\n eff = new EffectsManager(effects[i], element, this);\r\n break;\r\n // case 6:\r\n\r\n default:\r\n eff = new NoValueEffect(effects[i], element, this);\r\n break;\r\n }\r\n\r\n if (eff) {\r\n this.effectElements.push(eff);\r\n }\r\n }\r\n };\r\n\r\n function BaseElement() {}\r\n\r\n BaseElement.prototype = {\r\n checkMasks: function checkMasks() {\r\n if (!this.data.hasMask) {\r\n return false;\r\n }\r\n\r\n var i = 0;\r\n var len = this.data.masksProperties.length;\r\n\r\n while (i < len) {\r\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\r\n return true;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return false;\r\n },\r\n initExpressions: function initExpressions() {\r\n var expressionsInterfaces = getExpressionInterfaces();\r\n\r\n if (!expressionsInterfaces) {\r\n return;\r\n }\r\n\r\n var LayerExpressionInterface = expressionsInterfaces('layer');\r\n var EffectsExpressionInterface = expressionsInterfaces('effects');\r\n var ShapeExpressionInterface = expressionsInterfaces('shape');\r\n var TextExpressionInterface = expressionsInterfaces('text');\r\n var CompExpressionInterface = expressionsInterfaces('comp');\r\n this.layerInterface = LayerExpressionInterface(this);\r\n\r\n if (this.data.hasMask && this.maskManager) {\r\n this.layerInterface.registerMaskInterface(this.maskManager);\r\n }\r\n\r\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\r\n this.layerInterface.registerEffectsInterface(effectsInterface);\r\n\r\n if (this.data.ty === 0 || this.data.xt) {\r\n this.compInterface = CompExpressionInterface(this);\r\n } else if (this.data.ty === 4) {\r\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\r\n this.layerInterface.content = this.layerInterface.shapeInterface;\r\n } else if (this.data.ty === 5) {\r\n this.layerInterface.textInterface = TextExpressionInterface(this);\r\n this.layerInterface.text = this.layerInterface.textInterface;\r\n }\r\n },\r\n setBlendMode: function setBlendMode() {\r\n var blendModeValue = getBlendMode(this.data.bm);\r\n var elem = this.baseElement || this.layerElement;\r\n elem.style['mix-blend-mode'] = blendModeValue;\r\n },\r\n initBaseData: function initBaseData(data, globalData, comp) {\r\n this.globalData = globalData;\r\n this.comp = comp;\r\n this.data = data;\r\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\r\n\r\n if (!this.data.sr) {\r\n this.data.sr = 1;\r\n } // effects manager\r\n\r\n\r\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\r\n },\r\n getType: function getType() {\r\n return this.type;\r\n },\r\n sourceRectAtTime: function sourceRectAtTime() {}\r\n };\r\n\r\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 */\r\n function FrameElement() {}\r\n\r\n FrameElement.prototype = {\r\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\r\n initFrame: function initFrame() {\r\n // set to true when inpoint is rendered\r\n this._isFirstFrame = false; // list of animated properties\r\n\r\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\r\n\r\n this._mdf = false;\r\n },\r\n\r\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 */\r\n prepareProperties: function prepareProperties(num, isVisible) {\r\n var i;\r\n var len = this.dynamicProperties.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\r\n this.dynamicProperties[i].getValue();\r\n\r\n if (this.dynamicProperties[i]._mdf) {\r\n this.globalData._mdf = true;\r\n this._mdf = true;\r\n }\r\n }\r\n }\r\n },\r\n addDynamicProperty: function addDynamicProperty(prop) {\r\n if (this.dynamicProperties.indexOf(prop) === -1) {\r\n this.dynamicProperties.push(prop);\r\n }\r\n }\r\n };\r\n\r\n function FootageElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initRenderable();\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\r\n this.initBaseData(data, globalData, comp);\r\n }\r\n\r\n FootageElement.prototype.prepareFrame = function () {};\r\n\r\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\r\n\r\n FootageElement.prototype.getBaseElement = function () {\r\n return null;\r\n };\r\n\r\n FootageElement.prototype.renderFrame = function () {};\r\n\r\n FootageElement.prototype.destroy = function () {};\r\n\r\n FootageElement.prototype.initExpressions = function () {\r\n var expressionsInterfaces = getExpressionInterfaces();\r\n\r\n if (!expressionsInterfaces) {\r\n return;\r\n }\r\n\r\n var FootageInterface = expressionsInterfaces('footage');\r\n this.layerInterface = FootageInterface(this);\r\n };\r\n\r\n FootageElement.prototype.getFootageData = function () {\r\n return this.footageData;\r\n };\r\n\r\n function AudioElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initRenderable();\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initBaseData(data, globalData, comp);\r\n this._isPlaying = false;\r\n this._canPlay = false;\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n this.audio = this.globalData.audioController.createAudio(assetPath);\r\n this._currentTime = 0;\r\n this.globalData.audioController.addAudio(this);\r\n this._volumeMultiplier = 1;\r\n this._volume = 1;\r\n this._previousVolume = null;\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\r\n _placeholder: true\r\n };\r\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\r\n k: [100]\r\n }, 1, 0.01, this);\r\n }\r\n\r\n AudioElement.prototype.prepareFrame = function (num) {\r\n this.prepareRenderableFrame(num, true);\r\n this.prepareProperties(num, true);\r\n\r\n if (!this.tm._placeholder) {\r\n var timeRemapped = this.tm.v;\r\n this._currentTime = timeRemapped;\r\n } else {\r\n this._currentTime = num / this.data.sr;\r\n }\r\n\r\n this._volume = this.lv.v[0];\r\n var totalVolume = this._volume * this._volumeMultiplier;\r\n\r\n if (this._previousVolume !== totalVolume) {\r\n this._previousVolume = totalVolume;\r\n this.audio.volume(totalVolume);\r\n }\r\n };\r\n\r\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\r\n\r\n AudioElement.prototype.renderFrame = function () {\r\n if (this.isInRange && this._canPlay) {\r\n if (!this._isPlaying) {\r\n this.audio.play();\r\n this.audio.seek(this._currentTime / this.globalData.frameRate);\r\n this._isPlaying = true;\r\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\r\n this.audio.seek(this._currentTime / this.globalData.frameRate);\r\n }\r\n }\r\n };\r\n\r\n AudioElement.prototype.show = function () {// this.audio.play()\r\n };\r\n\r\n AudioElement.prototype.hide = function () {\r\n this.audio.pause();\r\n this._isPlaying = false;\r\n };\r\n\r\n AudioElement.prototype.pause = function () {\r\n this.audio.pause();\r\n this._isPlaying = false;\r\n this._canPlay = false;\r\n };\r\n\r\n AudioElement.prototype.resume = function () {\r\n this._canPlay = true;\r\n };\r\n\r\n AudioElement.prototype.setRate = function (rateValue) {\r\n this.audio.rate(rateValue);\r\n };\r\n\r\n AudioElement.prototype.volume = function (volumeValue) {\r\n this._volumeMultiplier = volumeValue;\r\n this._previousVolume = volumeValue * this._volume;\r\n this.audio.volume(this._previousVolume);\r\n };\r\n\r\n AudioElement.prototype.getBaseElement = function () {\r\n return null;\r\n };\r\n\r\n AudioElement.prototype.destroy = function () {};\r\n\r\n AudioElement.prototype.sourceRectAtTime = function () {};\r\n\r\n AudioElement.prototype.initExpressions = function () {};\r\n\r\n function BaseRenderer() {}\r\n\r\n BaseRenderer.prototype.checkLayers = function (num) {\r\n var i;\r\n var len = this.layers.length;\r\n var data;\r\n this.completeLayers = true;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (!this.elements[i]) {\r\n data = this.layers[i];\r\n\r\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\r\n this.buildItem(i);\r\n }\r\n }\r\n\r\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\r\n }\r\n\r\n this.checkPendingElements();\r\n };\r\n\r\n BaseRenderer.prototype.createItem = function (layer) {\r\n switch (layer.ty) {\r\n case 2:\r\n return this.createImage(layer);\r\n\r\n case 0:\r\n return this.createComp(layer);\r\n\r\n case 1:\r\n return this.createSolid(layer);\r\n\r\n case 3:\r\n return this.createNull(layer);\r\n\r\n case 4:\r\n return this.createShape(layer);\r\n\r\n case 5:\r\n return this.createText(layer);\r\n\r\n case 6:\r\n return this.createAudio(layer);\r\n\r\n case 13:\r\n return this.createCamera(layer);\r\n\r\n case 15:\r\n return this.createFootage(layer);\r\n\r\n default:\r\n return this.createNull(layer);\r\n }\r\n };\r\n\r\n BaseRenderer.prototype.createCamera = function () {\r\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\r\n };\r\n\r\n BaseRenderer.prototype.createAudio = function (data) {\r\n return new AudioElement(data, this.globalData, this);\r\n };\r\n\r\n BaseRenderer.prototype.createFootage = function (data) {\r\n return new FootageElement(data, this.globalData, this);\r\n };\r\n\r\n BaseRenderer.prototype.buildAllItems = function () {\r\n var i;\r\n var len = this.layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.buildItem(i);\r\n }\r\n\r\n this.checkPendingElements();\r\n };\r\n\r\n BaseRenderer.prototype.includeLayers = function (newLayers) {\r\n this.completeLayers = false;\r\n var i;\r\n var len = newLayers.length;\r\n var j;\r\n var jLen = this.layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n j = 0;\r\n\r\n while (j < jLen) {\r\n if (this.layers[j].id === newLayers[i].id) {\r\n this.layers[j] = newLayers[i];\r\n break;\r\n }\r\n\r\n j += 1;\r\n }\r\n }\r\n };\r\n\r\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\r\n this.globalData.projectInterface = pInterface;\r\n };\r\n\r\n BaseRenderer.prototype.initItems = function () {\r\n if (!this.globalData.progressiveLoad) {\r\n this.buildAllItems();\r\n }\r\n };\r\n\r\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\r\n var elements = this.elements;\r\n var layers = this.layers;\r\n var i = 0;\r\n var len = layers.length;\r\n\r\n while (i < len) {\r\n if (layers[i].ind == parentName) {\r\n // eslint-disable-line eqeqeq\r\n if (!elements[i] || elements[i] === true) {\r\n this.buildItem(i);\r\n this.addPendingElement(element);\r\n } else {\r\n hierarchy.push(elements[i]);\r\n elements[i].setAsParent();\r\n\r\n if (layers[i].parent !== undefined) {\r\n this.buildElementParenting(element, layers[i].parent, hierarchy);\r\n } else {\r\n element.setHierarchy(hierarchy);\r\n }\r\n }\r\n }\r\n\r\n i += 1;\r\n }\r\n };\r\n\r\n BaseRenderer.prototype.addPendingElement = function (element) {\r\n this.pendingElements.push(element);\r\n };\r\n\r\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\r\n var i;\r\n var len = assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (assets[i].xt) {\r\n var comp = this.createComp(assets[i]);\r\n comp.initExpressions();\r\n this.globalData.projectInterface.registerComposition(comp);\r\n }\r\n }\r\n };\r\n\r\n BaseRenderer.prototype.getElementById = function (ind) {\r\n var i;\r\n var len = this.elements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.elements[i].data.ind === ind) {\r\n return this.elements[i];\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n\r\n BaseRenderer.prototype.getElementByPath = function (path) {\r\n var pathValue = path.shift();\r\n var element;\r\n\r\n if (typeof pathValue === 'number') {\r\n element = this.elements[pathValue];\r\n } else {\r\n var i;\r\n var len = this.elements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.elements[i].data.nm === pathValue) {\r\n element = this.elements[i];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (path.length === 0) {\r\n return element;\r\n }\r\n\r\n return element.getElementByPath(path);\r\n };\r\n\r\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\r\n this.globalData.fontManager = new FontManager();\r\n this.globalData.fontManager.addChars(animData.chars);\r\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\r\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\r\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\r\n this.globalData.imageLoader = this.animationItem.imagePreloader;\r\n this.globalData.audioController = this.animationItem.audioController;\r\n this.globalData.frameId = 0;\r\n this.globalData.frameRate = animData.fr;\r\n this.globalData.nm = animData.nm;\r\n this.globalData.compSize = {\r\n w: animData.w,\r\n h: animData.h\r\n };\r\n };\r\n\r\n function TransformElement() {}\r\n\r\n TransformElement.prototype = {\r\n initTransform: function initTransform() {\r\n this.finalTransform = {\r\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\r\n o: 0\r\n },\r\n _matMdf: false,\r\n _opMdf: false,\r\n mat: new Matrix()\r\n };\r\n\r\n if (this.data.ao) {\r\n this.finalTransform.mProp.autoOriented = true;\r\n } // TODO: check TYPE 11: Guided elements\r\n\r\n\r\n if (this.data.ty !== 11) {// this.createElements();\r\n }\r\n },\r\n renderTransform: function renderTransform() {\r\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\r\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\r\n\r\n if (this.hierarchy) {\r\n var mat;\r\n var finalMat = this.finalTransform.mat;\r\n var i = 0;\r\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\r\n\r\n if (!this.finalTransform._matMdf) {\r\n while (i < len) {\r\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\r\n this.finalTransform._matMdf = true;\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n }\r\n\r\n if (this.finalTransform._matMdf) {\r\n mat = this.finalTransform.mProp.v.props;\r\n finalMat.cloneFromProps(mat);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n mat = this.hierarchy[i].finalTransform.mProp.v.props;\r\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]);\r\n }\r\n }\r\n }\r\n },\r\n globalToLocal: function globalToLocal(pt) {\r\n var transforms = [];\r\n transforms.push(this.finalTransform);\r\n var flag = true;\r\n var comp = this.comp;\r\n\r\n while (flag) {\r\n if (comp.finalTransform) {\r\n if (comp.data.hasMask) {\r\n transforms.splice(0, 0, comp.finalTransform);\r\n }\r\n\r\n comp = comp.comp;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n\r\n var i;\r\n var len = transforms.length;\r\n var ptNew;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\r\n\r\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\r\n }\r\n\r\n return pt;\r\n },\r\n mHelper: new Matrix()\r\n };\r\n\r\n function MaskElement(data, element, globalData) {\r\n this.data = data;\r\n this.element = element;\r\n this.globalData = globalData;\r\n this.storedData = [];\r\n this.masksProperties = this.data.masksProperties || [];\r\n this.maskElement = null;\r\n var defs = this.globalData.defs;\r\n var i;\r\n var len = this.masksProperties ? this.masksProperties.length : 0;\r\n this.viewData = createSizedArray(len);\r\n this.solidPath = '';\r\n var path;\r\n var properties = this.masksProperties;\r\n var count = 0;\r\n var currentMasks = [];\r\n var j;\r\n var jLen;\r\n var layerId = createElementID();\r\n var rect;\r\n var expansor;\r\n var feMorph;\r\n var x;\r\n var maskType = 'clipPath';\r\n var maskRef = 'clip-path';\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\r\n maskType = 'mask';\r\n maskRef = 'mask';\r\n }\r\n\r\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\r\n rect = createNS('rect');\r\n rect.setAttribute('fill', '#ffffff');\r\n rect.setAttribute('width', this.element.comp.data.w || 0);\r\n rect.setAttribute('height', this.element.comp.data.h || 0);\r\n currentMasks.push(rect);\r\n } else {\r\n rect = null;\r\n }\r\n\r\n path = createNS('path');\r\n\r\n if (properties[i].mode === 'n') {\r\n // TODO move this to a factory or to a constructor\r\n this.viewData[i] = {\r\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\r\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\r\n elem: path,\r\n lastPath: ''\r\n };\r\n defs.appendChild(path);\r\n } else {\r\n count += 1;\r\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\r\n path.setAttribute('clip-rule', 'nonzero');\r\n var filterID;\r\n\r\n if (properties[i].x.k !== 0) {\r\n maskType = 'mask';\r\n maskRef = 'mask';\r\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\r\n filterID = createElementID();\r\n expansor = createNS('filter');\r\n expansor.setAttribute('id', filterID);\r\n feMorph = createNS('feMorphology');\r\n feMorph.setAttribute('operator', 'erode');\r\n feMorph.setAttribute('in', 'SourceGraphic');\r\n feMorph.setAttribute('radius', '0');\r\n expansor.appendChild(feMorph);\r\n defs.appendChild(expansor);\r\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\r\n } else {\r\n feMorph = null;\r\n x = null;\r\n } // TODO move this to a factory or to a constructor\r\n\r\n\r\n this.storedData[i] = {\r\n elem: path,\r\n x: x,\r\n expan: feMorph,\r\n lastPath: '',\r\n lastOperator: '',\r\n filterId: filterID,\r\n lastRadius: 0\r\n };\r\n\r\n if (properties[i].mode === 'i') {\r\n jLen = currentMasks.length;\r\n var g = createNS('g');\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n g.appendChild(currentMasks[j]);\r\n }\r\n\r\n var mask = createNS('mask');\r\n mask.setAttribute('mask-type', 'alpha');\r\n mask.setAttribute('id', layerId + '_' + count);\r\n mask.appendChild(path);\r\n defs.appendChild(mask);\r\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\r\n currentMasks.length = 0;\r\n currentMasks.push(g);\r\n } else {\r\n currentMasks.push(path);\r\n }\r\n\r\n if (properties[i].inv && !this.solidPath) {\r\n this.solidPath = this.createLayerSolidPath();\r\n } // TODO move this to a factory or to a constructor\r\n\r\n\r\n this.viewData[i] = {\r\n elem: path,\r\n lastPath: '',\r\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\r\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\r\n invRect: rect\r\n };\r\n\r\n if (!this.viewData[i].prop.k) {\r\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\r\n }\r\n }\r\n }\r\n\r\n this.maskElement = createNS(maskType);\r\n len = currentMasks.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.maskElement.appendChild(currentMasks[i]);\r\n }\r\n\r\n if (count > 0) {\r\n this.maskElement.setAttribute('id', layerId);\r\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\r\n defs.appendChild(this.maskElement);\r\n }\r\n\r\n if (this.viewData.length) {\r\n this.element.addRenderableComponent(this);\r\n }\r\n }\r\n\r\n MaskElement.prototype.getMaskProperty = function (pos) {\r\n return this.viewData[pos].prop;\r\n };\r\n\r\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\r\n var finalMat = this.element.finalTransform.mat;\r\n var i;\r\n var len = this.masksProperties.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.viewData[i].prop._mdf || isFirstFrame) {\r\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\r\n }\r\n\r\n if (this.viewData[i].op._mdf || isFirstFrame) {\r\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\r\n }\r\n\r\n if (this.masksProperties[i].mode !== 'n') {\r\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\r\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\r\n }\r\n\r\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\r\n var feMorph = this.storedData[i].expan;\r\n\r\n if (this.storedData[i].x.v < 0) {\r\n if (this.storedData[i].lastOperator !== 'erode') {\r\n this.storedData[i].lastOperator = 'erode';\r\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\r\n }\r\n\r\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\r\n } else {\r\n if (this.storedData[i].lastOperator !== 'dilate') {\r\n this.storedData[i].lastOperator = 'dilate';\r\n this.storedData[i].elem.setAttribute('filter', null);\r\n }\r\n\r\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n MaskElement.prototype.getMaskelement = function () {\r\n return this.maskElement;\r\n };\r\n\r\n MaskElement.prototype.createLayerSolidPath = function () {\r\n var path = 'M0,0 ';\r\n path += ' h' + this.globalData.compSize.w;\r\n path += ' v' + this.globalData.compSize.h;\r\n path += ' h-' + this.globalData.compSize.w;\r\n path += ' v-' + this.globalData.compSize.h + ' ';\r\n return path;\r\n };\r\n\r\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\r\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\r\n var i;\r\n var len;\r\n len = pathNodes._length;\r\n\r\n for (i = 1; i < len; i += 1) {\r\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];\r\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];\r\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];\r\n\r\n\r\n if (pathNodes.c && len > 1) {\r\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];\r\n } // pathNodes.__renderedString = pathString;\r\n\r\n\r\n if (viewData.lastPath !== pathString) {\r\n var pathShapeValue = '';\r\n\r\n if (viewData.elem) {\r\n if (pathNodes.c) {\r\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\r\n }\r\n\r\n viewData.elem.setAttribute('d', pathShapeValue);\r\n }\r\n\r\n viewData.lastPath = pathString;\r\n }\r\n };\r\n\r\n MaskElement.prototype.destroy = function () {\r\n this.element = null;\r\n this.globalData = null;\r\n this.maskElement = null;\r\n this.data = null;\r\n this.masksProperties = null;\r\n };\r\n\r\n var filtersFactory = function () {\r\n var ob = {};\r\n ob.createFilter = createFilter;\r\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\r\n\r\n function createFilter(filId, skipCoordinates) {\r\n var fil = createNS('filter');\r\n fil.setAttribute('id', filId);\r\n\r\n if (skipCoordinates !== true) {\r\n fil.setAttribute('filterUnits', 'objectBoundingBox');\r\n fil.setAttribute('x', '0%');\r\n fil.setAttribute('y', '0%');\r\n fil.setAttribute('width', '100%');\r\n fil.setAttribute('height', '100%');\r\n }\r\n\r\n return fil;\r\n }\r\n\r\n function createAlphaToLuminanceFilter() {\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\r\n return feColorMatrix;\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n var featureSupport = function () {\r\n var ob = {\r\n maskType: true,\r\n svgLumaHidden: true,\r\n offscreenCanvas: typeof OffscreenCanvas !== 'undefined'\r\n };\r\n\r\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)) {\r\n ob.maskType = false;\r\n }\r\n\r\n if (/firefox/i.test(navigator.userAgent)) {\r\n ob.svgLumaHidden = false;\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n var registeredEffects = {};\r\n var idPrefix = 'filter_result_';\r\n\r\n function SVGEffects(elem) {\r\n var i;\r\n var source = 'SourceGraphic';\r\n var len = elem.data.ef ? elem.data.ef.length : 0;\r\n var filId = createElementID();\r\n var fil = filtersFactory.createFilter(filId, true);\r\n var count = 0;\r\n this.filters = [];\r\n var filterManager;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n filterManager = null;\r\n var type = elem.data.ef[i].ty;\r\n\r\n if (registeredEffects[type]) {\r\n var Effect = registeredEffects[type].effect;\r\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\r\n source = idPrefix + count;\r\n\r\n if (registeredEffects[type].countsAsEffect) {\r\n count += 1;\r\n }\r\n }\r\n\r\n if (filterManager) {\r\n this.filters.push(filterManager);\r\n }\r\n }\r\n\r\n if (count) {\r\n elem.globalData.defs.appendChild(fil);\r\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\r\n }\r\n\r\n if (this.filters.length) {\r\n elem.addRenderableComponent(this);\r\n }\r\n }\r\n\r\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\r\n var i;\r\n var len = this.filters.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.filters[i].renderFrame(_isFirstFrame);\r\n }\r\n };\r\n\r\n function registerEffect(id, effect, countsAsEffect) {\r\n registeredEffects[id] = {\r\n effect: effect,\r\n countsAsEffect: countsAsEffect\r\n };\r\n }\r\n\r\n function SVGBaseElement() {}\r\n\r\n SVGBaseElement.prototype = {\r\n initRendererElement: function initRendererElement() {\r\n this.layerElement = createNS('g');\r\n },\r\n createContainerElements: function createContainerElements() {\r\n this.matteElement = createNS('g');\r\n this.transformedElement = this.layerElement;\r\n this.maskedElement = this.layerElement;\r\n this._sizeChanged = false;\r\n var layerElementParent = null; // If this layer acts as a mask for the following layer\r\n\r\n if (this.data.td) {\r\n this.matteMasks = {};\r\n var gg = createNS('g');\r\n gg.setAttribute('id', this.layerId);\r\n gg.appendChild(this.layerElement);\r\n layerElementParent = gg;\r\n this.globalData.defs.appendChild(gg);\r\n } else if (this.data.tt) {\r\n this.matteElement.appendChild(this.layerElement);\r\n layerElementParent = this.matteElement;\r\n this.baseElement = this.matteElement;\r\n } else {\r\n this.baseElement = this.layerElement;\r\n }\r\n\r\n if (this.data.ln) {\r\n this.layerElement.setAttribute('id', this.data.ln);\r\n }\r\n\r\n if (this.data.cl) {\r\n this.layerElement.setAttribute('class', this.data.cl);\r\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\r\n\r\n\r\n if (this.data.ty === 0 && !this.data.hd) {\r\n var cp = createNS('clipPath');\r\n var pt = createNS('path');\r\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\r\n var clipId = createElementID();\r\n cp.setAttribute('id', clipId);\r\n cp.appendChild(pt);\r\n this.globalData.defs.appendChild(cp);\r\n\r\n if (this.checkMasks()) {\r\n var cpGroup = createNS('g');\r\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\r\n cpGroup.appendChild(this.layerElement);\r\n this.transformedElement = cpGroup;\r\n\r\n if (layerElementParent) {\r\n layerElementParent.appendChild(this.transformedElement);\r\n } else {\r\n this.baseElement = this.transformedElement;\r\n }\r\n } else {\r\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\r\n }\r\n }\r\n\r\n if (this.data.bm !== 0) {\r\n this.setBlendMode();\r\n }\r\n },\r\n renderElement: function renderElement() {\r\n if (this.finalTransform._matMdf) {\r\n this.transformedElement.setAttribute('transform', this.finalTransform.mat.to2dCSS());\r\n }\r\n\r\n if (this.finalTransform._opMdf) {\r\n this.transformedElement.setAttribute('opacity', this.finalTransform.mProp.o.v);\r\n }\r\n },\r\n destroyBaseElement: function destroyBaseElement() {\r\n this.layerElement = null;\r\n this.matteElement = null;\r\n this.maskManager.destroy();\r\n },\r\n getBaseElement: function getBaseElement() {\r\n if (this.data.hd) {\r\n return null;\r\n }\r\n\r\n return this.baseElement;\r\n },\r\n createRenderableComponents: function createRenderableComponents() {\r\n this.maskManager = new MaskElement(this.data, this, this.globalData);\r\n this.renderableEffectsManager = new SVGEffects(this);\r\n },\r\n getMatte: function getMatte(matteType) {\r\n // This should not be a common case. But for backward compatibility, we'll create the matte object.\r\n // It solves animations that have two consecutive layers marked as matte masks.\r\n // Which is an undefined behavior in AE.\r\n if (!this.matteMasks) {\r\n this.matteMasks = {};\r\n }\r\n\r\n if (!this.matteMasks[matteType]) {\r\n var id = this.layerId + '_' + matteType;\r\n var filId;\r\n var fil;\r\n var useElement;\r\n var gg;\r\n\r\n if (matteType === 1 || matteType === 3) {\r\n var masker = createNS('mask');\r\n masker.setAttribute('id', id);\r\n masker.setAttribute('mask-type', matteType === 3 ? 'luminance' : 'alpha');\r\n useElement = createNS('use');\r\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\r\n masker.appendChild(useElement);\r\n this.globalData.defs.appendChild(masker);\r\n\r\n if (!featureSupport.maskType && matteType === 1) {\r\n masker.setAttribute('mask-type', 'luminance');\r\n filId = createElementID();\r\n fil = filtersFactory.createFilter(filId);\r\n this.globalData.defs.appendChild(fil);\r\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\r\n gg = createNS('g');\r\n gg.appendChild(useElement);\r\n masker.appendChild(gg);\r\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\r\n }\r\n } else if (matteType === 2) {\r\n var maskGroup = createNS('mask');\r\n maskGroup.setAttribute('id', id);\r\n maskGroup.setAttribute('mask-type', 'alpha');\r\n var maskGrouper = createNS('g');\r\n maskGroup.appendChild(maskGrouper);\r\n filId = createElementID();\r\n fil = filtersFactory.createFilter(filId); /// /\r\n\r\n var feCTr = createNS('feComponentTransfer');\r\n feCTr.setAttribute('in', 'SourceGraphic');\r\n fil.appendChild(feCTr);\r\n var feFunc = createNS('feFuncA');\r\n feFunc.setAttribute('type', 'table');\r\n feFunc.setAttribute('tableValues', '1.0 0.0');\r\n feCTr.appendChild(feFunc); /// /\r\n\r\n this.globalData.defs.appendChild(fil);\r\n var alphaRect = createNS('rect');\r\n alphaRect.setAttribute('width', this.comp.data.w);\r\n alphaRect.setAttribute('height', this.comp.data.h);\r\n alphaRect.setAttribute('x', '0');\r\n alphaRect.setAttribute('y', '0');\r\n alphaRect.setAttribute('fill', '#ffffff');\r\n alphaRect.setAttribute('opacity', '0');\r\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\r\n maskGrouper.appendChild(alphaRect);\r\n useElement = createNS('use');\r\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\r\n maskGrouper.appendChild(useElement);\r\n\r\n if (!featureSupport.maskType) {\r\n maskGroup.setAttribute('mask-type', 'luminance');\r\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\r\n gg = createNS('g');\r\n maskGrouper.appendChild(alphaRect);\r\n gg.appendChild(this.layerElement);\r\n maskGrouper.appendChild(gg);\r\n }\r\n\r\n this.globalData.defs.appendChild(maskGroup);\r\n }\r\n\r\n this.matteMasks[matteType] = id;\r\n }\r\n\r\n return this.matteMasks[matteType];\r\n },\r\n setMatte: function setMatte(id) {\r\n if (!this.matteElement) {\r\n return;\r\n }\r\n\r\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\r\n }\r\n };\r\n\r\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\r\n function HierarchyElement() {}\r\n\r\n HierarchyElement.prototype = {\r\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\r\n initHierarchy: function initHierarchy() {\r\n // element's parent list\r\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\r\n\r\n this._isParent = false;\r\n this.checkParenting();\r\n },\r\n\r\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 */\r\n setHierarchy: function setHierarchy(hierarchy) {\r\n this.hierarchy = hierarchy;\r\n },\r\n\r\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\r\n setAsParent: function setAsParent() {\r\n this._isParent = true;\r\n },\r\n\r\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\r\n checkParenting: function checkParenting() {\r\n if (this.data.parent !== undefined) {\r\n this.comp.buildElementParenting(this, this.data.parent, []);\r\n }\r\n }\r\n };\r\n\r\n function RenderableDOMElement() {}\r\n\r\n (function () {\r\n var _prototype = {\r\n initElement: function initElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n this.initRenderable();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n this.createContent();\r\n this.hide();\r\n },\r\n hide: function hide() {\r\n // console.log('HIDE', this);\r\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\r\n var elem = this.baseElement || this.layerElement;\r\n elem.style.display = 'none';\r\n this.hidden = true;\r\n }\r\n },\r\n show: function show() {\r\n // console.log('SHOW', this);\r\n if (this.isInRange && !this.isTransparent) {\r\n if (!this.data.hd) {\r\n var elem = this.baseElement || this.layerElement;\r\n elem.style.display = 'block';\r\n }\r\n\r\n this.hidden = false;\r\n this._isFirstFrame = true;\r\n }\r\n },\r\n renderFrame: function renderFrame() {\r\n // If it is exported as hidden (data.hd === true) no need to render\r\n // If it is not visible no need to render\r\n if (this.data.hd || this.hidden) {\r\n return;\r\n }\r\n\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.renderElement();\r\n this.renderInnerContent();\r\n\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n renderInnerContent: function renderInnerContent() {},\r\n prepareFrame: function prepareFrame(num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n this.checkTransparency();\r\n },\r\n destroy: function destroy() {\r\n this.innerElem = null;\r\n this.destroyBaseElement();\r\n }\r\n };\r\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\r\n })();\r\n\r\n function IImageElement(data, globalData, comp) {\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initElement(data, globalData, comp);\r\n this.sourceRect = {\r\n top: 0,\r\n left: 0,\r\n width: this.assetData.w,\r\n height: this.assetData.h\r\n };\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\r\n\r\n IImageElement.prototype.createContent = function () {\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n this.innerElem = createNS('image');\r\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\r\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\r\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\r\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\r\n this.layerElement.appendChild(this.innerElem);\r\n };\r\n\r\n IImageElement.prototype.sourceRectAtTime = function () {\r\n return this.sourceRect;\r\n };\r\n\r\n function ProcessedElement(element, position) {\r\n this.elem = element;\r\n this.pos = position;\r\n }\r\n\r\n function IShapeElement() {}\r\n\r\n IShapeElement.prototype = {\r\n addShapeToModifiers: function addShapeToModifiers(data) {\r\n var i;\r\n var len = this.shapeModifiers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.shapeModifiers[i].addShape(data);\r\n }\r\n },\r\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\r\n var i = 0;\r\n var len = this.shapeModifiers.length;\r\n\r\n while (i < len) {\r\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n },\r\n renderModifiers: function renderModifiers() {\r\n if (!this.shapeModifiers.length) {\r\n return;\r\n }\r\n\r\n var i;\r\n var len = this.shapes.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.shapes[i].sh.reset();\r\n }\r\n\r\n len = this.shapeModifiers.length;\r\n var shouldBreakProcess;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\r\n // TODO: find a better solution for this\r\n\r\n if (shouldBreakProcess) {\r\n break;\r\n }\r\n }\r\n },\r\n searchProcessedElement: function searchProcessedElement(elem) {\r\n var elements = this.processedElements;\r\n var i = 0;\r\n var len = elements.length;\r\n\r\n while (i < len) {\r\n if (elements[i].elem === elem) {\r\n return elements[i].pos;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return 0;\r\n },\r\n addProcessedElement: function addProcessedElement(elem, pos) {\r\n var elements = this.processedElements;\r\n var i = elements.length;\r\n\r\n while (i) {\r\n i -= 1;\r\n\r\n if (elements[i].elem === elem) {\r\n elements[i].pos = pos;\r\n return;\r\n }\r\n }\r\n\r\n elements.push(new ProcessedElement(elem, pos));\r\n },\r\n prepareFrame: function prepareFrame(num) {\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n }\r\n };\r\n\r\n var lineCapEnum = {\r\n 1: 'butt',\r\n 2: 'round',\r\n 3: 'square'\r\n };\r\n var lineJoinEnum = {\r\n 1: 'miter',\r\n 2: 'round',\r\n 3: 'bevel'\r\n };\r\n\r\n function SVGShapeData(transformers, level, shape) {\r\n this.caches = [];\r\n this.styles = [];\r\n this.transformers = transformers;\r\n this.lStr = '';\r\n this.sh = shape;\r\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\r\n // For now, since shapes add up with other shapes. They have to be calculated every time.\r\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\r\n\r\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\r\n\r\n var i = 0;\r\n var len = transformers.length;\r\n\r\n while (i < len) {\r\n if (transformers[i].mProps.dynamicProperties.length) {\r\n this._isAnimated = true;\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n }\r\n\r\n SVGShapeData.prototype.setAsAnimated = function () {\r\n this._isAnimated = true;\r\n };\r\n\r\n function SVGStyleData(data, level) {\r\n this.data = data;\r\n this.type = data.ty;\r\n this.d = '';\r\n this.lvl = level;\r\n this._mdf = false;\r\n this.closed = data.hd === true;\r\n this.pElem = createNS('path');\r\n this.msElem = null;\r\n }\r\n\r\n SVGStyleData.prototype.reset = function () {\r\n this.d = '';\r\n this._mdf = false;\r\n };\r\n\r\n function DashProperty(elem, data, renderer, container) {\r\n this.elem = elem;\r\n this.frameId = -1;\r\n this.dataProps = createSizedArray(data.length);\r\n this.renderer = renderer;\r\n this.k = false;\r\n this.dashStr = '';\r\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\r\n this.dashoffset = createTypedArray('float32', 1);\r\n this.initDynamicPropertyContainer(container);\r\n var i;\r\n var len = data.length || 0;\r\n var prop;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\r\n this.k = prop.k || this.k;\r\n this.dataProps[i] = {\r\n n: data[i].n,\r\n p: prop\r\n };\r\n }\r\n\r\n if (!this.k) {\r\n this.getValue(true);\r\n }\r\n\r\n this._isAnimated = this.k;\r\n }\r\n\r\n DashProperty.prototype.getValue = function (forceRender) {\r\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\r\n return;\r\n }\r\n\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n this._mdf = this._mdf || forceRender;\r\n\r\n if (this._mdf) {\r\n var i = 0;\r\n var len = this.dataProps.length;\r\n\r\n if (this.renderer === 'svg') {\r\n this.dashStr = '';\r\n }\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.dataProps[i].n !== 'o') {\r\n if (this.renderer === 'svg') {\r\n this.dashStr += ' ' + this.dataProps[i].p.v;\r\n } else {\r\n this.dashArray[i] = this.dataProps[i].p.v;\r\n }\r\n } else {\r\n this.dashoffset[0] = this.dataProps[i].p.v;\r\n }\r\n }\r\n }\r\n };\r\n\r\n extendPrototype([DynamicPropertyContainer], DashProperty);\r\n\r\n function SVGStrokeStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\r\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\r\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\r\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\r\n this.style = styleOb;\r\n this._isAnimated = !!this._isAnimated;\r\n }\r\n\r\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\r\n\r\n function SVGFillStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\r\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\r\n this.style = styleOb;\r\n }\r\n\r\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\r\n\r\n function SVGNoStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.style = styleOb;\r\n }\r\n\r\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\r\n\r\n function GradientProperty(elem, data, container) {\r\n this.data = data;\r\n this.c = createTypedArray('uint8c', data.p * 4);\r\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\r\n this.o = createTypedArray('float32', cLength);\r\n this._cmdf = false;\r\n this._omdf = false;\r\n this._collapsable = this.checkCollapsable();\r\n this._hasOpacity = cLength;\r\n this.initDynamicPropertyContainer(container);\r\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\r\n this.k = this.prop.k;\r\n this.getValue(true);\r\n }\r\n\r\n GradientProperty.prototype.comparePoints = function (values, points) {\r\n var i = 0;\r\n var len = this.o.length / 2;\r\n var diff;\r\n\r\n while (i < len) {\r\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\r\n\r\n if (diff > 0.01) {\r\n return false;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n GradientProperty.prototype.checkCollapsable = function () {\r\n if (this.o.length / 2 !== this.c.length / 4) {\r\n return false;\r\n }\r\n\r\n if (this.data.k.k[0].s) {\r\n var i = 0;\r\n var len = this.data.k.k.length;\r\n\r\n while (i < len) {\r\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\r\n return false;\r\n }\r\n\r\n i += 1;\r\n }\r\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n GradientProperty.prototype.getValue = function (forceRender) {\r\n this.prop.getValue();\r\n this._mdf = false;\r\n this._cmdf = false;\r\n this._omdf = false;\r\n\r\n if (this.prop._mdf || forceRender) {\r\n var i;\r\n var len = this.data.p * 4;\r\n var mult;\r\n var val;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n mult = i % 4 === 0 ? 100 : 255;\r\n val = Math.round(this.prop.v[i] * mult);\r\n\r\n if (this.c[i] !== val) {\r\n this.c[i] = val;\r\n this._cmdf = !forceRender;\r\n }\r\n }\r\n\r\n if (this.o.length) {\r\n len = this.prop.v.length;\r\n\r\n for (i = this.data.p * 4; i < len; i += 1) {\r\n mult = i % 2 === 0 ? 100 : 1;\r\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\r\n\r\n if (this.o[i - this.data.p * 4] !== val) {\r\n this.o[i - this.data.p * 4] = val;\r\n this._omdf = !forceRender;\r\n }\r\n }\r\n }\r\n\r\n this._mdf = !forceRender;\r\n }\r\n };\r\n\r\n extendPrototype([DynamicPropertyContainer], GradientProperty);\r\n\r\n function SVGGradientFillStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.initGradientData(elem, data, styleOb);\r\n }\r\n\r\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\r\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\r\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\r\n this.h = PropertyFactory.getProp(elem, data.h || {\r\n k: 0\r\n }, 0, 0.01, this);\r\n this.a = PropertyFactory.getProp(elem, data.a || {\r\n k: 0\r\n }, 0, degToRads, this);\r\n this.g = new GradientProperty(elem, data.g, this);\r\n this.style = styleOb;\r\n this.stops = [];\r\n this.setGradientData(styleOb.pElem, data);\r\n this.setGradientOpacity(data, styleOb);\r\n this._isAnimated = !!this._isAnimated;\r\n };\r\n\r\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\r\n var gradientId = createElementID();\r\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\r\n gfill.setAttribute('id', gradientId);\r\n gfill.setAttribute('spreadMethod', 'pad');\r\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\r\n var stops = [];\r\n var stop;\r\n var j;\r\n var jLen;\r\n jLen = data.g.p * 4;\r\n\r\n for (j = 0; j < jLen; j += 4) {\r\n stop = createNS('stop');\r\n gfill.appendChild(stop);\r\n stops.push(stop);\r\n }\r\n\r\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\r\n this.gf = gfill;\r\n this.cst = stops;\r\n };\r\n\r\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\r\n if (this.g._hasOpacity && !this.g._collapsable) {\r\n var stop;\r\n var j;\r\n var jLen;\r\n var mask = createNS('mask');\r\n var maskElement = createNS('path');\r\n mask.appendChild(maskElement);\r\n var opacityId = createElementID();\r\n var maskId = createElementID();\r\n mask.setAttribute('id', maskId);\r\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\r\n opFill.setAttribute('id', opacityId);\r\n opFill.setAttribute('spreadMethod', 'pad');\r\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\r\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\r\n var stops = this.stops;\r\n\r\n for (j = data.g.p * 4; j < jLen; j += 2) {\r\n stop = createNS('stop');\r\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\r\n opFill.appendChild(stop);\r\n stops.push(stop);\r\n }\r\n\r\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\r\n\r\n if (data.ty === 'gs') {\r\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\r\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\r\n\r\n if (data.lj === 1) {\r\n maskElement.setAttribute('stroke-miterlimit', data.ml);\r\n }\r\n }\r\n\r\n this.of = opFill;\r\n this.ms = mask;\r\n this.ost = stops;\r\n this.maskId = maskId;\r\n styleOb.msElem = maskElement;\r\n }\r\n };\r\n\r\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\r\n\r\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\r\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\r\n this.initGradientData(elem, data, styleOb);\r\n this._isAnimated = !!this._isAnimated;\r\n }\r\n\r\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\r\n\r\n function ShapeGroupData() {\r\n this.it = [];\r\n this.prevViewData = [];\r\n this.gr = createNS('g');\r\n }\r\n\r\n function SVGTransformData(mProps, op, container) {\r\n this.transform = {\r\n mProps: mProps,\r\n op: op,\r\n container: container\r\n };\r\n this.elements = [];\r\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\r\n }\r\n\r\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\r\n if (length === 0) {\r\n return '';\r\n }\r\n\r\n var _o = pathNodes.o;\r\n var _i = pathNodes.i;\r\n var _v = pathNodes.v;\r\n var i;\r\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\r\n\r\n for (i = 1; i < length; i += 1) {\r\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]);\r\n }\r\n\r\n if (closed && length) {\r\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]);\r\n shapeString += 'z';\r\n }\r\n\r\n return shapeString;\r\n };\r\n\r\n var SVGElementsRenderer = function () {\r\n var _identityMatrix = new Matrix();\r\n\r\n var _matrixHelper = new Matrix();\r\n\r\n var ob = {\r\n createRenderFunction: createRenderFunction\r\n };\r\n\r\n function createRenderFunction(data) {\r\n switch (data.ty) {\r\n case 'fl':\r\n return renderFill;\r\n\r\n case 'gf':\r\n return renderGradient;\r\n\r\n case 'gs':\r\n return renderGradientStroke;\r\n\r\n case 'st':\r\n return renderStroke;\r\n\r\n case 'sh':\r\n case 'el':\r\n case 'rc':\r\n case 'sr':\r\n return renderPath;\r\n\r\n case 'tr':\r\n return renderContentTransform;\r\n\r\n case 'no':\r\n return renderNoop;\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n function renderContentTransform(styleData, itemData, isFirstFrame) {\r\n if (isFirstFrame || itemData.transform.op._mdf) {\r\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\r\n }\r\n\r\n if (isFirstFrame || itemData.transform.mProps._mdf) {\r\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\r\n }\r\n }\r\n\r\n function renderNoop() {}\r\n\r\n function renderPath(styleData, itemData, isFirstFrame) {\r\n var j;\r\n var jLen;\r\n var pathStringTransformed;\r\n var redraw;\r\n var pathNodes;\r\n var l;\r\n var lLen = itemData.styles.length;\r\n var lvl = itemData.lvl;\r\n var paths;\r\n var mat;\r\n var props;\r\n var iterations;\r\n var k;\r\n\r\n for (l = 0; l < lLen; l += 1) {\r\n redraw = itemData.sh._mdf || isFirstFrame;\r\n\r\n if (itemData.styles[l].lvl < lvl) {\r\n mat = _matrixHelper.reset();\r\n iterations = lvl - itemData.styles[l].lvl;\r\n k = itemData.transformers.length - 1;\r\n\r\n while (!redraw && iterations > 0) {\r\n redraw = itemData.transformers[k].mProps._mdf || redraw;\r\n iterations -= 1;\r\n k -= 1;\r\n }\r\n\r\n if (redraw) {\r\n iterations = lvl - itemData.styles[l].lvl;\r\n k = itemData.transformers.length - 1;\r\n\r\n while (iterations > 0) {\r\n props = itemData.transformers[k].mProps.v.props;\r\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]);\r\n iterations -= 1;\r\n k -= 1;\r\n }\r\n }\r\n } else {\r\n mat = _identityMatrix;\r\n }\r\n\r\n paths = itemData.sh.paths;\r\n jLen = paths._length;\r\n\r\n if (redraw) {\r\n pathStringTransformed = '';\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n pathNodes = paths.shapes[j];\r\n\r\n if (pathNodes && pathNodes._length) {\r\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\r\n }\r\n }\r\n\r\n itemData.caches[l] = pathStringTransformed;\r\n } else {\r\n pathStringTransformed = itemData.caches[l];\r\n }\r\n\r\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\r\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\r\n }\r\n }\r\n\r\n function renderFill(styleData, itemData, isFirstFrame) {\r\n var styleElem = itemData.style;\r\n\r\n if (itemData.c._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\r\n }\r\n\r\n if (itemData.o._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\r\n }\r\n }\r\n\r\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\r\n renderGradient(styleData, itemData, isFirstFrame);\r\n renderStroke(styleData, itemData, isFirstFrame);\r\n }\r\n\r\n function renderGradient(styleData, itemData, isFirstFrame) {\r\n var gfill = itemData.gf;\r\n var hasOpacity = itemData.g._hasOpacity;\r\n var pt1 = itemData.s.v;\r\n var pt2 = itemData.e.v;\r\n\r\n if (itemData.o._mdf || isFirstFrame) {\r\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\r\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\r\n }\r\n\r\n if (itemData.s._mdf || isFirstFrame) {\r\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\r\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\r\n gfill.setAttribute(attr1, pt1[0]);\r\n gfill.setAttribute(attr2, pt1[1]);\r\n\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute(attr1, pt1[0]);\r\n itemData.of.setAttribute(attr2, pt1[1]);\r\n }\r\n }\r\n\r\n var stops;\r\n var i;\r\n var len;\r\n var stop;\r\n\r\n if (itemData.g._cmdf || isFirstFrame) {\r\n stops = itemData.cst;\r\n var cValues = itemData.g.c;\r\n len = stops.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n stop = stops[i];\r\n stop.setAttribute('offset', cValues[i * 4] + '%');\r\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\r\n }\r\n }\r\n\r\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\r\n var oValues = itemData.g.o;\r\n\r\n if (itemData.g._collapsable) {\r\n stops = itemData.cst;\r\n } else {\r\n stops = itemData.ost;\r\n }\r\n\r\n len = stops.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n stop = stops[i];\r\n\r\n if (!itemData.g._collapsable) {\r\n stop.setAttribute('offset', oValues[i * 2] + '%');\r\n }\r\n\r\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\r\n }\r\n }\r\n\r\n if (styleData.t === 1) {\r\n if (itemData.e._mdf || isFirstFrame) {\r\n gfill.setAttribute('x2', pt2[0]);\r\n gfill.setAttribute('y2', pt2[1]);\r\n\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute('x2', pt2[0]);\r\n itemData.of.setAttribute('y2', pt2[1]);\r\n }\r\n }\r\n } else {\r\n var rad;\r\n\r\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\r\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\r\n gfill.setAttribute('r', rad);\r\n\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute('r', rad);\r\n }\r\n }\r\n\r\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\r\n if (!rad) {\r\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\r\n }\r\n\r\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\r\n var percent = itemData.h.v;\r\n\r\n if (percent >= 1) {\r\n percent = 0.99;\r\n } else if (percent <= -1) {\r\n percent = -0.99;\r\n }\r\n\r\n var dist = rad * percent;\r\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\r\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\r\n gfill.setAttribute('fx', x);\r\n gfill.setAttribute('fy', y);\r\n\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute('fx', x);\r\n itemData.of.setAttribute('fy', y);\r\n }\r\n } // gfill.setAttribute('fy','200');\r\n\r\n }\r\n }\r\n\r\n function renderStroke(styleData, itemData, isFirstFrame) {\r\n var styleElem = itemData.style;\r\n var d = itemData.d;\r\n\r\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\r\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\r\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\r\n }\r\n\r\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\r\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\r\n }\r\n\r\n if (itemData.o._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\r\n }\r\n\r\n if (itemData.w._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\r\n\r\n if (styleElem.msElem) {\r\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\r\n }\r\n }\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n function SVGShapeElement(data, globalData, comp) {\r\n // List of drawable elements\r\n this.shapes = []; // Full shape data\r\n\r\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\r\n\r\n this.stylesList = []; // List of modifiers that will be applied to shapes\r\n\r\n this.shapeModifiers = []; // List of items in shape tree\r\n\r\n this.itemsData = []; // List of items in previous shape tree\r\n\r\n this.processedElements = []; // List of animated components\r\n\r\n this.animatedContents = [];\r\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.\r\n // List of elements that have been created\r\n\r\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\r\n\r\n SVGShapeElement.prototype.initSecondaryElement = function () {};\r\n\r\n SVGShapeElement.prototype.identityMatrix = new Matrix();\r\n\r\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\r\n\r\n SVGShapeElement.prototype.createContent = function () {\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\r\n this.filterUniqueShapes();\r\n };\r\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\r\n\r\n\r\n SVGShapeElement.prototype.filterUniqueShapes = function () {\r\n var i;\r\n var len = this.shapes.length;\r\n var shape;\r\n var j;\r\n var jLen = this.stylesList.length;\r\n var style;\r\n var tempShapes = [];\r\n var areAnimated = false;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n style = this.stylesList[j];\r\n areAnimated = false;\r\n tempShapes.length = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shape = this.shapes[i];\r\n\r\n if (shape.styles.indexOf(style) !== -1) {\r\n tempShapes.push(shape);\r\n areAnimated = shape._isAnimated || areAnimated;\r\n }\r\n }\r\n\r\n if (tempShapes.length > 1 && areAnimated) {\r\n this.setShapesAsAnimated(tempShapes);\r\n }\r\n }\r\n };\r\n\r\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\r\n var i;\r\n var len = shapes.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapes[i].setAsAnimated();\r\n }\r\n };\r\n\r\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\r\n // TODO: prevent drawing of hidden styles\r\n var elementData;\r\n var styleOb = new SVGStyleData(data, level);\r\n var pathElement = styleOb.pElem;\r\n\r\n if (data.ty === 'st') {\r\n elementData = new SVGStrokeStyleData(this, data, styleOb);\r\n } else if (data.ty === 'fl') {\r\n elementData = new SVGFillStyleData(this, data, styleOb);\r\n } else if (data.ty === 'gf' || data.ty === 'gs') {\r\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\r\n elementData = new GradientConstructor(this, data, styleOb);\r\n this.globalData.defs.appendChild(elementData.gf);\r\n\r\n if (elementData.maskId) {\r\n this.globalData.defs.appendChild(elementData.ms);\r\n this.globalData.defs.appendChild(elementData.of);\r\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\r\n }\r\n } else if (data.ty === 'no') {\r\n elementData = new SVGNoStyleData(this, data, styleOb);\r\n }\r\n\r\n if (data.ty === 'st' || data.ty === 'gs') {\r\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\r\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\r\n pathElement.setAttribute('fill-opacity', '0');\r\n\r\n if (data.lj === 1) {\r\n pathElement.setAttribute('stroke-miterlimit', data.ml);\r\n }\r\n }\r\n\r\n if (data.r === 2) {\r\n pathElement.setAttribute('fill-rule', 'evenodd');\r\n }\r\n\r\n if (data.ln) {\r\n pathElement.setAttribute('id', data.ln);\r\n }\r\n\r\n if (data.cl) {\r\n pathElement.setAttribute('class', data.cl);\r\n }\r\n\r\n if (data.bm) {\r\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\r\n }\r\n\r\n this.stylesList.push(styleOb);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n };\r\n\r\n SVGShapeElement.prototype.createGroupElement = function (data) {\r\n var elementData = new ShapeGroupData();\r\n\r\n if (data.ln) {\r\n elementData.gr.setAttribute('id', data.ln);\r\n }\r\n\r\n if (data.cl) {\r\n elementData.gr.setAttribute('class', data.cl);\r\n }\r\n\r\n if (data.bm) {\r\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\r\n }\r\n\r\n return elementData;\r\n };\r\n\r\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\r\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\r\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n };\r\n\r\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\r\n var ty = 4;\r\n\r\n if (data.ty === 'rc') {\r\n ty = 5;\r\n } else if (data.ty === 'el') {\r\n ty = 6;\r\n } else if (data.ty === 'sr') {\r\n ty = 7;\r\n }\r\n\r\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\r\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\r\n this.shapes.push(elementData);\r\n this.addShapeToModifiers(elementData);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n };\r\n\r\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\r\n var i = 0;\r\n var len = this.animatedContents.length;\r\n\r\n while (i < len) {\r\n if (this.animatedContents[i].element === element) {\r\n return;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n this.animatedContents.push({\r\n fn: SVGElementsRenderer.createRenderFunction(data),\r\n element: element,\r\n data: data\r\n });\r\n };\r\n\r\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\r\n var arr = elementData.styles;\r\n var j;\r\n var jLen = this.stylesList.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (!this.stylesList[j].closed) {\r\n arr.push(this.stylesList[j]);\r\n }\r\n }\r\n };\r\n\r\n SVGShapeElement.prototype.reloadShapes = function () {\r\n this._isFirstFrame = true;\r\n var i;\r\n var len = this.itemsData.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.prevViewData[i] = this.itemsData[i];\r\n }\r\n\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\r\n this.filterUniqueShapes();\r\n len = this.dynamicProperties.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n }\r\n\r\n this.renderModifiers();\r\n };\r\n\r\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\r\n var ownTransformers = [].concat(transformers);\r\n var i;\r\n var len = arr.length - 1;\r\n var j;\r\n var jLen;\r\n var ownStyles = [];\r\n var ownModifiers = [];\r\n var currentTransform;\r\n var modifier;\r\n var processedPos;\r\n\r\n for (i = len; i >= 0; i -= 1) {\r\n processedPos = this.searchProcessedElement(arr[i]);\r\n\r\n if (!processedPos) {\r\n arr[i]._render = render;\r\n } else {\r\n itemsData[i] = prevViewData[processedPos - 1];\r\n }\r\n\r\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createStyleElement(arr[i], level);\r\n } else {\r\n itemsData[i].style.closed = false;\r\n }\r\n\r\n if (arr[i]._render) {\r\n if (itemsData[i].style.pElem.parentNode !== container) {\r\n container.appendChild(itemsData[i].style.pElem);\r\n }\r\n }\r\n\r\n ownStyles.push(itemsData[i].style);\r\n } else if (arr[i].ty === 'gr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createGroupElement(arr[i]);\r\n } else {\r\n jLen = itemsData[i].it.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\r\n }\r\n }\r\n\r\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\r\n\r\n if (arr[i]._render) {\r\n if (itemsData[i].gr.parentNode !== container) {\r\n container.appendChild(itemsData[i].gr);\r\n }\r\n }\r\n } else if (arr[i].ty === 'tr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createTransformElement(arr[i], container);\r\n }\r\n\r\n currentTransform = itemsData[i].transform;\r\n ownTransformers.push(currentTransform);\r\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\r\n }\r\n\r\n this.setElementStyles(itemsData[i]);\r\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n modifier.init(this, arr[i]);\r\n itemsData[i] = modifier;\r\n this.shapeModifiers.push(modifier);\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = false;\r\n }\r\n\r\n ownModifiers.push(modifier);\r\n } else if (arr[i].ty === 'rp') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n itemsData[i] = modifier;\r\n modifier.init(this, arr, i, itemsData);\r\n this.shapeModifiers.push(modifier);\r\n render = false;\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = true;\r\n }\r\n\r\n ownModifiers.push(modifier);\r\n }\r\n\r\n this.addProcessedElement(arr[i], i + 1);\r\n }\r\n\r\n len = ownStyles.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ownStyles[i].closed = true;\r\n }\r\n\r\n len = ownModifiers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ownModifiers[i].closed = true;\r\n }\r\n };\r\n\r\n SVGShapeElement.prototype.renderInnerContent = function () {\r\n this.renderModifiers();\r\n var i;\r\n var len = this.stylesList.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.stylesList[i].reset();\r\n }\r\n\r\n this.renderShape();\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\r\n if (this.stylesList[i].msElem) {\r\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\r\n\r\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\r\n }\r\n\r\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\r\n }\r\n }\r\n };\r\n\r\n SVGShapeElement.prototype.renderShape = function () {\r\n var i;\r\n var len = this.animatedContents.length;\r\n var animatedContent;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n animatedContent = this.animatedContents[i];\r\n\r\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\r\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\r\n }\r\n }\r\n };\r\n\r\n SVGShapeElement.prototype.destroy = function () {\r\n this.destroyBaseElement();\r\n this.shapesData = null;\r\n this.itemsData = null;\r\n };\r\n\r\n function LetterProps(o, sw, sc, fc, m, p) {\r\n this.o = o;\r\n this.sw = sw;\r\n this.sc = sc;\r\n this.fc = fc;\r\n this.m = m;\r\n this.p = p;\r\n this._mdf = {\r\n o: true,\r\n sw: !!sw,\r\n sc: !!sc,\r\n fc: !!fc,\r\n m: true,\r\n p: true\r\n };\r\n }\r\n\r\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\r\n this._mdf.o = false;\r\n this._mdf.sw = false;\r\n this._mdf.sc = false;\r\n this._mdf.fc = false;\r\n this._mdf.m = false;\r\n this._mdf.p = false;\r\n var updated = false;\r\n\r\n if (this.o !== o) {\r\n this.o = o;\r\n this._mdf.o = true;\r\n updated = true;\r\n }\r\n\r\n if (this.sw !== sw) {\r\n this.sw = sw;\r\n this._mdf.sw = true;\r\n updated = true;\r\n }\r\n\r\n if (this.sc !== sc) {\r\n this.sc = sc;\r\n this._mdf.sc = true;\r\n updated = true;\r\n }\r\n\r\n if (this.fc !== fc) {\r\n this.fc = fc;\r\n this._mdf.fc = true;\r\n updated = true;\r\n }\r\n\r\n if (this.m !== m) {\r\n this.m = m;\r\n this._mdf.m = true;\r\n updated = true;\r\n }\r\n\r\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\r\n this.p = p;\r\n this._mdf.p = true;\r\n updated = true;\r\n }\r\n\r\n return updated;\r\n };\r\n\r\n function TextProperty(elem, data) {\r\n this._frameId = initialDefaultFrame;\r\n this.pv = '';\r\n this.v = '';\r\n this.kf = false;\r\n this._isFirstFrame = true;\r\n this._mdf = false;\r\n this.data = data;\r\n this.elem = elem;\r\n this.comp = this.elem.comp;\r\n this.keysIndex = 0;\r\n this.canResize = false;\r\n this.minimumFontSize = 1;\r\n this.effectsSequence = [];\r\n this.currentData = {\r\n ascent: 0,\r\n boxWidth: this.defaultBoxWidth,\r\n f: '',\r\n fStyle: '',\r\n fWeight: '',\r\n fc: '',\r\n j: '',\r\n justifyOffset: '',\r\n l: [],\r\n lh: 0,\r\n lineWidths: [],\r\n ls: '',\r\n of: '',\r\n s: '',\r\n sc: '',\r\n sw: 0,\r\n t: 0,\r\n tr: 0,\r\n sz: 0,\r\n ps: null,\r\n fillColorAnim: false,\r\n strokeColorAnim: false,\r\n strokeWidthAnim: false,\r\n yOffset: 0,\r\n finalSize: 0,\r\n finalText: [],\r\n finalLineHeight: 0,\r\n __complete: false\r\n };\r\n this.copyData(this.currentData, this.data.d.k[0].s);\r\n\r\n if (!this.searchProperty()) {\r\n this.completeTextData(this.currentData);\r\n }\r\n }\r\n\r\n TextProperty.prototype.defaultBoxWidth = [0, 0];\r\n\r\n TextProperty.prototype.copyData = function (obj, data) {\r\n for (var s in data) {\r\n if (Object.prototype.hasOwnProperty.call(data, s)) {\r\n obj[s] = data[s];\r\n }\r\n }\r\n\r\n return obj;\r\n };\r\n\r\n TextProperty.prototype.setCurrentData = function (data) {\r\n if (!data.__complete) {\r\n this.completeTextData(data);\r\n }\r\n\r\n this.currentData = data;\r\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\r\n this._mdf = true;\r\n };\r\n\r\n TextProperty.prototype.searchProperty = function () {\r\n return this.searchKeyframes();\r\n };\r\n\r\n TextProperty.prototype.searchKeyframes = function () {\r\n this.kf = this.data.d.k.length > 1;\r\n\r\n if (this.kf) {\r\n this.addEffect(this.getKeyframeValue.bind(this));\r\n }\r\n\r\n return this.kf;\r\n };\r\n\r\n TextProperty.prototype.addEffect = function (effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.elem.addDynamicProperty(this);\r\n };\r\n\r\n TextProperty.prototype.getValue = function (_finalValue) {\r\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\r\n return;\r\n }\r\n\r\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\r\n var currentValue = this.currentData;\r\n var currentIndex = this.keysIndex;\r\n\r\n if (this.lock) {\r\n this.setCurrentData(this.currentData);\r\n return;\r\n }\r\n\r\n this.lock = true;\r\n this._mdf = false;\r\n var i;\r\n var len = this.effectsSequence.length;\r\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n // Checking if index changed to prevent creating a new object every time the expression updates.\r\n if (currentIndex !== this.keysIndex) {\r\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\r\n } else {\r\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\r\n }\r\n }\r\n\r\n if (currentValue !== finalValue) {\r\n this.setCurrentData(finalValue);\r\n }\r\n\r\n this.v = this.currentData;\r\n this.pv = this.v;\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n };\r\n\r\n TextProperty.prototype.getKeyframeValue = function () {\r\n var textKeys = this.data.d.k;\r\n var frameNum = this.elem.comp.renderedFrame;\r\n var i = 0;\r\n var len = textKeys.length;\r\n\r\n while (i <= len - 1) {\r\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (this.keysIndex !== i) {\r\n this.keysIndex = i;\r\n }\r\n\r\n return this.data.d.k[this.keysIndex].s;\r\n };\r\n\r\n TextProperty.prototype.buildFinalText = function (text) {\r\n var charactersArray = [];\r\n var i = 0;\r\n var len = text.length;\r\n var charCode;\r\n var secondCharCode;\r\n var shouldCombine = false;\r\n\r\n while (i < len) {\r\n charCode = text.charCodeAt(i);\r\n\r\n if (FontManager.isCombinedCharacter(charCode)) {\r\n charactersArray[charactersArray.length - 1] += text.charAt(i);\r\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\r\n secondCharCode = text.charCodeAt(i + 1);\r\n\r\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\r\n if (shouldCombine || FontManager.isModifier(charCode, secondCharCode)) {\r\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\r\n shouldCombine = false;\r\n } else {\r\n charactersArray.push(text.substr(i, 2));\r\n }\r\n\r\n i += 1;\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\r\n } else if (charCode > 0xDBFF) {\r\n secondCharCode = text.charCodeAt(i + 1);\r\n\r\n if (FontManager.isZeroWidthJoiner(charCode, secondCharCode)) {\r\n shouldCombine = true;\r\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\r\n i += 1;\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\r\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\r\n charactersArray[charactersArray.length - 1] += text.charAt(i);\r\n shouldCombine = true;\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return charactersArray;\r\n };\r\n\r\n TextProperty.prototype.completeTextData = function (documentData) {\r\n documentData.__complete = true;\r\n var fontManager = this.elem.globalData.fontManager;\r\n var data = this.data;\r\n var letters = [];\r\n var i;\r\n var len;\r\n var newLineFlag;\r\n var index = 0;\r\n var val;\r\n var anchorGrouping = data.m.g;\r\n var currentSize = 0;\r\n var currentPos = 0;\r\n var currentLine = 0;\r\n var lineWidths = [];\r\n var lineWidth = 0;\r\n var maxLineWidth = 0;\r\n var j;\r\n var jLen;\r\n var fontData = fontManager.getFontByName(documentData.f);\r\n var charData;\r\n var cLength = 0;\r\n var fontProps = getFontProperties(fontData);\r\n documentData.fWeight = fontProps.weight;\r\n documentData.fStyle = fontProps.style;\r\n documentData.finalSize = documentData.s;\r\n documentData.finalText = this.buildFinalText(documentData.t);\r\n len = documentData.finalText.length;\r\n documentData.finalLineHeight = documentData.lh;\r\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\r\n var charCode;\r\n\r\n if (documentData.sz) {\r\n var flag = true;\r\n var boxWidth = documentData.sz[0];\r\n var boxHeight = documentData.sz[1];\r\n var currentHeight;\r\n var finalText;\r\n\r\n while (flag) {\r\n finalText = this.buildFinalText(documentData.t);\r\n currentHeight = 0;\r\n lineWidth = 0;\r\n len = finalText.length;\r\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\r\n var lastSpaceIndex = -1;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n charCode = finalText[i].charCodeAt(0);\r\n newLineFlag = false;\r\n\r\n if (finalText[i] === ' ') {\r\n lastSpaceIndex = i;\r\n } else if (charCode === 13 || charCode === 3) {\r\n lineWidth = 0;\r\n newLineFlag = true;\r\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\r\n }\r\n\r\n if (fontManager.chars) {\r\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\r\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\r\n } else {\r\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\r\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\r\n }\r\n\r\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\r\n if (lastSpaceIndex === -1) {\r\n len += 1;\r\n } else {\r\n i = lastSpaceIndex;\r\n }\r\n\r\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\r\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\r\n\r\n lastSpaceIndex = -1;\r\n lineWidth = 0;\r\n } else {\r\n lineWidth += cLength;\r\n lineWidth += trackingOffset;\r\n }\r\n }\r\n\r\n currentHeight += fontData.ascent * documentData.finalSize / 100;\r\n\r\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\r\n documentData.finalSize -= 1;\r\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\r\n } else {\r\n documentData.finalText = finalText;\r\n len = documentData.finalText.length;\r\n flag = false;\r\n }\r\n }\r\n }\r\n\r\n lineWidth = -trackingOffset;\r\n cLength = 0;\r\n var uncollapsedSpaces = 0;\r\n var currentChar;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n newLineFlag = false;\r\n currentChar = documentData.finalText[i];\r\n charCode = currentChar.charCodeAt(0);\r\n\r\n if (charCode === 13 || charCode === 3) {\r\n uncollapsedSpaces = 0;\r\n lineWidths.push(lineWidth);\r\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\r\n lineWidth = -2 * trackingOffset;\r\n val = '';\r\n newLineFlag = true;\r\n currentLine += 1;\r\n } else {\r\n val = currentChar;\r\n }\r\n\r\n if (fontManager.chars) {\r\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\r\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\r\n } else {\r\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\r\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\r\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\r\n } //\r\n\r\n\r\n if (currentChar === ' ') {\r\n uncollapsedSpaces += cLength + trackingOffset;\r\n } else {\r\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\r\n uncollapsedSpaces = 0;\r\n }\r\n\r\n letters.push({\r\n l: cLength,\r\n an: cLength,\r\n add: currentSize,\r\n n: newLineFlag,\r\n anIndexes: [],\r\n val: val,\r\n line: currentLine,\r\n animatorJustifyOffset: 0\r\n });\r\n\r\n if (anchorGrouping == 2) {\r\n // eslint-disable-line eqeqeq\r\n currentSize += cLength;\r\n\r\n if (val === '' || val === ' ' || i === len - 1) {\r\n if (val === '' || val === ' ') {\r\n currentSize -= cLength;\r\n }\r\n\r\n while (currentPos <= i) {\r\n letters[currentPos].an = currentSize;\r\n letters[currentPos].ind = index;\r\n letters[currentPos].extra = cLength;\r\n currentPos += 1;\r\n }\r\n\r\n index += 1;\r\n currentSize = 0;\r\n }\r\n } else if (anchorGrouping == 3) {\r\n // eslint-disable-line eqeqeq\r\n currentSize += cLength;\r\n\r\n if (val === '' || i === len - 1) {\r\n if (val === '') {\r\n currentSize -= cLength;\r\n }\r\n\r\n while (currentPos <= i) {\r\n letters[currentPos].an = currentSize;\r\n letters[currentPos].ind = index;\r\n letters[currentPos].extra = cLength;\r\n currentPos += 1;\r\n }\r\n\r\n currentSize = 0;\r\n index += 1;\r\n }\r\n } else {\r\n letters[index].ind = index;\r\n letters[index].extra = 0;\r\n index += 1;\r\n }\r\n }\r\n\r\n documentData.l = letters;\r\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\r\n lineWidths.push(lineWidth);\r\n\r\n if (documentData.sz) {\r\n documentData.boxWidth = documentData.sz[0];\r\n documentData.justifyOffset = 0;\r\n } else {\r\n documentData.boxWidth = maxLineWidth;\r\n\r\n switch (documentData.j) {\r\n case 1:\r\n documentData.justifyOffset = -documentData.boxWidth;\r\n break;\r\n\r\n case 2:\r\n documentData.justifyOffset = -documentData.boxWidth / 2;\r\n break;\r\n\r\n default:\r\n documentData.justifyOffset = 0;\r\n }\r\n }\r\n\r\n documentData.lineWidths = lineWidths;\r\n var animators = data.a;\r\n var animatorData;\r\n var letterData;\r\n jLen = animators.length;\r\n var based;\r\n var ind;\r\n var indexes = [];\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorData = animators[j];\r\n\r\n if (animatorData.a.sc) {\r\n documentData.strokeColorAnim = true;\r\n }\r\n\r\n if (animatorData.a.sw) {\r\n documentData.strokeWidthAnim = true;\r\n }\r\n\r\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\r\n documentData.fillColorAnim = true;\r\n }\r\n\r\n ind = 0;\r\n based = animatorData.s.b;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n letterData = letters[i];\r\n letterData.anIndexes[j] = ind;\r\n\r\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)) {\r\n // eslint-disable-line eqeqeq\r\n if (animatorData.s.rn === 1) {\r\n indexes.push(ind);\r\n }\r\n\r\n ind += 1;\r\n }\r\n }\r\n\r\n data.a[j].s.totalChars = ind;\r\n var currentInd = -1;\r\n var newInd;\r\n\r\n if (animatorData.s.rn === 1) {\r\n for (i = 0; i < len; i += 1) {\r\n letterData = letters[i];\r\n\r\n if (currentInd != letterData.anIndexes[j]) {\r\n // eslint-disable-line eqeqeq\r\n currentInd = letterData.anIndexes[j];\r\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\r\n }\r\n\r\n letterData.anIndexes[j] = newInd;\r\n }\r\n }\r\n }\r\n\r\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\r\n documentData.ls = documentData.ls || 0;\r\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\r\n };\r\n\r\n TextProperty.prototype.updateDocumentData = function (newData, index) {\r\n index = index === undefined ? this.keysIndex : index;\r\n var dData = this.copyData({}, this.data.d.k[index].s);\r\n dData = this.copyData(dData, newData);\r\n this.data.d.k[index].s = dData;\r\n this.recalculate(index);\r\n this.elem.addDynamicProperty(this);\r\n };\r\n\r\n TextProperty.prototype.recalculate = function (index) {\r\n var dData = this.data.d.k[index].s;\r\n dData.__complete = false;\r\n this.keysIndex = 0;\r\n this._isFirstFrame = true;\r\n this.getValue(dData);\r\n };\r\n\r\n TextProperty.prototype.canResizeFont = function (_canResize) {\r\n this.canResize = _canResize;\r\n this.recalculate(this.keysIndex);\r\n this.elem.addDynamicProperty(this);\r\n };\r\n\r\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\r\n this.minimumFontSize = Math.floor(_fontValue) || 1;\r\n this.recalculate(this.keysIndex);\r\n this.elem.addDynamicProperty(this);\r\n };\r\n\r\n var TextSelectorProp = function () {\r\n var max = Math.max;\r\n var min = Math.min;\r\n var floor = Math.floor;\r\n\r\n function TextSelectorPropFactory(elem, data) {\r\n this._currentTextLength = -1;\r\n this.k = false;\r\n this.data = data;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.finalS = 0;\r\n this.finalE = 0;\r\n this.initDynamicPropertyContainer(elem);\r\n this.s = PropertyFactory.getProp(elem, data.s || {\r\n k: 0\r\n }, 0, 0, this);\r\n\r\n if ('e' in data) {\r\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\r\n } else {\r\n this.e = {\r\n v: 100\r\n };\r\n }\r\n\r\n this.o = PropertyFactory.getProp(elem, data.o || {\r\n k: 0\r\n }, 0, 0, this);\r\n this.xe = PropertyFactory.getProp(elem, data.xe || {\r\n k: 0\r\n }, 0, 0, this);\r\n this.ne = PropertyFactory.getProp(elem, data.ne || {\r\n k: 0\r\n }, 0, 0, this);\r\n this.sm = PropertyFactory.getProp(elem, data.sm || {\r\n k: 100\r\n }, 0, 0, this);\r\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\r\n\r\n if (!this.dynamicProperties.length) {\r\n this.getValue();\r\n }\r\n }\r\n\r\n TextSelectorPropFactory.prototype = {\r\n getMult: function getMult(ind) {\r\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\r\n this.getValue();\r\n }\r\n\r\n var x1 = 0;\r\n var y1 = 0;\r\n var x2 = 1;\r\n var y2 = 1;\r\n\r\n if (this.ne.v > 0) {\r\n x1 = this.ne.v / 100.0;\r\n } else {\r\n y1 = -this.ne.v / 100.0;\r\n }\r\n\r\n if (this.xe.v > 0) {\r\n x2 = 1.0 - this.xe.v / 100.0;\r\n } else {\r\n y2 = 1.0 + this.xe.v / 100.0;\r\n }\r\n\r\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\r\n var mult = 0;\r\n var s = this.finalS;\r\n var e = this.finalE;\r\n var type = this.data.sh;\r\n\r\n if (type === 2) {\r\n if (e === s) {\r\n mult = ind >= e ? 1 : 0;\r\n } else {\r\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\r\n }\r\n\r\n mult = easer(mult);\r\n } else if (type === 3) {\r\n if (e === s) {\r\n mult = ind >= e ? 0 : 1;\r\n } else {\r\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\r\n }\r\n\r\n mult = easer(mult);\r\n } else if (type === 4) {\r\n if (e === s) {\r\n mult = 0;\r\n } else {\r\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\r\n\r\n if (mult < 0.5) {\r\n mult *= 2;\r\n } else {\r\n mult = 1 - 2 * (mult - 0.5);\r\n }\r\n }\r\n\r\n mult = easer(mult);\r\n } else if (type === 5) {\r\n if (e === s) {\r\n mult = 0;\r\n } else {\r\n var tot = e - s;\r\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\r\n\r\n ind = min(max(0, ind + 0.5 - s), e - s);\r\n var x = -tot / 2 + ind;\r\n var a = tot / 2;\r\n mult = Math.sqrt(1 - x * x / (a * a));\r\n }\r\n\r\n mult = easer(mult);\r\n } else if (type === 6) {\r\n if (e === s) {\r\n mult = 0;\r\n } else {\r\n ind = min(max(0, ind + 0.5 - s), e - s);\r\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\r\n }\r\n\r\n mult = easer(mult);\r\n } else {\r\n if (ind >= floor(s)) {\r\n if (ind - s < 0) {\r\n mult = max(0, min(min(e, 1) - (s - ind), 1));\r\n } else {\r\n mult = max(0, min(e - ind, 1));\r\n }\r\n }\r\n\r\n mult = easer(mult);\r\n } // Smoothness implementation.\r\n // The smoothness represents a reduced range of the original [0; 1] range.\r\n // if smoothness is 25%, the new range will be [0.375; 0.625]\r\n // Steps are:\r\n // - find the lower value of the new range (threshold)\r\n // - if multiplier is smaller than that value, floor it to 0\r\n // - if it is larger,\r\n // - subtract the threshold\r\n // - divide it by the smoothness (this will return the range to [0; 1])\r\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\r\n\r\n\r\n if (this.sm.v !== 100) {\r\n var smoothness = this.sm.v * 0.01;\r\n\r\n if (smoothness === 0) {\r\n smoothness = 0.00000001;\r\n }\r\n\r\n var threshold = 0.5 - smoothness * 0.5;\r\n\r\n if (mult < threshold) {\r\n mult = 0;\r\n } else {\r\n mult = (mult - threshold) / smoothness;\r\n\r\n if (mult > 1) {\r\n mult = 1;\r\n }\r\n }\r\n }\r\n\r\n return mult * this.a.v;\r\n },\r\n getValue: function getValue(newCharsFlag) {\r\n this.iterateDynamicProperties();\r\n this._mdf = newCharsFlag || this._mdf;\r\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\r\n\r\n if (newCharsFlag && this.data.r === 2) {\r\n this.e.v = this._currentTextLength;\r\n }\r\n\r\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\r\n var o = this.o.v / divisor;\r\n var s = this.s.v / divisor + o;\r\n var e = this.e.v / divisor + o;\r\n\r\n if (s > e) {\r\n var _s = s;\r\n s = e;\r\n e = _s;\r\n }\r\n\r\n this.finalS = s;\r\n this.finalE = e;\r\n }\r\n };\r\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\r\n\r\n function getTextSelectorProp(elem, data, arr) {\r\n return new TextSelectorPropFactory(elem, data, arr);\r\n }\r\n\r\n return {\r\n getTextSelectorProp: getTextSelectorProp\r\n };\r\n }();\r\n\r\n function TextAnimatorDataProperty(elem, animatorProps, container) {\r\n var defaultData = {\r\n propType: false\r\n };\r\n var getProp = PropertyFactory.getProp;\r\n var textAnimatorAnimatables = animatorProps.a;\r\n this.a = {\r\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\r\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\r\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\r\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\r\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\r\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\r\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\r\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\r\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\r\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\r\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\r\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\r\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\r\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\r\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\r\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\r\n };\r\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\r\n this.s.t = animatorProps.s.t;\r\n }\r\n\r\n function TextAnimatorProperty(textData, renderType, elem) {\r\n this._isFirstFrame = true;\r\n this._hasMaskedPath = false;\r\n this._frameId = -1;\r\n this._textData = textData;\r\n this._renderType = renderType;\r\n this._elem = elem;\r\n this._animatorsData = createSizedArray(this._textData.a.length);\r\n this._pathData = {};\r\n this._moreOptions = {\r\n alignment: {}\r\n };\r\n this.renderedLetters = [];\r\n this.lettersChangedFlag = false;\r\n this.initDynamicPropertyContainer(elem);\r\n }\r\n\r\n TextAnimatorProperty.prototype.searchProperties = function () {\r\n var i;\r\n var len = this._textData.a.length;\r\n var animatorProps;\r\n var getProp = PropertyFactory.getProp;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n animatorProps = this._textData.a[i];\r\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\r\n }\r\n\r\n if (this._textData.p && 'm' in this._textData.p) {\r\n this._pathData = {\r\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\r\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\r\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\r\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\r\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\r\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\r\n };\r\n this._hasMaskedPath = true;\r\n } else {\r\n this._hasMaskedPath = false;\r\n }\r\n\r\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\r\n };\r\n\r\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\r\n this.lettersChangedFlag = lettersChangedFlag;\r\n\r\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\r\n return;\r\n }\r\n\r\n this._isFirstFrame = false;\r\n var alignment = this._moreOptions.alignment.v;\r\n var animators = this._animatorsData;\r\n var textData = this._textData;\r\n var matrixHelper = this.mHelper;\r\n var renderType = this._renderType;\r\n var renderedLettersCount = this.renderedLetters.length;\r\n var xPos;\r\n var yPos;\r\n var i;\r\n var len;\r\n var letters = documentData.l;\r\n var pathInfo;\r\n var currentLength;\r\n var currentPoint;\r\n var segmentLength;\r\n var flag;\r\n var pointInd;\r\n var segmentInd;\r\n var prevPoint;\r\n var points;\r\n var segments;\r\n var partialLength;\r\n var totalLength;\r\n var perc;\r\n var tanAngle;\r\n var mask;\r\n\r\n if (this._hasMaskedPath) {\r\n mask = this._pathData.m;\r\n\r\n if (!this._pathData.n || this._pathData._mdf) {\r\n var paths = mask.v;\r\n\r\n if (this._pathData.r.v) {\r\n paths = paths.reverse();\r\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\r\n\r\n\r\n pathInfo = {\r\n tLength: 0,\r\n segments: []\r\n };\r\n len = paths._length - 1;\r\n var bezierData;\r\n totalLength = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\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]]);\r\n pathInfo.tLength += bezierData.segmentLength;\r\n pathInfo.segments.push(bezierData);\r\n totalLength += bezierData.segmentLength;\r\n }\r\n\r\n i = len;\r\n\r\n if (mask.v.c) {\r\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]]);\r\n pathInfo.tLength += bezierData.segmentLength;\r\n pathInfo.segments.push(bezierData);\r\n totalLength += bezierData.segmentLength;\r\n }\r\n\r\n this._pathData.pi = pathInfo;\r\n }\r\n\r\n pathInfo = this._pathData.pi;\r\n currentLength = this._pathData.f.v;\r\n segmentInd = 0;\r\n pointInd = 1;\r\n segmentLength = 0;\r\n flag = true;\r\n segments = pathInfo.segments;\r\n\r\n if (currentLength < 0 && mask.v.c) {\r\n if (pathInfo.tLength < Math.abs(currentLength)) {\r\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\r\n }\r\n\r\n segmentInd = segments.length - 1;\r\n points = segments[segmentInd].points;\r\n pointInd = points.length - 1;\r\n\r\n while (currentLength < 0) {\r\n currentLength += points[pointInd].partialLength;\r\n pointInd -= 1;\r\n\r\n if (pointInd < 0) {\r\n segmentInd -= 1;\r\n points = segments[segmentInd].points;\r\n pointInd = points.length - 1;\r\n }\r\n }\r\n }\r\n\r\n points = segments[segmentInd].points;\r\n prevPoint = points[pointInd - 1];\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n }\r\n\r\n len = letters.length;\r\n xPos = 0;\r\n yPos = 0;\r\n var yOff = documentData.finalSize * 1.2 * 0.714;\r\n var firstLine = true;\r\n var animatorProps;\r\n var animatorSelector;\r\n var j;\r\n var jLen;\r\n var letterValue;\r\n jLen = animators.length;\r\n var mult;\r\n var ind = -1;\r\n var offf;\r\n var xPathPos;\r\n var yPathPos;\r\n var initPathPos = currentLength;\r\n var initSegmentInd = segmentInd;\r\n var initPointInd = pointInd;\r\n var currentLine = -1;\r\n var elemOpacity;\r\n var sc;\r\n var sw;\r\n var fc;\r\n var k;\r\n var letterSw;\r\n var letterSc;\r\n var letterFc;\r\n var letterM = '';\r\n var letterP = this.defaultPropsArray;\r\n var letterO; //\r\n\r\n if (documentData.j === 2 || documentData.j === 1) {\r\n var animatorJustifyOffset = 0;\r\n var animatorFirstCharOffset = 0;\r\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\r\n var lastIndex = 0;\r\n var isNewLine = true;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (letters[i].n) {\r\n if (animatorJustifyOffset) {\r\n animatorJustifyOffset += animatorFirstCharOffset;\r\n }\r\n\r\n while (lastIndex < i) {\r\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\r\n lastIndex += 1;\r\n }\r\n\r\n animatorJustifyOffset = 0;\r\n isNewLine = true;\r\n } else {\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.t.propType) {\r\n if (isNewLine && documentData.j === 2) {\r\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\r\n }\r\n\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (mult.length) {\r\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\r\n } else {\r\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\r\n }\r\n }\r\n }\r\n\r\n isNewLine = false;\r\n }\r\n }\r\n\r\n if (animatorJustifyOffset) {\r\n animatorJustifyOffset += animatorFirstCharOffset;\r\n }\r\n\r\n while (lastIndex < i) {\r\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\r\n lastIndex += 1;\r\n }\r\n } //\r\n\r\n\r\n for (i = 0; i < len; i += 1) {\r\n matrixHelper.reset();\r\n elemOpacity = 1;\r\n\r\n if (letters[i].n) {\r\n xPos = 0;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n currentLength = initPathPos;\r\n firstLine = false;\r\n\r\n if (this._hasMaskedPath) {\r\n segmentInd = initSegmentInd;\r\n pointInd = initPointInd;\r\n points = segments[segmentInd].points;\r\n prevPoint = points[pointInd - 1];\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n segmentLength = 0;\r\n }\r\n\r\n letterM = '';\r\n letterFc = '';\r\n letterSw = '';\r\n letterO = '';\r\n letterP = this.defaultPropsArray;\r\n } else {\r\n if (this._hasMaskedPath) {\r\n if (currentLine !== letters[i].line) {\r\n switch (documentData.j) {\r\n case 1:\r\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\r\n break;\r\n\r\n case 2:\r\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n currentLine = letters[i].line;\r\n }\r\n\r\n if (ind !== letters[i].ind) {\r\n if (letters[ind]) {\r\n currentLength += letters[ind].extra;\r\n }\r\n\r\n currentLength += letters[i].an / 2;\r\n ind = letters[i].ind;\r\n }\r\n\r\n currentLength += alignment[0] * letters[i].an * 0.005;\r\n var animatorOffset = 0;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.p.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (mult.length) {\r\n animatorOffset += animatorProps.p.v[0] * mult[0];\r\n } else {\r\n animatorOffset += animatorProps.p.v[0] * mult;\r\n }\r\n }\r\n\r\n if (animatorProps.a.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (mult.length) {\r\n animatorOffset += animatorProps.a.v[0] * mult[0];\r\n } else {\r\n animatorOffset += animatorProps.a.v[0] * mult;\r\n }\r\n }\r\n }\r\n\r\n flag = true; // Force alignment only works with a single line for now\r\n\r\n if (this._pathData.a.v) {\r\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\r\n currentLength += this._pathData.f.v;\r\n }\r\n\r\n while (flag) {\r\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\r\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\r\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\r\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\r\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\r\n flag = false;\r\n } else if (points) {\r\n segmentLength += currentPoint.partialLength;\r\n pointInd += 1;\r\n\r\n if (pointInd >= points.length) {\r\n pointInd = 0;\r\n segmentInd += 1;\r\n\r\n if (!segments[segmentInd]) {\r\n if (mask.v.c) {\r\n pointInd = 0;\r\n segmentInd = 0;\r\n points = segments[segmentInd].points;\r\n } else {\r\n segmentLength -= currentPoint.partialLength;\r\n points = null;\r\n }\r\n } else {\r\n points = segments[segmentInd].points;\r\n }\r\n }\r\n\r\n if (points) {\r\n prevPoint = currentPoint;\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n }\r\n }\r\n }\r\n\r\n offf = letters[i].an / 2 - letters[i].add;\r\n matrixHelper.translate(-offf, 0, 0);\r\n } else {\r\n offf = letters[i].an / 2 - letters[i].add;\r\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\r\n\r\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.t.propType) {\r\n animatorSelector = animators[j].s;\r\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\"\r\n\r\n if (xPos !== 0 || documentData.j !== 0) {\r\n if (this._hasMaskedPath) {\r\n if (mult.length) {\r\n currentLength += animatorProps.t.v * mult[0];\r\n } else {\r\n currentLength += animatorProps.t.v * mult;\r\n }\r\n } else if (mult.length) {\r\n xPos += animatorProps.t.v * mult[0];\r\n } else {\r\n xPos += animatorProps.t.v * mult;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (documentData.strokeWidthAnim) {\r\n sw = documentData.sw || 0;\r\n }\r\n\r\n if (documentData.strokeColorAnim) {\r\n if (documentData.sc) {\r\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\r\n } else {\r\n sc = [0, 0, 0];\r\n }\r\n }\r\n\r\n if (documentData.fillColorAnim && documentData.fc) {\r\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.a.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (mult.length) {\r\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\r\n } else {\r\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\r\n }\r\n }\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.s.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (mult.length) {\r\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\r\n } else {\r\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\r\n }\r\n }\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (animatorProps.sk.propType) {\r\n if (mult.length) {\r\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\r\n } else {\r\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.r.propType) {\r\n if (mult.length) {\r\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\r\n } else {\r\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.ry.propType) {\r\n if (mult.length) {\r\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\r\n } else {\r\n matrixHelper.rotateY(animatorProps.ry.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.rx.propType) {\r\n if (mult.length) {\r\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\r\n } else {\r\n matrixHelper.rotateX(animatorProps.rx.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.o.propType) {\r\n if (mult.length) {\r\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\r\n } else {\r\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\r\n }\r\n }\r\n\r\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\r\n if (mult.length) {\r\n sw += animatorProps.sw.v * mult[0];\r\n } else {\r\n sw += animatorProps.sw.v * mult;\r\n }\r\n }\r\n\r\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\r\n for (k = 0; k < 3; k += 1) {\r\n if (mult.length) {\r\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\r\n } else {\r\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\r\n }\r\n }\r\n }\r\n\r\n if (documentData.fillColorAnim && documentData.fc) {\r\n if (animatorProps.fc.propType) {\r\n for (k = 0; k < 3; k += 1) {\r\n if (mult.length) {\r\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\r\n } else {\r\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\r\n }\r\n }\r\n }\r\n\r\n if (animatorProps.fh.propType) {\r\n if (mult.length) {\r\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\r\n } else {\r\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.fs.propType) {\r\n if (mult.length) {\r\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\r\n } else {\r\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.fb.propType) {\r\n if (mult.length) {\r\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\r\n } else {\r\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.p.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (this._hasMaskedPath) {\r\n if (mult.length) {\r\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\r\n } else {\r\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\r\n }\r\n } else if (mult.length) {\r\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\r\n } else {\r\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\r\n }\r\n }\r\n }\r\n\r\n if (documentData.strokeWidthAnim) {\r\n letterSw = sw < 0 ? 0 : sw;\r\n }\r\n\r\n if (documentData.strokeColorAnim) {\r\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\r\n }\r\n\r\n if (documentData.fillColorAnim && documentData.fc) {\r\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\r\n }\r\n\r\n if (this._hasMaskedPath) {\r\n matrixHelper.translate(0, -documentData.ls);\r\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\r\n\r\n if (this._pathData.p.v) {\r\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\r\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\r\n\r\n if (currentPoint.point[0] < prevPoint.point[0]) {\r\n rot += 180;\r\n }\r\n\r\n matrixHelper.rotate(-rot * Math.PI / 180);\r\n }\r\n\r\n matrixHelper.translate(xPathPos, yPathPos, 0);\r\n currentLength -= alignment[0] * letters[i].an * 0.005;\r\n\r\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\r\n currentLength += letters[i].an / 2;\r\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\r\n }\r\n } else {\r\n matrixHelper.translate(xPos, yPos, 0);\r\n\r\n if (documentData.ps) {\r\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\r\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\r\n }\r\n\r\n switch (documentData.j) {\r\n case 1:\r\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\r\n break;\r\n\r\n case 2:\r\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n matrixHelper.translate(0, -documentData.ls);\r\n matrixHelper.translate(offf, 0, 0);\r\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\r\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\r\n }\r\n\r\n if (renderType === 'html') {\r\n letterM = matrixHelper.toCSS();\r\n } else if (renderType === 'svg') {\r\n letterM = matrixHelper.to2dCSS();\r\n } else {\r\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]];\r\n }\r\n\r\n letterO = elemOpacity;\r\n }\r\n\r\n if (renderedLettersCount <= i) {\r\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\r\n this.renderedLetters.push(letterValue);\r\n renderedLettersCount += 1;\r\n this.lettersChangedFlag = true;\r\n } else {\r\n letterValue = this.renderedLetters[i];\r\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\r\n }\r\n }\r\n };\r\n\r\n TextAnimatorProperty.prototype.getValue = function () {\r\n if (this._elem.globalData.frameId === this._frameId) {\r\n return;\r\n }\r\n\r\n this._frameId = this._elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n };\r\n\r\n TextAnimatorProperty.prototype.mHelper = new Matrix();\r\n TextAnimatorProperty.prototype.defaultPropsArray = [];\r\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\r\n\r\n function ITextElement() {}\r\n\r\n ITextElement.prototype.initElement = function (data, globalData, comp) {\r\n this.lettersChangedFlag = true;\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\r\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n this.initRenderable();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n this.createContent();\r\n this.hide();\r\n this.textAnimator.searchProperties(this.dynamicProperties);\r\n };\r\n\r\n ITextElement.prototype.prepareFrame = function (num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n\r\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\r\n this.buildNewText();\r\n this.textProperty._isFirstFrame = false;\r\n this.textProperty._mdf = false;\r\n }\r\n };\r\n\r\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\r\n var j;\r\n var jLen = shapes.length;\r\n var pathNodes;\r\n var shapeStr = '';\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (shapes[j].ty === 'sh') {\r\n pathNodes = shapes[j].ks.k;\r\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\r\n }\r\n }\r\n\r\n return shapeStr;\r\n };\r\n\r\n ITextElement.prototype.updateDocumentData = function (newData, index) {\r\n this.textProperty.updateDocumentData(newData, index);\r\n };\r\n\r\n ITextElement.prototype.canResizeFont = function (_canResize) {\r\n this.textProperty.canResizeFont(_canResize);\r\n };\r\n\r\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\r\n this.textProperty.setMinimumFontSize(_fontSize);\r\n };\r\n\r\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\r\n if (documentData.ps) {\r\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\r\n }\r\n\r\n matrixHelper.translate(0, -documentData.ls, 0);\r\n\r\n switch (documentData.j) {\r\n case 1:\r\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\r\n break;\r\n\r\n case 2:\r\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n matrixHelper.translate(xPos, yPos, 0);\r\n };\r\n\r\n ITextElement.prototype.buildColor = function (colorData) {\r\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\r\n };\r\n\r\n ITextElement.prototype.emptyProp = new LetterProps();\r\n\r\n ITextElement.prototype.destroy = function () {};\r\n\r\n var emptyShapeData = {\r\n shapes: []\r\n };\r\n\r\n function SVGTextLottieElement(data, globalData, comp) {\r\n this.textSpans = [];\r\n this.renderType = 'svg';\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\r\n\r\n SVGTextLottieElement.prototype.createContent = function () {\r\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\r\n this.textContainer = createNS('text');\r\n }\r\n };\r\n\r\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\r\n var i = 0;\r\n var len = textArray.length;\r\n var textContents = [];\r\n var currentTextContent = '';\r\n\r\n while (i < len) {\r\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\r\n textContents.push(currentTextContent);\r\n currentTextContent = '';\r\n } else {\r\n currentTextContent += textArray[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n textContents.push(currentTextContent);\r\n return textContents;\r\n };\r\n\r\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\r\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\r\n // but since text internal content gets only rendered once and then it's never rerendered,\r\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\r\n // Avoiding cloning is preferred since cloning each character shape data is expensive\r\n if (data.shapes && data.shapes.length) {\r\n var shape = data.shapes[0];\r\n\r\n if (shape.it) {\r\n var shapeItem = shape.it[shape.it.length - 1];\r\n\r\n if (shapeItem.s) {\r\n shapeItem.s.k[0] = scale;\r\n shapeItem.s.k[1] = scale;\r\n }\r\n }\r\n }\r\n\r\n return data;\r\n };\r\n\r\n SVGTextLottieElement.prototype.buildNewText = function () {\r\n this.addDynamicProperty(this);\r\n var i;\r\n var len;\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\r\n\r\n if (documentData.fc) {\r\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\r\n } else {\r\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\r\n }\r\n\r\n if (documentData.sc) {\r\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\r\n this.layerElement.setAttribute('stroke-width', documentData.sw);\r\n }\r\n\r\n this.layerElement.setAttribute('font-size', documentData.finalSize);\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n\r\n if (fontData.fClass) {\r\n this.layerElement.setAttribute('class', fontData.fClass);\r\n } else {\r\n this.layerElement.setAttribute('font-family', fontData.fFamily);\r\n var fWeight = documentData.fWeight;\r\n var fStyle = documentData.fStyle;\r\n this.layerElement.setAttribute('font-style', fStyle);\r\n this.layerElement.setAttribute('font-weight', fWeight);\r\n }\r\n\r\n this.layerElement.setAttribute('aria-label', documentData.t);\r\n var letters = documentData.l || [];\r\n var usesGlyphs = !!this.globalData.fontManager.chars;\r\n len = letters.length;\r\n var tSpan;\r\n var matrixHelper = this.mHelper;\r\n var shapeStr = '';\r\n var singleShape = this.data.singleShape;\r\n var xPos = 0;\r\n var yPos = 0;\r\n var firstLine = true;\r\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\r\n\r\n if (singleShape && !usesGlyphs && !documentData.sz) {\r\n var tElement = this.textContainer;\r\n var justify = 'start';\r\n\r\n switch (documentData.j) {\r\n case 1:\r\n justify = 'end';\r\n break;\r\n\r\n case 2:\r\n justify = 'middle';\r\n break;\r\n\r\n default:\r\n justify = 'start';\r\n break;\r\n }\r\n\r\n tElement.setAttribute('text-anchor', justify);\r\n tElement.setAttribute('letter-spacing', trackingOffset);\r\n var textContent = this.buildTextContents(documentData.finalText);\r\n len = textContent.length;\r\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n tSpan = this.textSpans[i].span || createNS('tspan');\r\n tSpan.textContent = textContent[i];\r\n tSpan.setAttribute('x', 0);\r\n tSpan.setAttribute('y', yPos);\r\n tSpan.style.display = 'inherit';\r\n tElement.appendChild(tSpan);\r\n\r\n if (!this.textSpans[i]) {\r\n this.textSpans[i] = {\r\n span: null,\r\n glyph: null\r\n };\r\n }\r\n\r\n this.textSpans[i].span = tSpan;\r\n yPos += documentData.finalLineHeight;\r\n }\r\n\r\n this.layerElement.appendChild(tElement);\r\n } else {\r\n var cachedSpansLength = this.textSpans.length;\r\n var charData;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!this.textSpans[i]) {\r\n this.textSpans[i] = {\r\n span: null,\r\n childSpan: null,\r\n glyph: null\r\n };\r\n }\r\n\r\n if (!usesGlyphs || !singleShape || i === 0) {\r\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\r\n\r\n if (cachedSpansLength <= i) {\r\n tSpan.setAttribute('stroke-linecap', 'butt');\r\n tSpan.setAttribute('stroke-linejoin', 'round');\r\n tSpan.setAttribute('stroke-miterlimit', '4');\r\n this.textSpans[i].span = tSpan;\r\n\r\n if (usesGlyphs) {\r\n var childSpan = createNS('g');\r\n tSpan.appendChild(childSpan);\r\n this.textSpans[i].childSpan = childSpan;\r\n }\r\n\r\n this.textSpans[i].span = tSpan;\r\n this.layerElement.appendChild(tSpan);\r\n }\r\n\r\n tSpan.style.display = 'inherit';\r\n }\r\n\r\n matrixHelper.reset();\r\n\r\n if (singleShape) {\r\n if (letters[i].n) {\r\n xPos = -trackingOffset;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n firstLine = false;\r\n }\r\n\r\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\r\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\r\n\r\n xPos += trackingOffset;\r\n }\r\n\r\n if (usesGlyphs) {\r\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n var glyphElement; // t === 1 means the character has been replaced with an animated shaped\r\n\r\n if (charData.t === 1) {\r\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\r\n } else {\r\n var data = emptyShapeData;\r\n\r\n if (charData.data && charData.data.shapes) {\r\n data = this.buildShapeData(charData.data, documentData.finalSize);\r\n }\r\n\r\n glyphElement = new SVGShapeElement(data, this.globalData, this);\r\n }\r\n\r\n if (this.textSpans[i].glyph) {\r\n var glyph = this.textSpans[i].glyph;\r\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\r\n glyph.destroy();\r\n }\r\n\r\n this.textSpans[i].glyph = glyphElement;\r\n glyphElement._debug = true;\r\n glyphElement.prepareFrame(0);\r\n glyphElement.renderFrame();\r\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\r\n // this might have issues with strokes and might need a different solution\r\n\r\n if (charData.t === 1) {\r\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\r\n }\r\n } else {\r\n if (singleShape) {\r\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\r\n }\r\n\r\n tSpan.textContent = letters[i].val;\r\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\r\n } //\r\n\r\n }\r\n\r\n if (singleShape && tSpan) {\r\n tSpan.setAttribute('d', shapeStr);\r\n }\r\n }\r\n\r\n while (i < this.textSpans.length) {\r\n this.textSpans[i].span.style.display = 'none';\r\n i += 1;\r\n }\r\n\r\n this._sizeChanged = true;\r\n };\r\n\r\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\r\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\r\n this.renderInnerContent();\r\n\r\n if (this._sizeChanged) {\r\n this._sizeChanged = false;\r\n var textBox = this.layerElement.getBBox();\r\n this.bbox = {\r\n top: textBox.y,\r\n left: textBox.x,\r\n width: textBox.width,\r\n height: textBox.height\r\n };\r\n }\r\n\r\n return this.bbox;\r\n };\r\n\r\n SVGTextLottieElement.prototype.getValue = function () {\r\n var i;\r\n var len = this.textSpans.length;\r\n var glyphElement;\r\n this.renderedFrame = this.comp.renderedFrame;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n glyphElement = this.textSpans[i].glyph;\r\n\r\n if (glyphElement) {\r\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\r\n\r\n if (glyphElement._mdf) {\r\n this._mdf = true;\r\n }\r\n }\r\n }\r\n };\r\n\r\n SVGTextLottieElement.prototype.renderInnerContent = function () {\r\n if (!this.data.singleShape || this._mdf) {\r\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\r\n\r\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\r\n this._sizeChanged = true;\r\n var i;\r\n var len;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n var letters = this.textProperty.currentData.l;\r\n len = letters.length;\r\n var renderedLetter;\r\n var textSpan;\r\n var glyphElement;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!letters[i].n) {\r\n renderedLetter = renderedLetters[i];\r\n textSpan = this.textSpans[i].span;\r\n glyphElement = this.textSpans[i].glyph;\r\n\r\n if (glyphElement) {\r\n glyphElement.renderFrame();\r\n }\r\n\r\n if (renderedLetter._mdf.m) {\r\n textSpan.setAttribute('transform', renderedLetter.m);\r\n }\r\n\r\n if (renderedLetter._mdf.o) {\r\n textSpan.setAttribute('opacity', renderedLetter.o);\r\n }\r\n\r\n if (renderedLetter._mdf.sw) {\r\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\r\n }\r\n\r\n if (renderedLetter._mdf.sc) {\r\n textSpan.setAttribute('stroke', renderedLetter.sc);\r\n }\r\n\r\n if (renderedLetter._mdf.fc) {\r\n textSpan.setAttribute('fill', renderedLetter.fc);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n function ISolidElement(data, globalData, comp) {\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([IImageElement], ISolidElement);\r\n\r\n ISolidElement.prototype.createContent = function () {\r\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\r\n /// /rect.style.height = this.data.sh;\r\n /// /rect.style.fill = this.data.sc;\r\n\r\n rect.setAttribute('width', this.data.sw);\r\n rect.setAttribute('height', this.data.sh);\r\n rect.setAttribute('fill', this.data.sc);\r\n this.layerElement.appendChild(rect);\r\n };\r\n\r\n function NullElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initFrame();\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n }\r\n\r\n NullElement.prototype.prepareFrame = function (num) {\r\n this.prepareProperties(num, true);\r\n };\r\n\r\n NullElement.prototype.renderFrame = function () {};\r\n\r\n NullElement.prototype.getBaseElement = function () {\r\n return null;\r\n };\r\n\r\n NullElement.prototype.destroy = function () {};\r\n\r\n NullElement.prototype.sourceRectAtTime = function () {};\r\n\r\n NullElement.prototype.hide = function () {};\r\n\r\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\r\n\r\n function SVGRendererBase() {}\r\n\r\n extendPrototype([BaseRenderer], SVGRendererBase);\r\n\r\n SVGRendererBase.prototype.createNull = function (data) {\r\n return new NullElement(data, this.globalData, this);\r\n };\r\n\r\n SVGRendererBase.prototype.createShape = function (data) {\r\n return new SVGShapeElement(data, this.globalData, this);\r\n };\r\n\r\n SVGRendererBase.prototype.createText = function (data) {\r\n return new SVGTextLottieElement(data, this.globalData, this);\r\n };\r\n\r\n SVGRendererBase.prototype.createImage = function (data) {\r\n return new IImageElement(data, this.globalData, this);\r\n };\r\n\r\n SVGRendererBase.prototype.createSolid = function (data) {\r\n return new ISolidElement(data, this.globalData, this);\r\n };\r\n\r\n SVGRendererBase.prototype.configAnimation = function (animData) {\r\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\r\n this.svgElement.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\r\n\r\n if (this.renderConfig.viewBoxSize) {\r\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\r\n } else {\r\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\r\n }\r\n\r\n if (!this.renderConfig.viewBoxOnly) {\r\n this.svgElement.setAttribute('width', animData.w);\r\n this.svgElement.setAttribute('height', animData.h);\r\n this.svgElement.style.width = '100%';\r\n this.svgElement.style.height = '100%';\r\n this.svgElement.style.transform = 'translate3d(0,0,0)';\r\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\r\n }\r\n\r\n if (this.renderConfig.width) {\r\n this.svgElement.setAttribute('width', this.renderConfig.width);\r\n }\r\n\r\n if (this.renderConfig.height) {\r\n this.svgElement.setAttribute('height', this.renderConfig.height);\r\n }\r\n\r\n if (this.renderConfig.className) {\r\n this.svgElement.setAttribute('class', this.renderConfig.className);\r\n }\r\n\r\n if (this.renderConfig.id) {\r\n this.svgElement.setAttribute('id', this.renderConfig.id);\r\n }\r\n\r\n if (this.renderConfig.focusable !== undefined) {\r\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\r\n }\r\n\r\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\r\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\r\n\r\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\r\n\r\n var defs = this.globalData.defs;\r\n this.setupGlobalData(animData, defs);\r\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\r\n this.data = animData;\r\n var maskElement = createNS('clipPath');\r\n var rect = createNS('rect');\r\n rect.setAttribute('width', animData.w);\r\n rect.setAttribute('height', animData.h);\r\n rect.setAttribute('x', 0);\r\n rect.setAttribute('y', 0);\r\n var maskId = createElementID();\r\n maskElement.setAttribute('id', maskId);\r\n maskElement.appendChild(rect);\r\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\r\n defs.appendChild(maskElement);\r\n this.layers = animData.layers;\r\n this.elements = createSizedArray(animData.layers.length);\r\n };\r\n\r\n SVGRendererBase.prototype.destroy = function () {\r\n if (this.animationItem.wrapper) {\r\n this.animationItem.wrapper.innerText = '';\r\n }\r\n\r\n this.layerElement = null;\r\n this.globalData.defs = null;\r\n var i;\r\n var len = this.layers ? this.layers.length : 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n\r\n this.elements.length = 0;\r\n this.destroyed = true;\r\n this.animationItem = null;\r\n };\r\n\r\n SVGRendererBase.prototype.updateContainerSize = function () {};\r\n\r\n SVGRendererBase.prototype.findIndexByInd = function (ind) {\r\n var i = 0;\r\n var len = this.layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.layers[i].ind === ind) {\r\n return i;\r\n }\r\n }\r\n\r\n return -1;\r\n };\r\n\r\n SVGRendererBase.prototype.buildItem = function (pos) {\r\n var elements = this.elements;\r\n\r\n if (elements[pos] || this.layers[pos].ty === 99) {\r\n return;\r\n }\r\n\r\n elements[pos] = true;\r\n var element = this.createItem(this.layers[pos]);\r\n elements[pos] = element;\r\n\r\n if (getExpressionsPlugin()) {\r\n if (this.layers[pos].ty === 0) {\r\n this.globalData.projectInterface.registerComposition(element);\r\n }\r\n\r\n element.initExpressions();\r\n }\r\n\r\n this.appendElementInPos(element, pos);\r\n\r\n if (this.layers[pos].tt) {\r\n var elementIndex = 'tp' in this.layers[pos] ? this.findIndexByInd(this.layers[pos].tp) : pos - 1;\r\n\r\n if (elementIndex === -1) {\r\n return;\r\n }\r\n\r\n if (!this.elements[elementIndex] || this.elements[elementIndex] === true) {\r\n this.buildItem(elementIndex);\r\n this.addPendingElement(element);\r\n } else {\r\n var matteElement = elements[elementIndex];\r\n var matteMask = matteElement.getMatte(this.layers[pos].tt);\r\n element.setMatte(matteMask);\r\n }\r\n }\r\n };\r\n\r\n SVGRendererBase.prototype.checkPendingElements = function () {\r\n while (this.pendingElements.length) {\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n\r\n if (element.data.tt) {\r\n var i = 0;\r\n var len = this.elements.length;\r\n\r\n while (i < len) {\r\n if (this.elements[i] === element) {\r\n var elementIndex = 'tp' in element.data ? this.findIndexByInd(element.data.tp) : i - 1;\r\n var matteElement = this.elements[elementIndex];\r\n var matteMask = matteElement.getMatte(this.layers[i].tt);\r\n element.setMatte(matteMask);\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n }\r\n }\r\n };\r\n\r\n SVGRendererBase.prototype.renderFrame = function (num) {\r\n if (this.renderedFrame === num || this.destroyed) {\r\n return;\r\n }\r\n\r\n if (num === null) {\r\n num = this.renderedFrame;\r\n } else {\r\n this.renderedFrame = num;\r\n } // console.log('-------');\r\n // console.log('FRAME ',num);\r\n\r\n\r\n this.globalData.frameNum = num;\r\n this.globalData.frameId += 1;\r\n this.globalData.projectInterface.currentFrame = num;\r\n this.globalData._mdf = false;\r\n var i;\r\n var len = this.layers.length;\r\n\r\n if (!this.completeLayers) {\r\n this.checkLayers(num);\r\n }\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].prepareFrame(num - this.layers[i].st);\r\n }\r\n }\r\n\r\n if (this.globalData._mdf) {\r\n for (i = 0; i < len; i += 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n }\r\n };\r\n\r\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\r\n var newElement = element.getBaseElement();\r\n\r\n if (!newElement) {\r\n return;\r\n }\r\n\r\n var i = 0;\r\n var nextElement;\r\n\r\n while (i < pos) {\r\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\r\n nextElement = this.elements[i].getBaseElement();\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (nextElement) {\r\n this.layerElement.insertBefore(newElement, nextElement);\r\n } else {\r\n this.layerElement.appendChild(newElement);\r\n }\r\n };\r\n\r\n SVGRendererBase.prototype.hide = function () {\r\n this.layerElement.style.display = 'none';\r\n };\r\n\r\n SVGRendererBase.prototype.show = function () {\r\n this.layerElement.style.display = 'block';\r\n };\r\n\r\n function ICompElement() {}\r\n\r\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\r\n\r\n ICompElement.prototype.initElement = function (data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initTransform(data, globalData, comp);\r\n this.initRenderable();\r\n this.initHierarchy();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n\r\n if (this.data.xt || !globalData.progressiveLoad) {\r\n this.buildAllItems();\r\n }\r\n\r\n this.hide();\r\n };\r\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 }; */\r\n\r\n\r\n ICompElement.prototype.prepareFrame = function (num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n\r\n if (!this.isInRange && !this.data.xt) {\r\n return;\r\n }\r\n\r\n if (!this.tm._placeholder) {\r\n var timeRemapped = this.tm.v;\r\n\r\n if (timeRemapped === this.data.op) {\r\n timeRemapped = this.data.op - 1;\r\n }\r\n\r\n this.renderedFrame = timeRemapped;\r\n } else {\r\n this.renderedFrame = num / this.data.sr;\r\n }\r\n\r\n var i;\r\n var len = this.elements.length;\r\n\r\n if (!this.completeLayers) {\r\n this.checkLayers(this.renderedFrame);\r\n } // This iteration needs to be backwards because of how expressions connect between each other\r\n\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\r\n\r\n if (this.elements[i]._mdf) {\r\n this._mdf = true;\r\n }\r\n }\r\n }\r\n };\r\n\r\n ICompElement.prototype.renderInnerContent = function () {\r\n var i;\r\n var len = this.layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n };\r\n\r\n ICompElement.prototype.setElements = function (elems) {\r\n this.elements = elems;\r\n };\r\n\r\n ICompElement.prototype.getElements = function () {\r\n return this.elements;\r\n };\r\n\r\n ICompElement.prototype.destroyElements = function () {\r\n var i;\r\n var len = this.layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n };\r\n\r\n ICompElement.prototype.destroy = function () {\r\n this.destroyElements();\r\n this.destroyBaseElement();\r\n };\r\n\r\n function SVGCompElement(data, globalData, comp) {\r\n this.layers = data.layers;\r\n this.supports3d = true;\r\n this.completeLayers = false;\r\n this.pendingElements = [];\r\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\r\n this.initElement(data, globalData, comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\r\n _placeholder: true\r\n };\r\n }\r\n\r\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\r\n\r\n SVGCompElement.prototype.createComp = function (data) {\r\n return new SVGCompElement(data, this.globalData, this);\r\n };\r\n\r\n function SVGRenderer(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.layers = null;\r\n this.renderedFrame = -1;\r\n this.svgElement = createNS('svg');\r\n var ariaLabel = '';\r\n\r\n if (config && config.title) {\r\n var titleElement = createNS('title');\r\n var titleId = createElementID();\r\n titleElement.setAttribute('id', titleId);\r\n titleElement.textContent = config.title;\r\n this.svgElement.appendChild(titleElement);\r\n ariaLabel += titleId;\r\n }\r\n\r\n if (config && config.description) {\r\n var descElement = createNS('desc');\r\n var descId = createElementID();\r\n descElement.setAttribute('id', descId);\r\n descElement.textContent = config.description;\r\n this.svgElement.appendChild(descElement);\r\n ariaLabel += ' ' + descId;\r\n }\r\n\r\n if (ariaLabel) {\r\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\r\n }\r\n\r\n var defs = createNS('defs');\r\n this.svgElement.appendChild(defs);\r\n var maskElement = createNS('g');\r\n this.svgElement.appendChild(maskElement);\r\n this.layerElement = maskElement;\r\n this.renderConfig = {\r\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\r\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\r\n contentVisibility: config && config.contentVisibility || 'visible',\r\n progressiveLoad: config && config.progressiveLoad || false,\r\n hideOnTransparent: !(config && config.hideOnTransparent === false),\r\n viewBoxOnly: config && config.viewBoxOnly || false,\r\n viewBoxSize: config && config.viewBoxSize || false,\r\n className: config && config.className || '',\r\n id: config && config.id || '',\r\n focusable: config && config.focusable,\r\n filterSize: {\r\n width: config && config.filterSize && config.filterSize.width || '100%',\r\n height: config && config.filterSize && config.filterSize.height || '100%',\r\n x: config && config.filterSize && config.filterSize.x || '0%',\r\n y: config && config.filterSize && config.filterSize.y || '0%'\r\n },\r\n width: config && config.width,\r\n height: config && config.height,\r\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\r\n };\r\n this.globalData = {\r\n _mdf: false,\r\n frameNum: -1,\r\n defs: defs,\r\n renderConfig: this.renderConfig\r\n };\r\n this.elements = [];\r\n this.pendingElements = [];\r\n this.destroyed = false;\r\n this.rendererType = 'svg';\r\n }\r\n\r\n extendPrototype([SVGRendererBase], SVGRenderer);\r\n\r\n SVGRenderer.prototype.createComp = function (data) {\r\n return new SVGCompElement(data, this.globalData, this);\r\n };\r\n\r\n function CVContextData() {\r\n this.saved = [];\r\n this.cArrPos = 0;\r\n this.cTr = new Matrix();\r\n this.cO = 1;\r\n var i;\r\n var len = 15;\r\n this.savedOp = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.saved[i] = createTypedArray('float32', 16);\r\n }\r\n\r\n this._length = len;\r\n }\r\n\r\n CVContextData.prototype.duplicate = function () {\r\n var newLength = this._length * 2;\r\n var currentSavedOp = this.savedOp;\r\n this.savedOp = createTypedArray('float32', newLength);\r\n this.savedOp.set(currentSavedOp);\r\n var i = 0;\r\n\r\n for (i = this._length; i < newLength; i += 1) {\r\n this.saved[i] = createTypedArray('float32', 16);\r\n }\r\n\r\n this._length = newLength;\r\n };\r\n\r\n CVContextData.prototype.reset = function () {\r\n this.cArrPos = 0;\r\n this.cTr.reset();\r\n this.cO = 1;\r\n };\r\n\r\n CVContextData.prototype.popTransform = function () {\r\n var popped = this.saved[this.cArrPos];\r\n var i;\r\n var arr = this.cTr.props;\r\n\r\n for (i = 0; i < 16; i += 1) {\r\n arr[i] = popped[i];\r\n }\r\n\r\n return popped;\r\n };\r\n\r\n CVContextData.prototype.popOpacity = function () {\r\n var popped = this.savedOp[this.cArrPos];\r\n this.cO = popped;\r\n return popped;\r\n };\r\n\r\n CVContextData.prototype.pop = function () {\r\n this.cArrPos -= 1;\r\n var transform = this.popTransform();\r\n var opacity = this.popOpacity();\r\n return {\r\n transform: transform,\r\n opacity: opacity\r\n };\r\n };\r\n\r\n CVContextData.prototype.push = function () {\r\n var props = this.cTr.props;\r\n\r\n if (this._length <= this.cArrPos) {\r\n this.duplicate();\r\n }\r\n\r\n var i;\r\n var arr = this.saved[this.cArrPos];\r\n\r\n for (i = 0; i < 16; i += 1) {\r\n arr[i] = props[i];\r\n }\r\n\r\n this.savedOp[this.cArrPos] = this.cO;\r\n this.cArrPos += 1;\r\n };\r\n\r\n CVContextData.prototype.getTransform = function () {\r\n return this.cTr;\r\n };\r\n\r\n CVContextData.prototype.getOpacity = function () {\r\n return this.cO;\r\n };\r\n\r\n CVContextData.prototype.setOpacity = function (value) {\r\n this.cO = value;\r\n };\r\n\r\n function ShapeTransformManager() {\r\n this.sequences = {};\r\n this.sequenceList = [];\r\n this.transform_key_count = 0;\r\n }\r\n\r\n ShapeTransformManager.prototype = {\r\n addTransformSequence: function addTransformSequence(transforms) {\r\n var i;\r\n var len = transforms.length;\r\n var key = '_';\r\n\r\n for (i = 0; i < len; i += 1) {\r\n key += transforms[i].transform.key + '_';\r\n }\r\n\r\n var sequence = this.sequences[key];\r\n\r\n if (!sequence) {\r\n sequence = {\r\n transforms: [].concat(transforms),\r\n finalTransform: new Matrix(),\r\n _mdf: false\r\n };\r\n this.sequences[key] = sequence;\r\n this.sequenceList.push(sequence);\r\n }\r\n\r\n return sequence;\r\n },\r\n processSequence: function processSequence(sequence, isFirstFrame) {\r\n var i = 0;\r\n var len = sequence.transforms.length;\r\n var _mdf = isFirstFrame;\r\n\r\n while (i < len && !isFirstFrame) {\r\n if (sequence.transforms[i].transform.mProps._mdf) {\r\n _mdf = true;\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (_mdf) {\r\n var props;\r\n sequence.finalTransform.reset();\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n props = sequence.transforms[i].transform.mProps.v.props;\r\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]);\r\n }\r\n }\r\n\r\n sequence._mdf = _mdf;\r\n },\r\n processSequences: function processSequences(isFirstFrame) {\r\n var i;\r\n var len = this.sequenceList.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.processSequence(this.sequenceList[i], isFirstFrame);\r\n }\r\n },\r\n getNewKey: function getNewKey() {\r\n this.transform_key_count += 1;\r\n return '_' + this.transform_key_count;\r\n }\r\n };\r\n\r\n var lumaLoader = function lumaLoader() {\r\n var id = '__lottie_element_luma_buffer';\r\n var lumaBuffer = null;\r\n var lumaBufferCtx = null;\r\n var svg = null; // This alternate solution has a slight delay before the filter is applied, resulting in a flicker on the first frame.\r\n // Keeping this here for reference, and in the future, if offscreen canvas supports url filters, this can be used.\r\n // For now, neither of them work for offscreen canvas, so canvas workers can't support the luma track matte mask.\r\n // Naming it solution 2 to mark the extra comment lines.\r\n\r\n /*\r\n var svgString = [\r\n '',\r\n '',\r\n '',\r\n '',\r\n '',\r\n ].join('');\r\n var blob = new Blob([svgString], { type: 'image/svg+xml' });\r\n var url = URL.createObjectURL(blob);\r\n */\r\n\r\n function createLumaSvgFilter() {\r\n var _svg = createNS('svg');\r\n\r\n var fil = createNS('filter');\r\n var matrix = createNS('feColorMatrix');\r\n fil.setAttribute('id', id);\r\n matrix.setAttribute('type', 'matrix');\r\n matrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n matrix.setAttribute('values', '0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0');\r\n fil.appendChild(matrix);\r\n\r\n _svg.appendChild(fil);\r\n\r\n _svg.setAttribute('id', id + '_svg');\r\n\r\n if (featureSupport.svgLumaHidden) {\r\n _svg.style.display = 'none';\r\n }\r\n\r\n return _svg;\r\n }\r\n\r\n function loadLuma() {\r\n if (!lumaBuffer) {\r\n svg = createLumaSvgFilter();\r\n document.body.appendChild(svg);\r\n lumaBuffer = createTag('canvas');\r\n lumaBufferCtx = lumaBuffer.getContext('2d'); // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\r\n\r\n lumaBufferCtx.filter = 'url(#' + id + ')';\r\n lumaBufferCtx.fillStyle = 'rgba(0,0,0,0)';\r\n lumaBufferCtx.fillRect(0, 0, 1, 1);\r\n }\r\n }\r\n\r\n function getLuma(canvas) {\r\n if (!lumaBuffer) {\r\n loadLuma();\r\n }\r\n\r\n lumaBuffer.width = canvas.width;\r\n lumaBuffer.height = canvas.height; // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\r\n\r\n lumaBufferCtx.filter = 'url(#' + id + ')';\r\n return lumaBuffer;\r\n }\r\n\r\n return {\r\n load: loadLuma,\r\n get: getLuma\r\n };\r\n };\r\n\r\n function createCanvas(width, height) {\r\n if (featureSupport.offscreenCanvas) {\r\n return new OffscreenCanvas(width, height);\r\n }\r\n\r\n var canvas = createTag('canvas');\r\n canvas.width = width;\r\n canvas.height = height;\r\n return canvas;\r\n }\r\n\r\n var assetLoader = function () {\r\n return {\r\n loadLumaCanvas: lumaLoader.load,\r\n getLumaCanvas: lumaLoader.get,\r\n createCanvas: createCanvas\r\n };\r\n }();\r\n\r\n function CVEffects() {}\r\n\r\n CVEffects.prototype.renderFrame = function () {};\r\n\r\n function CVMaskElement(data, element) {\r\n this.data = data;\r\n this.element = element;\r\n this.masksProperties = this.data.masksProperties || [];\r\n this.viewData = createSizedArray(this.masksProperties.length);\r\n var i;\r\n var len = this.masksProperties.length;\r\n var hasMasks = false;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.masksProperties[i].mode !== 'n') {\r\n hasMasks = true;\r\n }\r\n\r\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\r\n }\r\n\r\n this.hasMasks = hasMasks;\r\n\r\n if (hasMasks) {\r\n this.element.addRenderableComponent(this);\r\n }\r\n }\r\n\r\n CVMaskElement.prototype.renderFrame = function () {\r\n if (!this.hasMasks) {\r\n return;\r\n }\r\n\r\n var transform = this.element.finalTransform.mat;\r\n var ctx = this.element.canvasContext;\r\n var i;\r\n var len = this.masksProperties.length;\r\n var pt;\r\n var pts;\r\n var data;\r\n ctx.beginPath();\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.masksProperties[i].mode !== 'n') {\r\n if (this.masksProperties[i].inv) {\r\n ctx.moveTo(0, 0);\r\n ctx.lineTo(this.element.globalData.compSize.w, 0);\r\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\r\n ctx.lineTo(0, this.element.globalData.compSize.h);\r\n ctx.lineTo(0, 0);\r\n }\r\n\r\n data = this.viewData[i].v;\r\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\r\n ctx.moveTo(pt[0], pt[1]);\r\n var j;\r\n var jLen = data._length;\r\n\r\n for (j = 1; j < jLen; j += 1) {\r\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\r\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\r\n }\r\n\r\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\r\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\r\n }\r\n }\r\n\r\n this.element.globalData.renderer.save(true);\r\n ctx.clip();\r\n };\r\n\r\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\r\n\r\n CVMaskElement.prototype.destroy = function () {\r\n this.element = null;\r\n };\r\n\r\n function CVBaseElement() {}\r\n\r\n var operationsMap = {\r\n 1: 'source-in',\r\n 2: 'source-out',\r\n 3: 'source-in',\r\n 4: 'source-out'\r\n };\r\n CVBaseElement.prototype = {\r\n createElements: function createElements() {},\r\n initRendererElement: function initRendererElement() {},\r\n createContainerElements: function createContainerElements() {\r\n // If the layer is masked we will use two buffers to store each different states of the drawing\r\n // This solution is not ideal for several reason. But unfortunately, because of the recursive\r\n // nature of the render tree, it's the only simple way to make sure one inner mask doesn't override an outer mask.\r\n // TODO: try to reduce the size of these buffers to the size of the composition contaning the layer\r\n // It might be challenging because the layer most likely is transformed in some way\r\n if (this.data.tt >= 1) {\r\n this.buffers = [];\r\n var canvasContext = this.globalData.canvasContext;\r\n var bufferCanvas = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\r\n this.buffers.push(bufferCanvas);\r\n var bufferCanvas2 = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\r\n this.buffers.push(bufferCanvas2);\r\n\r\n if (this.data.tt >= 3 && !document._isProxy) {\r\n assetLoader.loadLumaCanvas();\r\n }\r\n }\r\n\r\n this.canvasContext = this.globalData.canvasContext;\r\n this.transformCanvas = this.globalData.transformCanvas;\r\n this.renderableEffectsManager = new CVEffects(this);\r\n },\r\n createContent: function createContent() {},\r\n setBlendMode: function setBlendMode() {\r\n var globalData = this.globalData;\r\n\r\n if (globalData.blendMode !== this.data.bm) {\r\n globalData.blendMode = this.data.bm;\r\n var blendModeValue = getBlendMode(this.data.bm);\r\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\r\n }\r\n },\r\n createRenderableComponents: function createRenderableComponents() {\r\n this.maskManager = new CVMaskElement(this.data, this);\r\n },\r\n hideElement: function hideElement() {\r\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\r\n this.hidden = true;\r\n }\r\n },\r\n showElement: function showElement() {\r\n if (this.isInRange && !this.isTransparent) {\r\n this.hidden = false;\r\n this._isFirstFrame = true;\r\n this.maskManager._isFirstFrame = true;\r\n }\r\n },\r\n clearCanvas: function clearCanvas(canvasContext) {\r\n canvasContext.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w * this.transformCanvas.sx, this.transformCanvas.h * this.transformCanvas.sy);\r\n },\r\n prepareLayer: function prepareLayer() {\r\n if (this.data.tt >= 1) {\r\n var buffer = this.buffers[0];\r\n var bufferCtx = buffer.getContext('2d');\r\n this.clearCanvas(bufferCtx); // on the first buffer we store the current state of the global drawing\r\n\r\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // The next four lines are to clear the canvas\r\n // TODO: Check if there is a way to clear the canvas without resetting the transform\r\n\r\n this.currentTransform = this.canvasContext.getTransform();\r\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\r\n this.clearCanvas(this.canvasContext);\r\n this.canvasContext.setTransform(this.currentTransform);\r\n }\r\n },\r\n exitLayer: function exitLayer() {\r\n if (this.data.tt >= 1) {\r\n var buffer = this.buffers[1]; // On the second buffer we store the current state of the global drawing\r\n // that only contains the content of this layer\r\n // (if it is a composition, it also includes the nested layers)\r\n\r\n var bufferCtx = buffer.getContext('2d');\r\n this.clearCanvas(bufferCtx);\r\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // We clear the canvas again\r\n\r\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\r\n this.clearCanvas(this.canvasContext);\r\n this.canvasContext.setTransform(this.currentTransform); // We draw the mask\r\n\r\n var mask = this.comp.getElementById('tp' in this.data ? this.data.tp : this.data.ind - 1);\r\n mask.renderFrame(true); // We draw the second buffer (that contains the content of this layer)\r\n\r\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0); // If the mask is a Luma matte, we need to do two extra painting operations\r\n // the _isProxy check is to avoid drawing a fake canvas in workers that will throw an error\r\n\r\n if (this.data.tt >= 3 && !document._isProxy) {\r\n // We copy the painted mask to a buffer that has a color matrix filter applied to it\r\n // that applies the rgb values to the alpha channel\r\n var lumaBuffer = assetLoader.getLumaCanvas(this.canvasContext.canvas);\r\n var lumaBufferCtx = lumaBuffer.getContext('2d');\r\n lumaBufferCtx.drawImage(this.canvasContext.canvas, 0, 0);\r\n this.clearCanvas(this.canvasContext); // we repaint the context with the mask applied to it\r\n\r\n this.canvasContext.drawImage(lumaBuffer, 0, 0);\r\n }\r\n\r\n this.canvasContext.globalCompositeOperation = operationsMap[this.data.tt];\r\n this.canvasContext.drawImage(buffer, 0, 0); // We finally draw the first buffer (that contains the content of the global drawing)\r\n // We use destination-over to draw the global drawing below the current layer\r\n\r\n this.canvasContext.globalCompositeOperation = 'destination-over';\r\n this.canvasContext.drawImage(this.buffers[0], 0, 0);\r\n this.canvasContext.setTransform(this.currentTransform); // We reset the globalCompositeOperation to source-over, the standard type of operation\r\n\r\n this.canvasContext.globalCompositeOperation = 'source-over';\r\n }\r\n },\r\n renderFrame: function renderFrame(forceRender) {\r\n if (this.hidden || this.data.hd) {\r\n return;\r\n }\r\n\r\n if (this.data.td === 1 && !forceRender) {\r\n return;\r\n }\r\n\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.setBlendMode();\r\n var forceRealStack = this.data.ty === 0;\r\n this.prepareLayer();\r\n this.globalData.renderer.save(forceRealStack);\r\n this.globalData.renderer.ctxTransform(this.finalTransform.mat.props);\r\n this.globalData.renderer.ctxOpacity(this.finalTransform.mProp.o.v);\r\n this.renderInnerContent();\r\n this.globalData.renderer.restore(forceRealStack);\r\n this.exitLayer();\r\n\r\n if (this.maskManager.hasMasks) {\r\n this.globalData.renderer.restore(true);\r\n }\r\n\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n destroy: function destroy() {\r\n this.canvasContext = null;\r\n this.data = null;\r\n this.globalData = null;\r\n this.maskManager.destroy();\r\n },\r\n mHelper: new Matrix()\r\n };\r\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\r\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\r\n\r\n function CVShapeData(element, data, styles, transformsManager) {\r\n this.styledShapes = [];\r\n this.tr = [0, 0, 0, 0, 0, 0];\r\n var ty = 4;\r\n\r\n if (data.ty === 'rc') {\r\n ty = 5;\r\n } else if (data.ty === 'el') {\r\n ty = 6;\r\n } else if (data.ty === 'sr') {\r\n ty = 7;\r\n }\r\n\r\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\r\n var i;\r\n var len = styles.length;\r\n var styledShape;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!styles[i].closed) {\r\n styledShape = {\r\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\r\n trNodes: []\r\n };\r\n this.styledShapes.push(styledShape);\r\n styles[i].elements.push(styledShape);\r\n }\r\n }\r\n }\r\n\r\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\r\n\r\n function CVShapeElement(data, globalData, comp) {\r\n this.shapes = [];\r\n this.shapesData = data.shapes;\r\n this.stylesList = [];\r\n this.itemsData = [];\r\n this.prevViewData = [];\r\n this.shapeModifiers = [];\r\n this.processedElements = [];\r\n this.transformsManager = new ShapeTransformManager();\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\r\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\r\n CVShapeElement.prototype.transformHelper = {\r\n opacity: 1,\r\n _opMdf: false\r\n };\r\n CVShapeElement.prototype.dashResetter = [];\r\n\r\n CVShapeElement.prototype.createContent = function () {\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\r\n };\r\n\r\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\r\n var styleElem = {\r\n data: data,\r\n type: data.ty,\r\n preTransforms: this.transformsManager.addTransformSequence(transforms),\r\n transforms: [],\r\n elements: [],\r\n closed: data.hd === true\r\n };\r\n var elementData = {};\r\n\r\n if (data.ty === 'fl' || data.ty === 'st') {\r\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\r\n\r\n if (!elementData.c.k) {\r\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\r\n }\r\n } else if (data.ty === 'gf' || data.ty === 'gs') {\r\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\r\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\r\n elementData.h = PropertyFactory.getProp(this, data.h || {\r\n k: 0\r\n }, 0, 0.01, this);\r\n elementData.a = PropertyFactory.getProp(this, data.a || {\r\n k: 0\r\n }, 0, degToRads, this);\r\n elementData.g = new GradientProperty(this, data.g, this);\r\n }\r\n\r\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\r\n\r\n if (data.ty === 'st' || data.ty === 'gs') {\r\n styleElem.lc = lineCapEnum[data.lc || 2];\r\n styleElem.lj = lineJoinEnum[data.lj || 2];\r\n\r\n if (data.lj == 1) {\r\n // eslint-disable-line eqeqeq\r\n styleElem.ml = data.ml;\r\n }\r\n\r\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\r\n\r\n if (!elementData.w.k) {\r\n styleElem.wi = elementData.w.v;\r\n }\r\n\r\n if (data.d) {\r\n var d = new DashProperty(this, data.d, 'canvas', this);\r\n elementData.d = d;\r\n\r\n if (!elementData.d.k) {\r\n styleElem.da = elementData.d.dashArray;\r\n styleElem[\"do\"] = elementData.d.dashoffset[0];\r\n }\r\n }\r\n } else {\r\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\r\n }\r\n\r\n this.stylesList.push(styleElem);\r\n elementData.style = styleElem;\r\n return elementData;\r\n };\r\n\r\n CVShapeElement.prototype.createGroupElement = function () {\r\n var elementData = {\r\n it: [],\r\n prevViewData: []\r\n };\r\n return elementData;\r\n };\r\n\r\n CVShapeElement.prototype.createTransformElement = function (data) {\r\n var elementData = {\r\n transform: {\r\n opacity: 1,\r\n _opMdf: false,\r\n key: this.transformsManager.getNewKey(),\r\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\r\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\r\n }\r\n };\r\n return elementData;\r\n };\r\n\r\n CVShapeElement.prototype.createShapeElement = function (data) {\r\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\r\n this.shapes.push(elementData);\r\n this.addShapeToModifiers(elementData);\r\n return elementData;\r\n };\r\n\r\n CVShapeElement.prototype.reloadShapes = function () {\r\n this._isFirstFrame = true;\r\n var i;\r\n var len = this.itemsData.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.prevViewData[i] = this.itemsData[i];\r\n }\r\n\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\r\n len = this.dynamicProperties.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n }\r\n\r\n this.renderModifiers();\r\n this.transformsManager.processSequences(this._isFirstFrame);\r\n };\r\n\r\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\r\n var i;\r\n var len = this.stylesList.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!this.stylesList[i].closed) {\r\n this.stylesList[i].transforms.push(transform);\r\n }\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\r\n var i;\r\n var len = this.stylesList.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!this.stylesList[i].closed) {\r\n this.stylesList[i].transforms.pop();\r\n }\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.closeStyles = function (styles) {\r\n var i;\r\n var len = styles.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n styles[i].closed = true;\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\r\n var i;\r\n var len = arr.length - 1;\r\n var j;\r\n var jLen;\r\n var ownStyles = [];\r\n var ownModifiers = [];\r\n var processedPos;\r\n var modifier;\r\n var currentTransform;\r\n var ownTransforms = [].concat(transforms);\r\n\r\n for (i = len; i >= 0; i -= 1) {\r\n processedPos = this.searchProcessedElement(arr[i]);\r\n\r\n if (!processedPos) {\r\n arr[i]._shouldRender = shouldRender;\r\n } else {\r\n itemsData[i] = prevViewData[processedPos - 1];\r\n }\r\n\r\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\r\n } else {\r\n itemsData[i].style.closed = false;\r\n }\r\n\r\n ownStyles.push(itemsData[i].style);\r\n } else if (arr[i].ty === 'gr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createGroupElement(arr[i]);\r\n } else {\r\n jLen = itemsData[i].it.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\r\n }\r\n }\r\n\r\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\r\n } else if (arr[i].ty === 'tr') {\r\n if (!processedPos) {\r\n currentTransform = this.createTransformElement(arr[i]);\r\n itemsData[i] = currentTransform;\r\n }\r\n\r\n ownTransforms.push(itemsData[i]);\r\n this.addTransformToStyleList(itemsData[i]);\r\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createShapeElement(arr[i]);\r\n }\r\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n modifier.init(this, arr[i]);\r\n itemsData[i] = modifier;\r\n this.shapeModifiers.push(modifier);\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = false;\r\n }\r\n\r\n ownModifiers.push(modifier);\r\n } else if (arr[i].ty === 'rp') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n itemsData[i] = modifier;\r\n modifier.init(this, arr, i, itemsData);\r\n this.shapeModifiers.push(modifier);\r\n shouldRender = false;\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = true;\r\n }\r\n\r\n ownModifiers.push(modifier);\r\n }\r\n\r\n this.addProcessedElement(arr[i], i + 1);\r\n }\r\n\r\n this.removeTransformFromStyleList();\r\n this.closeStyles(ownStyles);\r\n len = ownModifiers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ownModifiers[i].closed = true;\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.renderInnerContent = function () {\r\n this.transformHelper.opacity = 1;\r\n this.transformHelper._opMdf = false;\r\n this.renderModifiers();\r\n this.transformsManager.processSequences(this._isFirstFrame);\r\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\r\n };\r\n\r\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\r\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\r\n groupTransform.opacity = parentTransform.opacity;\r\n groupTransform.opacity *= groupTransform.op.v;\r\n groupTransform._opMdf = true;\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.drawLayer = function () {\r\n var i;\r\n var len = this.stylesList.length;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n var elems;\r\n var nodes;\r\n var renderer = this.globalData.renderer;\r\n var ctx = this.globalData.canvasContext;\r\n var type;\r\n var currentStyle;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n currentStyle = this.stylesList[i];\r\n type = currentStyle.type; // Skipping style when\r\n // Stroke width equals 0\r\n // style should not be rendered (extra unused repeaters)\r\n // current opacity equals 0\r\n // global opacity equals 0\r\n\r\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\r\n renderer.save();\r\n elems = currentStyle.elements;\r\n\r\n if (type === 'st' || type === 'gs') {\r\n ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\r\n ctx.lineWidth = currentStyle.wi;\r\n ctx.lineCap = currentStyle.lc;\r\n ctx.lineJoin = currentStyle.lj;\r\n ctx.miterLimit = currentStyle.ml || 0;\r\n } else {\r\n ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\r\n }\r\n\r\n renderer.ctxOpacity(currentStyle.coOp);\r\n\r\n if (type !== 'st' && type !== 'gs') {\r\n ctx.beginPath();\r\n }\r\n\r\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\r\n jLen = elems.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (type === 'st' || type === 'gs') {\r\n ctx.beginPath();\r\n\r\n if (currentStyle.da) {\r\n ctx.setLineDash(currentStyle.da);\r\n ctx.lineDashOffset = currentStyle[\"do\"];\r\n }\r\n }\r\n\r\n nodes = elems[j].trNodes;\r\n kLen = nodes.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n if (nodes[k].t === 'm') {\r\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\r\n } else if (nodes[k].t === 'c') {\r\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]);\r\n } else {\r\n ctx.closePath();\r\n }\r\n }\r\n\r\n if (type === 'st' || type === 'gs') {\r\n ctx.stroke();\r\n\r\n if (currentStyle.da) {\r\n ctx.setLineDash(this.dashResetter);\r\n }\r\n }\r\n }\r\n\r\n if (type !== 'st' && type !== 'gs') {\r\n ctx.fill(currentStyle.r);\r\n }\r\n\r\n renderer.restore();\r\n }\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\r\n var i;\r\n var len = items.length - 1;\r\n var groupTransform;\r\n groupTransform = parentTransform;\r\n\r\n for (i = len; i >= 0; i -= 1) {\r\n if (items[i].ty === 'tr') {\r\n groupTransform = data[i].transform;\r\n this.renderShapeTransform(parentTransform, groupTransform);\r\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\r\n this.renderPath(items[i], data[i]);\r\n } else if (items[i].ty === 'fl') {\r\n this.renderFill(items[i], data[i], groupTransform);\r\n } else if (items[i].ty === 'st') {\r\n this.renderStroke(items[i], data[i], groupTransform);\r\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\r\n this.renderGradientFill(items[i], data[i], groupTransform);\r\n } else if (items[i].ty === 'gr') {\r\n this.renderShape(groupTransform, items[i].it, data[i].it);\r\n } else if (items[i].ty === 'tm') {//\r\n }\r\n }\r\n\r\n if (isMain) {\r\n this.drawLayer();\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\r\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\r\n var shapeNodes = styledShape.trNodes;\r\n var paths = shape.paths;\r\n var i;\r\n var len;\r\n var j;\r\n var jLen = paths._length;\r\n shapeNodes.length = 0;\r\n var groupTransformMat = styledShape.transforms.finalTransform;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n var pathNodes = paths.shapes[j];\r\n\r\n if (pathNodes && pathNodes.v) {\r\n len = pathNodes._length;\r\n\r\n for (i = 1; i < len; i += 1) {\r\n if (i === 1) {\r\n shapeNodes.push({\r\n t: 'm',\r\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\r\n });\r\n }\r\n\r\n shapeNodes.push({\r\n t: 'c',\r\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\r\n });\r\n }\r\n\r\n if (len === 1) {\r\n shapeNodes.push({\r\n t: 'm',\r\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\r\n });\r\n }\r\n\r\n if (pathNodes.c && len) {\r\n shapeNodes.push({\r\n t: 'c',\r\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\r\n });\r\n shapeNodes.push({\r\n t: 'z'\r\n });\r\n }\r\n }\r\n }\r\n\r\n styledShape.trNodes = shapeNodes;\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\r\n if (pathData.hd !== true && pathData._shouldRender) {\r\n var i;\r\n var len = itemData.styledShapes.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\r\n }\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\r\n var styleElem = itemData.style;\r\n\r\n if (itemData.c._mdf || this._isFirstFrame) {\r\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\r\n }\r\n\r\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\r\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\r\n var styleElem = itemData.style;\r\n var grd;\r\n\r\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\r\n var ctx = this.globalData.canvasContext;\r\n var pt1 = itemData.s.v;\r\n var pt2 = itemData.e.v;\r\n\r\n if (styleData.t === 1) {\r\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\r\n } else {\r\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\r\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\r\n var percent = itemData.h.v;\r\n\r\n if (percent >= 1) {\r\n percent = 0.99;\r\n } else if (percent <= -1) {\r\n percent = -0.99;\r\n }\r\n\r\n var dist = rad * percent;\r\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\r\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\r\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\r\n }\r\n\r\n var i;\r\n var len = styleData.g.p;\r\n var cValues = itemData.g.c;\r\n var opacity = 1;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\r\n opacity = itemData.g.o[i * 2 + 1];\r\n }\r\n\r\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\r\n }\r\n\r\n styleElem.grd = grd;\r\n }\r\n\r\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\r\n };\r\n\r\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\r\n var styleElem = itemData.style;\r\n var d = itemData.d;\r\n\r\n if (d && (d._mdf || this._isFirstFrame)) {\r\n styleElem.da = d.dashArray;\r\n styleElem[\"do\"] = d.dashoffset[0];\r\n }\r\n\r\n if (itemData.c._mdf || this._isFirstFrame) {\r\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\r\n }\r\n\r\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\r\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\r\n }\r\n\r\n if (itemData.w._mdf || this._isFirstFrame) {\r\n styleElem.wi = itemData.w.v;\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.destroy = function () {\r\n this.shapesData = null;\r\n this.globalData = null;\r\n this.canvasContext = null;\r\n this.stylesList.length = 0;\r\n this.itemsData.length = 0;\r\n };\r\n\r\n function CVTextElement(data, globalData, comp) {\r\n this.textSpans = [];\r\n this.yOffset = 0;\r\n this.fillColorAnim = false;\r\n this.strokeColorAnim = false;\r\n this.strokeWidthAnim = false;\r\n this.stroke = false;\r\n this.fill = false;\r\n this.justifyOffset = 0;\r\n this.currentRender = null;\r\n this.renderType = 'canvas';\r\n this.values = {\r\n fill: 'rgba(0,0,0,0)',\r\n stroke: 'rgba(0,0,0,0)',\r\n sWidth: 0,\r\n fValue: ''\r\n };\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\r\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\r\n\r\n CVTextElement.prototype.buildNewText = function () {\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\r\n var hasFill = false;\r\n\r\n if (documentData.fc) {\r\n hasFill = true;\r\n this.values.fill = this.buildColor(documentData.fc);\r\n } else {\r\n this.values.fill = 'rgba(0,0,0,0)';\r\n }\r\n\r\n this.fill = hasFill;\r\n var hasStroke = false;\r\n\r\n if (documentData.sc) {\r\n hasStroke = true;\r\n this.values.stroke = this.buildColor(documentData.sc);\r\n this.values.sWidth = documentData.sw;\r\n }\r\n\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n var i;\r\n var len;\r\n var letters = documentData.l;\r\n var matrixHelper = this.mHelper;\r\n this.stroke = hasStroke;\r\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\r\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\r\n\r\n var charData;\r\n var shapeData;\r\n var k;\r\n var kLen;\r\n var shapes;\r\n var j;\r\n var jLen;\r\n var pathNodes;\r\n var commands;\r\n var pathArr;\r\n var singleShape = this.data.singleShape;\r\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\r\n var xPos = 0;\r\n var yPos = 0;\r\n var firstLine = true;\r\n var cnt = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n shapeData = charData && charData.data || {};\r\n matrixHelper.reset();\r\n\r\n if (singleShape && letters[i].n) {\r\n xPos = -trackingOffset;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n firstLine = false;\r\n }\r\n\r\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\r\n jLen = shapes.length;\r\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\r\n\r\n if (singleShape) {\r\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\r\n }\r\n\r\n commands = createSizedArray(jLen - 1);\r\n var commandsCounter = 0;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (shapes[j].ty === 'sh') {\r\n kLen = shapes[j].ks.k.i.length;\r\n pathNodes = shapes[j].ks.k;\r\n pathArr = [];\r\n\r\n for (k = 1; k < kLen; k += 1) {\r\n if (k === 1) {\r\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));\r\n }\r\n\r\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));\r\n }\r\n\r\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));\r\n commands[commandsCounter] = pathArr;\r\n commandsCounter += 1;\r\n }\r\n }\r\n\r\n if (singleShape) {\r\n xPos += letters[i].l;\r\n xPos += trackingOffset;\r\n }\r\n\r\n if (this.textSpans[cnt]) {\r\n this.textSpans[cnt].elem = commands;\r\n } else {\r\n this.textSpans[cnt] = {\r\n elem: commands\r\n };\r\n }\r\n\r\n cnt += 1;\r\n }\r\n };\r\n\r\n CVTextElement.prototype.renderInnerContent = function () {\r\n var ctx = this.canvasContext;\r\n ctx.font = this.values.fValue;\r\n ctx.lineCap = 'butt';\r\n ctx.lineJoin = 'miter';\r\n ctx.miterLimit = 4;\r\n\r\n if (!this.data.singleShape) {\r\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\r\n }\r\n\r\n var i;\r\n var len;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n var letters = this.textProperty.currentData.l;\r\n len = letters.length;\r\n var renderedLetter;\r\n var lastFill = null;\r\n var lastStroke = null;\r\n var lastStrokeW = null;\r\n var commands;\r\n var pathArr;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!letters[i].n) {\r\n renderedLetter = renderedLetters[i];\r\n\r\n if (renderedLetter) {\r\n this.globalData.renderer.save();\r\n this.globalData.renderer.ctxTransform(renderedLetter.p);\r\n this.globalData.renderer.ctxOpacity(renderedLetter.o);\r\n }\r\n\r\n if (this.fill) {\r\n if (renderedLetter && renderedLetter.fc) {\r\n if (lastFill !== renderedLetter.fc) {\r\n lastFill = renderedLetter.fc;\r\n ctx.fillStyle = renderedLetter.fc;\r\n }\r\n } else if (lastFill !== this.values.fill) {\r\n lastFill = this.values.fill;\r\n ctx.fillStyle = this.values.fill;\r\n }\r\n\r\n commands = this.textSpans[i].elem;\r\n jLen = commands.length;\r\n this.globalData.canvasContext.beginPath();\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n pathArr = commands[j];\r\n kLen = pathArr.length;\r\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\r\n\r\n for (k = 2; k < kLen; k += 6) {\r\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\r\n }\r\n }\r\n\r\n this.globalData.canvasContext.closePath();\r\n this.globalData.canvasContext.fill(); /// ctx.fillText(this.textSpans[i].val,0,0);\r\n }\r\n\r\n if (this.stroke) {\r\n if (renderedLetter && renderedLetter.sw) {\r\n if (lastStrokeW !== renderedLetter.sw) {\r\n lastStrokeW = renderedLetter.sw;\r\n ctx.lineWidth = renderedLetter.sw;\r\n }\r\n } else if (lastStrokeW !== this.values.sWidth) {\r\n lastStrokeW = this.values.sWidth;\r\n ctx.lineWidth = this.values.sWidth;\r\n }\r\n\r\n if (renderedLetter && renderedLetter.sc) {\r\n if (lastStroke !== renderedLetter.sc) {\r\n lastStroke = renderedLetter.sc;\r\n ctx.strokeStyle = renderedLetter.sc;\r\n }\r\n } else if (lastStroke !== this.values.stroke) {\r\n lastStroke = this.values.stroke;\r\n ctx.strokeStyle = this.values.stroke;\r\n }\r\n\r\n commands = this.textSpans[i].elem;\r\n jLen = commands.length;\r\n this.globalData.canvasContext.beginPath();\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n pathArr = commands[j];\r\n kLen = pathArr.length;\r\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\r\n\r\n for (k = 2; k < kLen; k += 6) {\r\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\r\n }\r\n }\r\n\r\n this.globalData.canvasContext.closePath();\r\n this.globalData.canvasContext.stroke(); /// ctx.strokeText(letters[i].val,0,0);\r\n }\r\n\r\n if (renderedLetter) {\r\n this.globalData.renderer.restore();\r\n }\r\n }\r\n }\r\n };\r\n\r\n function CVImageElement(data, globalData, comp) {\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.img = globalData.imageLoader.getAsset(this.assetData);\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\r\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\r\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\r\n\r\n CVImageElement.prototype.createContent = function () {\r\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\r\n var canvas = createTag('canvas');\r\n canvas.width = this.assetData.w;\r\n canvas.height = this.assetData.h;\r\n var ctx = canvas.getContext('2d');\r\n var imgW = this.img.width;\r\n var imgH = this.img.height;\r\n var imgRel = imgW / imgH;\r\n var canvasRel = this.assetData.w / this.assetData.h;\r\n var widthCrop;\r\n var heightCrop;\r\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\r\n\r\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\r\n heightCrop = imgH;\r\n widthCrop = heightCrop * canvasRel;\r\n } else {\r\n widthCrop = imgW;\r\n heightCrop = widthCrop / canvasRel;\r\n }\r\n\r\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\r\n this.img = canvas;\r\n }\r\n };\r\n\r\n CVImageElement.prototype.renderInnerContent = function () {\r\n this.canvasContext.drawImage(this.img, 0, 0);\r\n };\r\n\r\n CVImageElement.prototype.destroy = function () {\r\n this.img = null;\r\n };\r\n\r\n function CVSolidElement(data, globalData, comp) {\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\r\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\r\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\r\n\r\n CVSolidElement.prototype.renderInnerContent = function () {\r\n var ctx = this.canvasContext;\r\n ctx.fillStyle = this.data.sc;\r\n ctx.fillRect(0, 0, this.data.sw, this.data.sh); //\r\n };\r\n\r\n function CanvasRendererBase(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.renderConfig = {\r\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\r\n context: config && config.context || null,\r\n progressiveLoad: config && config.progressiveLoad || false,\r\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\r\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\r\n contentVisibility: config && config.contentVisibility || 'visible',\r\n className: config && config.className || '',\r\n id: config && config.id || ''\r\n };\r\n this.renderConfig.dpr = config && config.dpr || 1;\r\n\r\n if (this.animationItem.wrapper) {\r\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\r\n }\r\n\r\n this.renderedFrame = -1;\r\n this.globalData = {\r\n frameNum: -1,\r\n _mdf: false,\r\n renderConfig: this.renderConfig,\r\n currentGlobalAlpha: -1\r\n };\r\n this.contextData = new CVContextData();\r\n this.elements = [];\r\n this.pendingElements = [];\r\n this.transformMat = new Matrix();\r\n this.completeLayers = false;\r\n this.rendererType = 'canvas';\r\n }\r\n\r\n extendPrototype([BaseRenderer], CanvasRendererBase);\r\n\r\n CanvasRendererBase.prototype.createShape = function (data) {\r\n return new CVShapeElement(data, this.globalData, this);\r\n };\r\n\r\n CanvasRendererBase.prototype.createText = function (data) {\r\n return new CVTextElement(data, this.globalData, this);\r\n };\r\n\r\n CanvasRendererBase.prototype.createImage = function (data) {\r\n return new CVImageElement(data, this.globalData, this);\r\n };\r\n\r\n CanvasRendererBase.prototype.createSolid = function (data) {\r\n return new CVSolidElement(data, this.globalData, this);\r\n };\r\n\r\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\r\n\r\n CanvasRendererBase.prototype.ctxTransform = function (props) {\r\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\r\n return;\r\n }\r\n\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\r\n return;\r\n } // Resetting the canvas transform matrix to the new transform\r\n\r\n\r\n this.transformMat.cloneFromProps(props); // Taking the last transform value from the stored stack of transforms\r\n\r\n var currentTransform = this.contextData.getTransform();\r\n var cProps = currentTransform.props; // Applying the last transform value after the new transform to respect the order of transformations\r\n\r\n this.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]); // Storing the new transformed value in the stored transform\r\n\r\n currentTransform.cloneFromProps(this.transformMat.props);\r\n var trProps = currentTransform.props; // Applying the new transform to the canvas\r\n\r\n this.canvasContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\r\n };\r\n\r\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\r\n /* if(op === 1){\r\n return;\r\n } */\r\n var currentOpacity = this.contextData.getOpacity();\r\n\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\r\n this.globalData.currentGlobalAlpha = currentOpacity;\r\n return;\r\n }\r\n\r\n currentOpacity *= op < 0 ? 0 : op;\r\n this.contextData.setOpacity(currentOpacity);\r\n\r\n if (this.globalData.currentGlobalAlpha !== currentOpacity) {\r\n this.canvasContext.globalAlpha = currentOpacity;\r\n this.globalData.currentGlobalAlpha = currentOpacity;\r\n }\r\n };\r\n\r\n CanvasRendererBase.prototype.reset = function () {\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.restore();\r\n return;\r\n }\r\n\r\n this.contextData.reset();\r\n };\r\n\r\n CanvasRendererBase.prototype.save = function (actionFlag) {\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.save();\r\n return;\r\n }\r\n\r\n if (actionFlag) {\r\n this.canvasContext.save();\r\n }\r\n\r\n this.contextData.push();\r\n };\r\n\r\n CanvasRendererBase.prototype.restore = function (actionFlag) {\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.restore();\r\n return;\r\n }\r\n\r\n if (actionFlag) {\r\n this.canvasContext.restore();\r\n this.globalData.blendMode = 'source-over';\r\n }\r\n\r\n var popped = this.contextData.pop();\r\n var transform = popped.transform;\r\n var opacity = popped.opacity;\r\n this.canvasContext.setTransform(transform[0], transform[1], transform[4], transform[5], transform[12], transform[13]);\r\n\r\n if (this.globalData.currentGlobalAlpha !== opacity) {\r\n this.canvasContext.globalAlpha = opacity;\r\n this.globalData.currentGlobalAlpha = opacity;\r\n }\r\n };\r\n\r\n CanvasRendererBase.prototype.configAnimation = function (animData) {\r\n if (this.animationItem.wrapper) {\r\n this.animationItem.container = createTag('canvas');\r\n var containerStyle = this.animationItem.container.style;\r\n containerStyle.width = '100%';\r\n containerStyle.height = '100%';\r\n var origin = '0px 0px 0px';\r\n containerStyle.transformOrigin = origin;\r\n containerStyle.mozTransformOrigin = origin;\r\n containerStyle.webkitTransformOrigin = origin;\r\n containerStyle['-webkit-transform'] = origin;\r\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\r\n this.animationItem.wrapper.appendChild(this.animationItem.container);\r\n this.canvasContext = this.animationItem.container.getContext('2d');\r\n\r\n if (this.renderConfig.className) {\r\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\r\n }\r\n\r\n if (this.renderConfig.id) {\r\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\r\n }\r\n } else {\r\n this.canvasContext = this.renderConfig.context;\r\n }\r\n\r\n this.data = animData;\r\n this.layers = animData.layers;\r\n this.transformCanvas = {\r\n w: animData.w,\r\n h: animData.h,\r\n sx: 0,\r\n sy: 0,\r\n tx: 0,\r\n ty: 0\r\n };\r\n this.setupGlobalData(animData, document.body);\r\n this.globalData.canvasContext = this.canvasContext;\r\n this.globalData.renderer = this;\r\n this.globalData.isDashed = false;\r\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\r\n this.globalData.transformCanvas = this.transformCanvas;\r\n this.elements = createSizedArray(animData.layers.length);\r\n this.updateContainerSize();\r\n };\r\n\r\n CanvasRendererBase.prototype.updateContainerSize = function (width, height) {\r\n this.reset();\r\n var elementWidth;\r\n var elementHeight;\r\n\r\n if (width) {\r\n elementWidth = width;\r\n elementHeight = height;\r\n this.canvasContext.canvas.width = elementWidth;\r\n this.canvasContext.canvas.height = elementHeight;\r\n } else {\r\n if (this.animationItem.wrapper && this.animationItem.container) {\r\n elementWidth = this.animationItem.wrapper.offsetWidth;\r\n elementHeight = this.animationItem.wrapper.offsetHeight;\r\n } else {\r\n elementWidth = this.canvasContext.canvas.width;\r\n elementHeight = this.canvasContext.canvas.height;\r\n }\r\n\r\n this.canvasContext.canvas.width = elementWidth * this.renderConfig.dpr;\r\n this.canvasContext.canvas.height = elementHeight * this.renderConfig.dpr;\r\n }\r\n\r\n var elementRel;\r\n var animationRel;\r\n\r\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\r\n var par = this.renderConfig.preserveAspectRatio.split(' ');\r\n var fillType = par[1] || 'meet';\r\n var pos = par[0] || 'xMidYMid';\r\n var xPos = pos.substr(0, 4);\r\n var yPos = pos.substr(4);\r\n elementRel = elementWidth / elementHeight;\r\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\r\n\r\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\r\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\r\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\r\n } else {\r\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\r\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\r\n }\r\n\r\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\r\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\r\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\r\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\r\n } else {\r\n this.transformCanvas.tx = 0;\r\n }\r\n\r\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\r\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\r\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\r\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\r\n } else {\r\n this.transformCanvas.ty = 0;\r\n }\r\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\r\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\r\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\r\n this.transformCanvas.tx = 0;\r\n this.transformCanvas.ty = 0;\r\n } else {\r\n this.transformCanvas.sx = this.renderConfig.dpr;\r\n this.transformCanvas.sy = this.renderConfig.dpr;\r\n this.transformCanvas.tx = 0;\r\n this.transformCanvas.ty = 0;\r\n }\r\n\r\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\r\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n\r\n this.elements.length = 0;\r\n this.globalData.canvasContext = null;\r\n this.animationItem.container = null;\r\n this.destroyed = true;\r\n };\r\n\r\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\r\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\r\n return;\r\n }\r\n\r\n this.renderedFrame = num;\r\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\r\n this.globalData.frameId += 1;\r\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\r\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\r\n // console.log('NEW: ',num);\r\n\r\n var i;\r\n var len = this.layers.length;\r\n\r\n if (!this.completeLayers) {\r\n this.checkLayers(num);\r\n }\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].prepareFrame(num - this.layers[i].st);\r\n }\r\n }\r\n\r\n if (this.globalData._mdf) {\r\n if (this.renderConfig.clearCanvas === true) {\r\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\r\n } else {\r\n this.save();\r\n }\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n\r\n if (this.renderConfig.clearCanvas !== true) {\r\n this.restore();\r\n }\r\n }\r\n };\r\n\r\n CanvasRendererBase.prototype.buildItem = function (pos) {\r\n var elements = this.elements;\r\n\r\n if (elements[pos] || this.layers[pos].ty === 99) {\r\n return;\r\n }\r\n\r\n var element = this.createItem(this.layers[pos], this, this.globalData);\r\n elements[pos] = element;\r\n element.initExpressions();\r\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\r\n };\r\n\r\n CanvasRendererBase.prototype.checkPendingElements = function () {\r\n while (this.pendingElements.length) {\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n }\r\n };\r\n\r\n CanvasRendererBase.prototype.hide = function () {\r\n this.animationItem.container.style.display = 'none';\r\n };\r\n\r\n CanvasRendererBase.prototype.show = function () {\r\n this.animationItem.container.style.display = 'block';\r\n };\r\n\r\n function CVCompElement(data, globalData, comp) {\r\n this.completeLayers = false;\r\n this.layers = data.layers;\r\n this.pendingElements = [];\r\n this.elements = createSizedArray(this.layers.length);\r\n this.initElement(data, globalData, comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\r\n _placeholder: true\r\n };\r\n }\r\n\r\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\r\n\r\n CVCompElement.prototype.renderInnerContent = function () {\r\n var ctx = this.canvasContext;\r\n ctx.beginPath();\r\n ctx.moveTo(0, 0);\r\n ctx.lineTo(this.data.w, 0);\r\n ctx.lineTo(this.data.w, this.data.h);\r\n ctx.lineTo(0, this.data.h);\r\n ctx.lineTo(0, 0);\r\n ctx.clip();\r\n var i;\r\n var len = this.layers.length;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n };\r\n\r\n CVCompElement.prototype.destroy = function () {\r\n var i;\r\n var len = this.layers.length;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n\r\n this.layers = null;\r\n this.elements = null;\r\n };\r\n\r\n CVCompElement.prototype.createComp = function (data) {\r\n return new CVCompElement(data, this.globalData, this);\r\n };\r\n\r\n function CanvasRenderer(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.renderConfig = {\r\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\r\n context: config && config.context || null,\r\n progressiveLoad: config && config.progressiveLoad || false,\r\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\r\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\r\n contentVisibility: config && config.contentVisibility || 'visible',\r\n className: config && config.className || '',\r\n id: config && config.id || '',\r\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\r\n };\r\n this.renderConfig.dpr = config && config.dpr || 1;\r\n\r\n if (this.animationItem.wrapper) {\r\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\r\n }\r\n\r\n this.renderedFrame = -1;\r\n this.globalData = {\r\n frameNum: -1,\r\n _mdf: false,\r\n renderConfig: this.renderConfig,\r\n currentGlobalAlpha: -1\r\n };\r\n this.contextData = new CVContextData();\r\n this.elements = [];\r\n this.pendingElements = [];\r\n this.transformMat = new Matrix();\r\n this.completeLayers = false;\r\n this.rendererType = 'canvas';\r\n }\r\n\r\n extendPrototype([CanvasRendererBase], CanvasRenderer);\r\n\r\n CanvasRenderer.prototype.createComp = function (data) {\r\n return new CVCompElement(data, this.globalData, this);\r\n };\r\n\r\n function HBaseElement() {}\r\n\r\n HBaseElement.prototype = {\r\n checkBlendMode: function checkBlendMode() {},\r\n initRendererElement: function initRendererElement() {\r\n this.baseElement = createTag(this.data.tg || 'div');\r\n\r\n if (this.data.hasMask) {\r\n this.svgElement = createNS('svg');\r\n this.layerElement = createNS('g');\r\n this.maskedElement = this.layerElement;\r\n this.svgElement.appendChild(this.layerElement);\r\n this.baseElement.appendChild(this.svgElement);\r\n } else {\r\n this.layerElement = this.baseElement;\r\n }\r\n\r\n styleDiv(this.baseElement);\r\n },\r\n createContainerElements: function createContainerElements() {\r\n this.renderableEffectsManager = new CVEffects(this);\r\n this.transformedElement = this.baseElement;\r\n this.maskedElement = this.layerElement;\r\n\r\n if (this.data.ln) {\r\n this.layerElement.setAttribute('id', this.data.ln);\r\n }\r\n\r\n if (this.data.cl) {\r\n this.layerElement.setAttribute('class', this.data.cl);\r\n }\r\n\r\n if (this.data.bm !== 0) {\r\n this.setBlendMode();\r\n }\r\n },\r\n renderElement: function renderElement() {\r\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\r\n\r\n if (this.finalTransform._matMdf) {\r\n var matrixValue = this.finalTransform.mat.toCSS();\r\n transformedElementStyle.transform = matrixValue;\r\n transformedElementStyle.webkitTransform = matrixValue;\r\n }\r\n\r\n if (this.finalTransform._opMdf) {\r\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\r\n }\r\n },\r\n renderFrame: function renderFrame() {\r\n // If it is exported as hidden (data.hd === true) no need to render\r\n // If it is not visible no need to render\r\n if (this.data.hd || this.hidden) {\r\n return;\r\n }\r\n\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.renderElement();\r\n this.renderInnerContent();\r\n\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n destroy: function destroy() {\r\n this.layerElement = null;\r\n this.transformedElement = null;\r\n\r\n if (this.matteElement) {\r\n this.matteElement = null;\r\n }\r\n\r\n if (this.maskManager) {\r\n this.maskManager.destroy();\r\n this.maskManager = null;\r\n }\r\n },\r\n createRenderableComponents: function createRenderableComponents() {\r\n this.maskManager = new MaskElement(this.data, this, this.globalData);\r\n },\r\n addEffects: function addEffects() {},\r\n setMatte: function setMatte() {}\r\n };\r\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\r\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\r\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\r\n\r\n function HSolidElement(data, globalData, comp) {\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\r\n\r\n HSolidElement.prototype.createContent = function () {\r\n var rect;\r\n\r\n if (this.data.hasMask) {\r\n rect = createNS('rect');\r\n rect.setAttribute('width', this.data.sw);\r\n rect.setAttribute('height', this.data.sh);\r\n rect.setAttribute('fill', this.data.sc);\r\n this.svgElement.setAttribute('width', this.data.sw);\r\n this.svgElement.setAttribute('height', this.data.sh);\r\n } else {\r\n rect = createTag('div');\r\n rect.style.width = this.data.sw + 'px';\r\n rect.style.height = this.data.sh + 'px';\r\n rect.style.backgroundColor = this.data.sc;\r\n }\r\n\r\n this.layerElement.appendChild(rect);\r\n };\r\n\r\n function HShapeElement(data, globalData, comp) {\r\n // List of drawable elements\r\n this.shapes = []; // Full shape data\r\n\r\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\r\n\r\n this.stylesList = []; // List of modifiers that will be applied to shapes\r\n\r\n this.shapeModifiers = []; // List of items in shape tree\r\n\r\n this.itemsData = []; // List of items in previous shape tree\r\n\r\n this.processedElements = []; // List of animated components\r\n\r\n this.animatedContents = [];\r\n this.shapesContainer = createNS('g');\r\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.\r\n // List of elements that have been created\r\n\r\n this.prevViewData = [];\r\n this.currentBBox = {\r\n x: 999999,\r\n y: -999999,\r\n h: 0,\r\n w: 0\r\n };\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\r\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\r\n\r\n HShapeElement.prototype.createContent = function () {\r\n var cont;\r\n this.baseElement.style.fontSize = 0;\r\n\r\n if (this.data.hasMask) {\r\n this.layerElement.appendChild(this.shapesContainer);\r\n cont = this.svgElement;\r\n } else {\r\n cont = createNS('svg');\r\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\r\n cont.setAttribute('width', size.w);\r\n cont.setAttribute('height', size.h);\r\n cont.appendChild(this.shapesContainer);\r\n this.layerElement.appendChild(cont);\r\n }\r\n\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\r\n this.filterUniqueShapes();\r\n this.shapeCont = cont;\r\n };\r\n\r\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\r\n var i;\r\n var len = transformers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\r\n }\r\n\r\n return point;\r\n };\r\n\r\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\r\n var shape = item.sh.v;\r\n var transformers = item.transformers;\r\n var i;\r\n var len = shape._length;\r\n var vPoint;\r\n var oPoint;\r\n var nextIPoint;\r\n var nextVPoint;\r\n\r\n if (len <= 1) {\r\n return;\r\n }\r\n\r\n for (i = 0; i < len - 1; i += 1) {\r\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\r\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\r\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\r\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\r\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\r\n }\r\n\r\n if (shape.c) {\r\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\r\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\r\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\r\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\r\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\r\n }\r\n };\r\n\r\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\r\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\r\n var bounds = this.shapeBoundingBox;\r\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\r\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\r\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\r\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\r\n };\r\n\r\n HShapeElement.prototype.shapeBoundingBox = {\r\n left: 0,\r\n right: 0,\r\n top: 0,\r\n bottom: 0\r\n };\r\n HShapeElement.prototype.tempBoundingBox = {\r\n x: 0,\r\n xMax: 0,\r\n y: 0,\r\n yMax: 0,\r\n width: 0,\r\n height: 0\r\n };\r\n\r\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\r\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\r\n\r\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\r\n // eslint-disable-line no-plusplus\r\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\r\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\r\n c = 3 * p1[i] - 3 * p0[i];\r\n b |= 0; // eslint-disable-line no-bitwise\r\n\r\n a |= 0; // eslint-disable-line no-bitwise\r\n\r\n c |= 0; // eslint-disable-line no-bitwise\r\n\r\n if (a === 0 && b === 0) {//\r\n } else if (a === 0) {\r\n t = -c / b;\r\n\r\n if (t > 0 && t < 1) {\r\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\r\n }\r\n } else {\r\n b2ac = b * b - 4 * c * a;\r\n\r\n if (b2ac >= 0) {\r\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\r\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\r\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\r\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\r\n }\r\n }\r\n }\r\n\r\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\r\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\r\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\r\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\r\n };\r\n\r\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\r\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];\r\n };\r\n\r\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\r\n var i;\r\n var len = itemsData.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (itemsData[i] && itemsData[i].sh) {\r\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\r\n } else if (itemsData[i] && itemsData[i].it) {\r\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\r\n } else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\r\n this.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\r\n }\r\n }\r\n };\r\n\r\n HShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\r\n var width = 0;\r\n\r\n if (widthProperty.keyframes) {\r\n for (var i = 0; i < widthProperty.keyframes.length; i += 1) {\r\n var kfw = widthProperty.keyframes[i].s;\r\n\r\n if (kfw > width) {\r\n width = kfw;\r\n }\r\n }\r\n\r\n width *= widthProperty.mult;\r\n } else {\r\n width = widthProperty.v * widthProperty.mult;\r\n }\r\n\r\n boundingBox.x -= width;\r\n boundingBox.xMax += width;\r\n boundingBox.y -= width;\r\n boundingBox.yMax += width;\r\n };\r\n\r\n HShapeElement.prototype.currentBoxContains = function (box) {\r\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\r\n };\r\n\r\n HShapeElement.prototype.renderInnerContent = function () {\r\n this._renderShapeFrame();\r\n\r\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\r\n var tempBoundingBox = this.tempBoundingBox;\r\n var max = 999999;\r\n tempBoundingBox.x = max;\r\n tempBoundingBox.xMax = -max;\r\n tempBoundingBox.y = max;\r\n tempBoundingBox.yMax = -max;\r\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\r\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\r\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\r\n\r\n if (this.currentBoxContains(tempBoundingBox)) {\r\n return;\r\n }\r\n\r\n var changed = false;\r\n\r\n if (this.currentBBox.w !== tempBoundingBox.width) {\r\n this.currentBBox.w = tempBoundingBox.width;\r\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\r\n changed = true;\r\n }\r\n\r\n if (this.currentBBox.h !== tempBoundingBox.height) {\r\n this.currentBBox.h = tempBoundingBox.height;\r\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\r\n changed = true;\r\n }\r\n\r\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\r\n this.currentBBox.w = tempBoundingBox.width;\r\n this.currentBBox.h = tempBoundingBox.height;\r\n this.currentBBox.x = tempBoundingBox.x;\r\n this.currentBBox.y = tempBoundingBox.y;\r\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\r\n var shapeStyle = this.shapeCont.style;\r\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\r\n shapeStyle.transform = shapeTransform;\r\n shapeStyle.webkitTransform = shapeTransform;\r\n }\r\n }\r\n };\r\n\r\n function HTextElement(data, globalData, comp) {\r\n this.textSpans = [];\r\n this.textPaths = [];\r\n this.currentBBox = {\r\n x: 999999,\r\n y: -999999,\r\n h: 0,\r\n w: 0\r\n };\r\n this.renderType = 'svg';\r\n this.isMasked = false;\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\r\n\r\n HTextElement.prototype.createContent = function () {\r\n this.isMasked = this.checkMasks();\r\n\r\n if (this.isMasked) {\r\n this.renderType = 'svg';\r\n this.compW = this.comp.data.w;\r\n this.compH = this.comp.data.h;\r\n this.svgElement.setAttribute('width', this.compW);\r\n this.svgElement.setAttribute('height', this.compH);\r\n var g = createNS('g');\r\n this.maskedElement.appendChild(g);\r\n this.innerElem = g;\r\n } else {\r\n this.renderType = 'html';\r\n this.innerElem = this.layerElement;\r\n }\r\n\r\n this.checkParenting();\r\n };\r\n\r\n HTextElement.prototype.buildNewText = function () {\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\r\n var innerElemStyle = this.innerElem.style;\r\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\r\n innerElemStyle.fill = textColor;\r\n innerElemStyle.color = textColor;\r\n\r\n if (documentData.sc) {\r\n innerElemStyle.stroke = this.buildColor(documentData.sc);\r\n innerElemStyle.strokeWidth = documentData.sw + 'px';\r\n }\r\n\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n\r\n if (!this.globalData.fontManager.chars) {\r\n innerElemStyle.fontSize = documentData.finalSize + 'px';\r\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\r\n\r\n if (fontData.fClass) {\r\n this.innerElem.className = fontData.fClass;\r\n } else {\r\n innerElemStyle.fontFamily = fontData.fFamily;\r\n var fWeight = documentData.fWeight;\r\n var fStyle = documentData.fStyle;\r\n innerElemStyle.fontStyle = fStyle;\r\n innerElemStyle.fontWeight = fWeight;\r\n }\r\n }\r\n\r\n var i;\r\n var len;\r\n var letters = documentData.l;\r\n len = letters.length;\r\n var tSpan;\r\n var tParent;\r\n var tCont;\r\n var matrixHelper = this.mHelper;\r\n var shapes;\r\n var shapeStr = '';\r\n var cnt = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.globalData.fontManager.chars) {\r\n if (!this.textPaths[cnt]) {\r\n tSpan = createNS('path');\r\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\r\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\r\n tSpan.setAttribute('stroke-miterlimit', '4');\r\n } else {\r\n tSpan = this.textPaths[cnt];\r\n }\r\n\r\n if (!this.isMasked) {\r\n if (this.textSpans[cnt]) {\r\n tParent = this.textSpans[cnt];\r\n tCont = tParent.children[0];\r\n } else {\r\n tParent = createTag('div');\r\n tParent.style.lineHeight = 0;\r\n tCont = createNS('svg');\r\n tCont.appendChild(tSpan);\r\n styleDiv(tParent);\r\n }\r\n }\r\n } else if (!this.isMasked) {\r\n if (this.textSpans[cnt]) {\r\n tParent = this.textSpans[cnt];\r\n tSpan = this.textPaths[cnt];\r\n } else {\r\n tParent = createTag('span');\r\n styleDiv(tParent);\r\n tSpan = createTag('span');\r\n styleDiv(tSpan);\r\n tParent.appendChild(tSpan);\r\n }\r\n } else {\r\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\r\n } // tSpan.setAttribute('visibility', 'hidden');\r\n\r\n\r\n if (this.globalData.fontManager.chars) {\r\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n var shapeData;\r\n\r\n if (charData) {\r\n shapeData = charData.data;\r\n } else {\r\n shapeData = null;\r\n }\r\n\r\n matrixHelper.reset();\r\n\r\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\r\n shapes = shapeData.shapes[0].it;\r\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\r\n shapeStr = this.createPathShape(matrixHelper, shapes);\r\n tSpan.setAttribute('d', shapeStr);\r\n }\r\n\r\n if (!this.isMasked) {\r\n this.innerElem.appendChild(tParent);\r\n\r\n if (shapeData && shapeData.shapes) {\r\n // document.body.appendChild is needed to get exact measure of shape\r\n document.body.appendChild(tCont);\r\n var boundingBox = tCont.getBBox();\r\n tCont.setAttribute('width', boundingBox.width + 2);\r\n tCont.setAttribute('height', boundingBox.height + 2);\r\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\r\n var tContStyle = tCont.style;\r\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\r\n tContStyle.transform = tContTranslation;\r\n tContStyle.webkitTransform = tContTranslation;\r\n letters[i].yOffset = boundingBox.y - 1;\r\n } else {\r\n tCont.setAttribute('width', 1);\r\n tCont.setAttribute('height', 1);\r\n }\r\n\r\n tParent.appendChild(tCont);\r\n } else {\r\n this.innerElem.appendChild(tSpan);\r\n }\r\n } else {\r\n tSpan.textContent = letters[i].val;\r\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\r\n\r\n if (!this.isMasked) {\r\n this.innerElem.appendChild(tParent); //\r\n\r\n var tStyle = tSpan.style;\r\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\r\n tStyle.transform = tSpanTranslation;\r\n tStyle.webkitTransform = tSpanTranslation;\r\n } else {\r\n this.innerElem.appendChild(tSpan);\r\n }\r\n } //\r\n\r\n\r\n if (!this.isMasked) {\r\n this.textSpans[cnt] = tParent;\r\n } else {\r\n this.textSpans[cnt] = tSpan;\r\n }\r\n\r\n this.textSpans[cnt].style.display = 'block';\r\n this.textPaths[cnt] = tSpan;\r\n cnt += 1;\r\n }\r\n\r\n while (cnt < this.textSpans.length) {\r\n this.textSpans[cnt].style.display = 'none';\r\n cnt += 1;\r\n }\r\n };\r\n\r\n HTextElement.prototype.renderInnerContent = function () {\r\n var svgStyle;\r\n\r\n if (this.data.singleShape) {\r\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\r\n return;\r\n }\r\n\r\n if (this.isMasked && this.finalTransform._matMdf) {\r\n // Todo Benchmark if using this is better than getBBox\r\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\r\n svgStyle = this.svgElement.style;\r\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\r\n svgStyle.transform = translation;\r\n svgStyle.webkitTransform = translation;\r\n }\r\n }\r\n\r\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\r\n\r\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\r\n return;\r\n }\r\n\r\n var i;\r\n var len;\r\n var count = 0;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n var letters = this.textProperty.currentData.l;\r\n len = letters.length;\r\n var renderedLetter;\r\n var textSpan;\r\n var textPath;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (letters[i].n) {\r\n count += 1;\r\n } else {\r\n textSpan = this.textSpans[i];\r\n textPath = this.textPaths[i];\r\n renderedLetter = renderedLetters[count];\r\n count += 1;\r\n\r\n if (renderedLetter._mdf.m) {\r\n if (!this.isMasked) {\r\n textSpan.style.webkitTransform = renderedLetter.m;\r\n textSpan.style.transform = renderedLetter.m;\r\n } else {\r\n textSpan.setAttribute('transform', renderedLetter.m);\r\n }\r\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\r\n\r\n\r\n textSpan.style.opacity = renderedLetter.o;\r\n\r\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\r\n textPath.setAttribute('stroke-width', renderedLetter.sw);\r\n }\r\n\r\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\r\n textPath.setAttribute('stroke', renderedLetter.sc);\r\n }\r\n\r\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\r\n textPath.setAttribute('fill', renderedLetter.fc);\r\n textPath.style.color = renderedLetter.fc;\r\n }\r\n }\r\n }\r\n\r\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\r\n var boundingBox = this.innerElem.getBBox();\r\n\r\n if (this.currentBBox.w !== boundingBox.width) {\r\n this.currentBBox.w = boundingBox.width;\r\n this.svgElement.setAttribute('width', boundingBox.width);\r\n }\r\n\r\n if (this.currentBBox.h !== boundingBox.height) {\r\n this.currentBBox.h = boundingBox.height;\r\n this.svgElement.setAttribute('height', boundingBox.height);\r\n }\r\n\r\n var margin = 1;\r\n\r\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\r\n this.currentBBox.w = boundingBox.width + margin * 2;\r\n this.currentBBox.h = boundingBox.height + margin * 2;\r\n this.currentBBox.x = boundingBox.x - margin;\r\n this.currentBBox.y = boundingBox.y - margin;\r\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\r\n svgStyle = this.svgElement.style;\r\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\r\n svgStyle.transform = svgTransform;\r\n svgStyle.webkitTransform = svgTransform;\r\n }\r\n }\r\n };\r\n\r\n function HCameraElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initHierarchy();\r\n var getProp = PropertyFactory.getProp;\r\n this.pe = getProp(this, data.pe, 0, 0, this);\r\n\r\n if (data.ks.p.s) {\r\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\r\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\r\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\r\n } else {\r\n this.p = getProp(this, data.ks.p, 1, 0, this);\r\n }\r\n\r\n if (data.ks.a) {\r\n this.a = getProp(this, data.ks.a, 1, 0, this);\r\n }\r\n\r\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\r\n var i;\r\n var len = data.ks.or.k.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n data.ks.or.k[i].to = null;\r\n data.ks.or.k[i].ti = null;\r\n }\r\n }\r\n\r\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\r\n this.or.sh = true;\r\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\r\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\r\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\r\n this.mat = new Matrix();\r\n this._prevMat = new Matrix();\r\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\r\n\r\n this.finalTransform = {\r\n mProp: this\r\n };\r\n }\r\n\r\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\r\n\r\n HCameraElement.prototype.setup = function () {\r\n var i;\r\n var len = this.comp.threeDElements.length;\r\n var comp;\r\n var perspectiveStyle;\r\n var containerStyle;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n // [perspectiveElem,container]\r\n comp = this.comp.threeDElements[i];\r\n\r\n if (comp.type === '3d') {\r\n perspectiveStyle = comp.perspectiveElem.style;\r\n containerStyle = comp.container.style;\r\n var perspective = this.pe.v + 'px';\r\n var origin = '0px 0px 0px';\r\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\r\n perspectiveStyle.perspective = perspective;\r\n perspectiveStyle.webkitPerspective = perspective;\r\n containerStyle.transformOrigin = origin;\r\n containerStyle.mozTransformOrigin = origin;\r\n containerStyle.webkitTransformOrigin = origin;\r\n perspectiveStyle.transform = matrix;\r\n perspectiveStyle.webkitTransform = matrix;\r\n }\r\n }\r\n };\r\n\r\n HCameraElement.prototype.createElements = function () {};\r\n\r\n HCameraElement.prototype.hide = function () {};\r\n\r\n HCameraElement.prototype.renderFrame = function () {\r\n var _mdf = this._isFirstFrame;\r\n var i;\r\n var len;\r\n\r\n if (this.hierarchy) {\r\n len = this.hierarchy.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\r\n }\r\n }\r\n\r\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\r\n this.mat.reset();\r\n\r\n if (this.hierarchy) {\r\n len = this.hierarchy.length - 1;\r\n\r\n for (i = len; i >= 0; i -= 1) {\r\n var mTransf = this.hierarchy[i].finalTransform.mProp;\r\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\r\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\r\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\r\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\r\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\r\n }\r\n }\r\n\r\n if (this.p) {\r\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\r\n } else {\r\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\r\n }\r\n\r\n if (this.a) {\r\n var diffVector;\r\n\r\n if (this.p) {\r\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\r\n } else {\r\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\r\n }\r\n\r\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));\r\n\r\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\r\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\r\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\r\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\r\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\r\n }\r\n\r\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\r\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\r\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\r\n this.mat.translate(0, 0, this.pe.v);\r\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\r\n\r\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\r\n len = this.comp.threeDElements.length;\r\n var comp;\r\n var perspectiveStyle;\r\n var containerStyle;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n comp = this.comp.threeDElements[i];\r\n\r\n if (comp.type === '3d') {\r\n if (hasMatrixChanged) {\r\n var matValue = this.mat.toCSS();\r\n containerStyle = comp.container.style;\r\n containerStyle.transform = matValue;\r\n containerStyle.webkitTransform = matValue;\r\n }\r\n\r\n if (this.pe._mdf) {\r\n perspectiveStyle = comp.perspectiveElem.style;\r\n perspectiveStyle.perspective = this.pe.v + 'px';\r\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\r\n }\r\n }\r\n }\r\n\r\n this.mat.clone(this._prevMat);\r\n }\r\n }\r\n\r\n this._isFirstFrame = false;\r\n };\r\n\r\n HCameraElement.prototype.prepareFrame = function (num) {\r\n this.prepareProperties(num, true);\r\n };\r\n\r\n HCameraElement.prototype.destroy = function () {};\r\n\r\n HCameraElement.prototype.getBaseElement = function () {\r\n return null;\r\n };\r\n\r\n function HImageElement(data, globalData, comp) {\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\r\n\r\n HImageElement.prototype.createContent = function () {\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n var img = new Image();\r\n\r\n if (this.data.hasMask) {\r\n this.imageElem = createNS('image');\r\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\r\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\r\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\r\n this.layerElement.appendChild(this.imageElem);\r\n this.baseElement.setAttribute('width', this.assetData.w);\r\n this.baseElement.setAttribute('height', this.assetData.h);\r\n } else {\r\n this.layerElement.appendChild(img);\r\n }\r\n\r\n img.crossOrigin = 'anonymous';\r\n img.src = assetPath;\r\n\r\n if (this.data.ln) {\r\n this.baseElement.setAttribute('id', this.data.ln);\r\n }\r\n };\r\n\r\n function HybridRendererBase(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.layers = null;\r\n this.renderedFrame = -1;\r\n this.renderConfig = {\r\n className: config && config.className || '',\r\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\r\n hideOnTransparent: !(config && config.hideOnTransparent === false),\r\n filterSize: {\r\n width: config && config.filterSize && config.filterSize.width || '400%',\r\n height: config && config.filterSize && config.filterSize.height || '400%',\r\n x: config && config.filterSize && config.filterSize.x || '-100%',\r\n y: config && config.filterSize && config.filterSize.y || '-100%'\r\n }\r\n };\r\n this.globalData = {\r\n _mdf: false,\r\n frameNum: -1,\r\n renderConfig: this.renderConfig\r\n };\r\n this.pendingElements = [];\r\n this.elements = [];\r\n this.threeDElements = [];\r\n this.destroyed = false;\r\n this.camera = null;\r\n this.supports3d = true;\r\n this.rendererType = 'html';\r\n }\r\n\r\n extendPrototype([BaseRenderer], HybridRendererBase);\r\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\r\n\r\n HybridRendererBase.prototype.checkPendingElements = function () {\r\n while (this.pendingElements.length) {\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n }\r\n };\r\n\r\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\r\n var newDOMElement = element.getBaseElement();\r\n\r\n if (!newDOMElement) {\r\n return;\r\n }\r\n\r\n var layer = this.layers[pos];\r\n\r\n if (!layer.ddd || !this.supports3d) {\r\n if (this.threeDElements) {\r\n this.addTo3dContainer(newDOMElement, pos);\r\n } else {\r\n var i = 0;\r\n var nextDOMElement;\r\n var nextLayer;\r\n var tmpDOMElement;\r\n\r\n while (i < pos) {\r\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\r\n nextLayer = this.elements[i];\r\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\r\n nextDOMElement = tmpDOMElement || nextDOMElement;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (nextDOMElement) {\r\n if (!layer.ddd || !this.supports3d) {\r\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\r\n }\r\n } else if (!layer.ddd || !this.supports3d) {\r\n this.layerElement.appendChild(newDOMElement);\r\n }\r\n }\r\n } else {\r\n this.addTo3dContainer(newDOMElement, pos);\r\n }\r\n };\r\n\r\n HybridRendererBase.prototype.createShape = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGShapeElement(data, this.globalData, this);\r\n }\r\n\r\n return new HShapeElement(data, this.globalData, this);\r\n };\r\n\r\n HybridRendererBase.prototype.createText = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGTextLottieElement(data, this.globalData, this);\r\n }\r\n\r\n return new HTextElement(data, this.globalData, this);\r\n };\r\n\r\n HybridRendererBase.prototype.createCamera = function (data) {\r\n this.camera = new HCameraElement(data, this.globalData, this);\r\n return this.camera;\r\n };\r\n\r\n HybridRendererBase.prototype.createImage = function (data) {\r\n if (!this.supports3d) {\r\n return new IImageElement(data, this.globalData, this);\r\n }\r\n\r\n return new HImageElement(data, this.globalData, this);\r\n };\r\n\r\n HybridRendererBase.prototype.createSolid = function (data) {\r\n if (!this.supports3d) {\r\n return new ISolidElement(data, this.globalData, this);\r\n }\r\n\r\n return new HSolidElement(data, this.globalData, this);\r\n };\r\n\r\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\r\n\r\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\r\n var i = 0;\r\n var len = this.threeDElements.length;\r\n\r\n while (i < len) {\r\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\r\n return this.threeDElements[i].perspectiveElem;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\r\n var perspectiveElem = createTag('div');\r\n var style;\r\n var containerStyle;\r\n styleDiv(perspectiveElem);\r\n var container = createTag('div');\r\n styleDiv(container);\r\n\r\n if (type === '3d') {\r\n style = perspectiveElem.style;\r\n style.width = this.globalData.compSize.w + 'px';\r\n style.height = this.globalData.compSize.h + 'px';\r\n var center = '50% 50%';\r\n style.webkitTransformOrigin = center;\r\n style.mozTransformOrigin = center;\r\n style.transformOrigin = center;\r\n containerStyle = container.style;\r\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\r\n containerStyle.transform = matrix;\r\n containerStyle.webkitTransform = matrix;\r\n }\r\n\r\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\r\n\r\n var threeDContainerData = {\r\n container: container,\r\n perspectiveElem: perspectiveElem,\r\n startPos: pos,\r\n endPos: pos,\r\n type: type\r\n };\r\n this.threeDElements.push(threeDContainerData);\r\n return threeDContainerData;\r\n };\r\n\r\n HybridRendererBase.prototype.build3dContainers = function () {\r\n var i;\r\n var len = this.layers.length;\r\n var lastThreeDContainerData;\r\n var currentContainer = '';\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\r\n if (currentContainer !== '3d') {\r\n currentContainer = '3d';\r\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\r\n }\r\n\r\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\r\n } else {\r\n if (currentContainer !== '2d') {\r\n currentContainer = '2d';\r\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\r\n }\r\n\r\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\r\n }\r\n }\r\n\r\n len = this.threeDElements.length;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\r\n }\r\n };\r\n\r\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\r\n var i = 0;\r\n var len = this.threeDElements.length;\r\n\r\n while (i < len) {\r\n if (pos <= this.threeDElements[i].endPos) {\r\n var j = this.threeDElements[i].startPos;\r\n var nextElement;\r\n\r\n while (j < pos) {\r\n if (this.elements[j] && this.elements[j].getBaseElement) {\r\n nextElement = this.elements[j].getBaseElement();\r\n }\r\n\r\n j += 1;\r\n }\r\n\r\n if (nextElement) {\r\n this.threeDElements[i].container.insertBefore(elem, nextElement);\r\n } else {\r\n this.threeDElements[i].container.appendChild(elem);\r\n }\r\n\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n };\r\n\r\n HybridRendererBase.prototype.configAnimation = function (animData) {\r\n var resizerElem = createTag('div');\r\n var wrapper = this.animationItem.wrapper;\r\n var style = resizerElem.style;\r\n style.width = animData.w + 'px';\r\n style.height = animData.h + 'px';\r\n this.resizerElem = resizerElem;\r\n styleDiv(resizerElem);\r\n style.transformStyle = 'flat';\r\n style.mozTransformStyle = 'flat';\r\n style.webkitTransformStyle = 'flat';\r\n\r\n if (this.renderConfig.className) {\r\n resizerElem.setAttribute('class', this.renderConfig.className);\r\n }\r\n\r\n wrapper.appendChild(resizerElem);\r\n style.overflow = 'hidden';\r\n var svg = createNS('svg');\r\n svg.setAttribute('width', '1');\r\n svg.setAttribute('height', '1');\r\n styleDiv(svg);\r\n this.resizerElem.appendChild(svg);\r\n var defs = createNS('defs');\r\n svg.appendChild(defs);\r\n this.data = animData; // Mask animation\r\n\r\n this.setupGlobalData(animData, svg);\r\n this.globalData.defs = defs;\r\n this.layers = animData.layers;\r\n this.layerElement = this.resizerElem;\r\n this.build3dContainers();\r\n this.updateContainerSize();\r\n };\r\n\r\n HybridRendererBase.prototype.destroy = function () {\r\n if (this.animationItem.wrapper) {\r\n this.animationItem.wrapper.innerText = '';\r\n }\r\n\r\n this.animationItem.container = null;\r\n this.globalData.defs = null;\r\n var i;\r\n var len = this.layers ? this.layers.length : 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.elements[i].destroy();\r\n }\r\n\r\n this.elements.length = 0;\r\n this.destroyed = true;\r\n this.animationItem = null;\r\n };\r\n\r\n HybridRendererBase.prototype.updateContainerSize = function () {\r\n var elementWidth = this.animationItem.wrapper.offsetWidth;\r\n var elementHeight = this.animationItem.wrapper.offsetHeight;\r\n var elementRel = elementWidth / elementHeight;\r\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\r\n var sx;\r\n var sy;\r\n var tx;\r\n var ty;\r\n\r\n if (animationRel > elementRel) {\r\n sx = elementWidth / this.globalData.compSize.w;\r\n sy = elementWidth / this.globalData.compSize.w;\r\n tx = 0;\r\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\r\n } else {\r\n sx = elementHeight / this.globalData.compSize.h;\r\n sy = elementHeight / this.globalData.compSize.h;\r\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\r\n ty = 0;\r\n }\r\n\r\n var style = this.resizerElem.style;\r\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\r\n style.transform = style.webkitTransform;\r\n };\r\n\r\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\r\n\r\n HybridRendererBase.prototype.hide = function () {\r\n this.resizerElem.style.display = 'none';\r\n };\r\n\r\n HybridRendererBase.prototype.show = function () {\r\n this.resizerElem.style.display = 'block';\r\n };\r\n\r\n HybridRendererBase.prototype.initItems = function () {\r\n this.buildAllItems();\r\n\r\n if (this.camera) {\r\n this.camera.setup();\r\n } else {\r\n var cWidth = this.globalData.compSize.w;\r\n var cHeight = this.globalData.compSize.h;\r\n var i;\r\n var len = this.threeDElements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n var style = this.threeDElements[i].perspectiveElem.style;\r\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\r\n style.perspective = style.webkitPerspective;\r\n }\r\n }\r\n };\r\n\r\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\r\n var i;\r\n var len = assets.length;\r\n var floatingContainer = createTag('div');\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (assets[i].xt) {\r\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\r\n comp.initExpressions();\r\n this.globalData.projectInterface.registerComposition(comp);\r\n }\r\n }\r\n };\r\n\r\n function HCompElement(data, globalData, comp) {\r\n this.layers = data.layers;\r\n this.supports3d = !data.hasMask;\r\n this.completeLayers = false;\r\n this.pendingElements = [];\r\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\r\n this.initElement(data, globalData, comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\r\n _placeholder: true\r\n };\r\n }\r\n\r\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\r\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\r\n\r\n HCompElement.prototype.createContainerElements = function () {\r\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\r\n\r\n\r\n if (this.data.hasMask) {\r\n this.svgElement.setAttribute('width', this.data.w);\r\n this.svgElement.setAttribute('height', this.data.h);\r\n this.transformedElement = this.baseElement;\r\n } else {\r\n this.transformedElement = this.layerElement;\r\n }\r\n };\r\n\r\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\r\n var j = 0;\r\n var nextElement;\r\n\r\n while (j < pos) {\r\n if (this.elements[j] && this.elements[j].getBaseElement) {\r\n nextElement = this.elements[j].getBaseElement();\r\n }\r\n\r\n j += 1;\r\n }\r\n\r\n if (nextElement) {\r\n this.layerElement.insertBefore(elem, nextElement);\r\n } else {\r\n this.layerElement.appendChild(elem);\r\n }\r\n };\r\n\r\n HCompElement.prototype.createComp = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGCompElement(data, this.globalData, this);\r\n }\r\n\r\n return new HCompElement(data, this.globalData, this);\r\n };\r\n\r\n function HybridRenderer(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.layers = null;\r\n this.renderedFrame = -1;\r\n this.renderConfig = {\r\n className: config && config.className || '',\r\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\r\n hideOnTransparent: !(config && config.hideOnTransparent === false),\r\n filterSize: {\r\n width: config && config.filterSize && config.filterSize.width || '400%',\r\n height: config && config.filterSize && config.filterSize.height || '400%',\r\n x: config && config.filterSize && config.filterSize.x || '-100%',\r\n y: config && config.filterSize && config.filterSize.y || '-100%'\r\n },\r\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\r\n };\r\n this.globalData = {\r\n _mdf: false,\r\n frameNum: -1,\r\n renderConfig: this.renderConfig\r\n };\r\n this.pendingElements = [];\r\n this.elements = [];\r\n this.threeDElements = [];\r\n this.destroyed = false;\r\n this.camera = null;\r\n this.supports3d = true;\r\n this.rendererType = 'html';\r\n }\r\n\r\n extendPrototype([HybridRendererBase], HybridRenderer);\r\n\r\n HybridRenderer.prototype.createComp = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGCompElement(data, this.globalData, this);\r\n }\r\n\r\n return new HCompElement(data, this.globalData, this);\r\n };\r\n\r\n var CompExpressionInterface = function () {\r\n return function (comp) {\r\n function _thisLayerFunction(name) {\r\n var i = 0;\r\n var len = comp.layers.length;\r\n\r\n while (i < len) {\r\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\r\n return comp.elements[i].layerInterface;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null; // return {active:false};\r\n }\r\n\r\n Object.defineProperty(_thisLayerFunction, '_name', {\r\n value: comp.data.nm\r\n });\r\n _thisLayerFunction.layer = _thisLayerFunction;\r\n _thisLayerFunction.pixelAspect = 1;\r\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\r\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\r\n _thisLayerFunction.pixelAspect = 1;\r\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\r\n _thisLayerFunction.displayStartTime = 0;\r\n _thisLayerFunction.numLayers = comp.layers.length;\r\n return _thisLayerFunction;\r\n };\r\n }();\r\n\r\n var Expressions = function () {\r\n var ob = {};\r\n ob.initExpressions = initExpressions;\r\n\r\n function initExpressions(animation) {\r\n var stackCount = 0;\r\n var registers = [];\r\n\r\n function pushExpression() {\r\n stackCount += 1;\r\n }\r\n\r\n function popExpression() {\r\n stackCount -= 1;\r\n\r\n if (stackCount === 0) {\r\n releaseInstances();\r\n }\r\n }\r\n\r\n function registerExpressionProperty(expression) {\r\n if (registers.indexOf(expression) === -1) {\r\n registers.push(expression);\r\n }\r\n }\r\n\r\n function releaseInstances() {\r\n var i;\r\n var len = registers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registers[i].release();\r\n }\r\n\r\n registers.length = 0;\r\n }\r\n\r\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\r\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\r\n animation.renderer.globalData.pushExpression = pushExpression;\r\n animation.renderer.globalData.popExpression = popExpression;\r\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n var MaskManagerInterface = function () {\r\n function MaskInterface(mask, data) {\r\n this._mask = mask;\r\n this._data = data;\r\n }\r\n\r\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\r\n get: function get() {\r\n if (this._mask.prop.k) {\r\n this._mask.prop.getValue();\r\n }\r\n\r\n return this._mask.prop;\r\n }\r\n });\r\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\r\n get: function get() {\r\n if (this._mask.op.k) {\r\n this._mask.op.getValue();\r\n }\r\n\r\n return this._mask.op.v * 100;\r\n }\r\n });\r\n\r\n var MaskManager = function MaskManager(maskManager) {\r\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\r\n\r\n var i;\r\n var len = maskManager.viewData.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\r\n }\r\n\r\n var maskFunction = function maskFunction(name) {\r\n i = 0;\r\n\r\n while (i < len) {\r\n if (maskManager.masksProperties[i].nm === name) {\r\n return _masksInterfaces[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n return maskFunction;\r\n };\r\n\r\n return MaskManager;\r\n }();\r\n\r\n var ExpressionPropertyInterface = function () {\r\n var defaultUnidimensionalValue = {\r\n pv: 0,\r\n v: 0,\r\n mult: 1\r\n };\r\n var defaultMultidimensionalValue = {\r\n pv: [0, 0, 0],\r\n v: [0, 0, 0],\r\n mult: 1\r\n };\r\n\r\n function completeProperty(expressionValue, property, type) {\r\n Object.defineProperty(expressionValue, 'velocity', {\r\n get: function get() {\r\n return property.getVelocityAtTime(property.comp.currentFrame);\r\n }\r\n });\r\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\r\n\r\n expressionValue.key = function (pos) {\r\n if (!expressionValue.numKeys) {\r\n return 0;\r\n }\r\n\r\n var value = '';\r\n\r\n if ('s' in property.keyframes[pos - 1]) {\r\n value = property.keyframes[pos - 1].s;\r\n } else if ('e' in property.keyframes[pos - 2]) {\r\n value = property.keyframes[pos - 2].e;\r\n } else {\r\n value = property.keyframes[pos - 2].s;\r\n }\r\n\r\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\r\n\r\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\r\n valueProp.value = type === 'unidimensional' ? value[0] : value;\r\n return valueProp;\r\n };\r\n\r\n expressionValue.valueAtTime = property.getValueAtTime;\r\n expressionValue.speedAtTime = property.getSpeedAtTime;\r\n expressionValue.velocityAtTime = property.getVelocityAtTime;\r\n expressionValue.propertyGroup = property.propertyGroup;\r\n }\r\n\r\n function UnidimensionalPropertyInterface(property) {\r\n if (!property || !('pv' in property)) {\r\n property = defaultUnidimensionalValue;\r\n }\r\n\r\n var mult = 1 / property.mult;\r\n var val = property.pv * mult;\r\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\r\n\r\n expressionValue.value = val;\r\n completeProperty(expressionValue, property, 'unidimensional');\r\n return function () {\r\n if (property.k) {\r\n property.getValue();\r\n }\r\n\r\n val = property.v * mult;\r\n\r\n if (expressionValue.value !== val) {\r\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\r\n\r\n expressionValue.value = val;\r\n completeProperty(expressionValue, property, 'unidimensional');\r\n }\r\n\r\n return expressionValue;\r\n };\r\n }\r\n\r\n function MultidimensionalPropertyInterface(property) {\r\n if (!property || !('pv' in property)) {\r\n property = defaultMultidimensionalValue;\r\n }\r\n\r\n var mult = 1 / property.mult;\r\n var len = property.data && property.data.l || property.pv.length;\r\n var expressionValue = createTypedArray('float32', len);\r\n var arrValue = createTypedArray('float32', len);\r\n expressionValue.value = arrValue;\r\n completeProperty(expressionValue, property, 'multidimensional');\r\n return function () {\r\n if (property.k) {\r\n property.getValue();\r\n }\r\n\r\n for (var i = 0; i < len; i += 1) {\r\n arrValue[i] = property.v[i] * mult;\r\n expressionValue[i] = arrValue[i];\r\n }\r\n\r\n return expressionValue;\r\n };\r\n } // TODO: try to avoid using this getter\r\n\r\n\r\n function defaultGetter() {\r\n return defaultUnidimensionalValue;\r\n }\r\n\r\n return function (property) {\r\n if (!property) {\r\n return defaultGetter;\r\n }\r\n\r\n if (property.propType === 'unidimensional') {\r\n return UnidimensionalPropertyInterface(property);\r\n }\r\n\r\n return MultidimensionalPropertyInterface(property);\r\n };\r\n }();\r\n\r\n var TransformExpressionInterface = function () {\r\n return function (transform) {\r\n function _thisFunction(name) {\r\n switch (name) {\r\n case 'scale':\r\n case 'Scale':\r\n case 'ADBE Scale':\r\n case 6:\r\n return _thisFunction.scale;\r\n\r\n case 'rotation':\r\n case 'Rotation':\r\n case 'ADBE Rotation':\r\n case 'ADBE Rotate Z':\r\n case 10:\r\n return _thisFunction.rotation;\r\n\r\n case 'ADBE Rotate X':\r\n return _thisFunction.xRotation;\r\n\r\n case 'ADBE Rotate Y':\r\n return _thisFunction.yRotation;\r\n\r\n case 'position':\r\n case 'Position':\r\n case 'ADBE Position':\r\n case 2:\r\n return _thisFunction.position;\r\n\r\n case 'ADBE Position_0':\r\n return _thisFunction.xPosition;\r\n\r\n case 'ADBE Position_1':\r\n return _thisFunction.yPosition;\r\n\r\n case 'ADBE Position_2':\r\n return _thisFunction.zPosition;\r\n\r\n case 'anchorPoint':\r\n case 'AnchorPoint':\r\n case 'Anchor Point':\r\n case 'ADBE AnchorPoint':\r\n case 1:\r\n return _thisFunction.anchorPoint;\r\n\r\n case 'opacity':\r\n case 'Opacity':\r\n case 11:\r\n return _thisFunction.opacity;\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n Object.defineProperty(_thisFunction, 'rotation', {\r\n get: ExpressionPropertyInterface(transform.r || transform.rz)\r\n });\r\n Object.defineProperty(_thisFunction, 'zRotation', {\r\n get: ExpressionPropertyInterface(transform.rz || transform.r)\r\n });\r\n Object.defineProperty(_thisFunction, 'xRotation', {\r\n get: ExpressionPropertyInterface(transform.rx)\r\n });\r\n Object.defineProperty(_thisFunction, 'yRotation', {\r\n get: ExpressionPropertyInterface(transform.ry)\r\n });\r\n Object.defineProperty(_thisFunction, 'scale', {\r\n get: ExpressionPropertyInterface(transform.s)\r\n });\r\n\r\n var _px;\r\n\r\n var _py;\r\n\r\n var _pz;\r\n\r\n var _transformFactory;\r\n\r\n if (transform.p) {\r\n _transformFactory = ExpressionPropertyInterface(transform.p);\r\n } else {\r\n _px = ExpressionPropertyInterface(transform.px);\r\n _py = ExpressionPropertyInterface(transform.py);\r\n\r\n if (transform.pz) {\r\n _pz = ExpressionPropertyInterface(transform.pz);\r\n }\r\n }\r\n\r\n Object.defineProperty(_thisFunction, 'position', {\r\n get: function get() {\r\n if (transform.p) {\r\n return _transformFactory();\r\n }\r\n\r\n return [_px(), _py(), _pz ? _pz() : 0];\r\n }\r\n });\r\n Object.defineProperty(_thisFunction, 'xPosition', {\r\n get: ExpressionPropertyInterface(transform.px)\r\n });\r\n Object.defineProperty(_thisFunction, 'yPosition', {\r\n get: ExpressionPropertyInterface(transform.py)\r\n });\r\n Object.defineProperty(_thisFunction, 'zPosition', {\r\n get: ExpressionPropertyInterface(transform.pz)\r\n });\r\n Object.defineProperty(_thisFunction, 'anchorPoint', {\r\n get: ExpressionPropertyInterface(transform.a)\r\n });\r\n Object.defineProperty(_thisFunction, 'opacity', {\r\n get: ExpressionPropertyInterface(transform.o)\r\n });\r\n Object.defineProperty(_thisFunction, 'skew', {\r\n get: ExpressionPropertyInterface(transform.sk)\r\n });\r\n Object.defineProperty(_thisFunction, 'skewAxis', {\r\n get: ExpressionPropertyInterface(transform.sa)\r\n });\r\n Object.defineProperty(_thisFunction, 'orientation', {\r\n get: ExpressionPropertyInterface(transform.or)\r\n });\r\n return _thisFunction;\r\n };\r\n }();\r\n\r\n var LayerExpressionInterface = function () {\r\n function getMatrix(time) {\r\n var toWorldMat = new Matrix();\r\n\r\n if (time !== undefined) {\r\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\r\n\r\n propMatrix.clone(toWorldMat);\r\n } else {\r\n var transformMat = this._elem.finalTransform.mProp;\r\n transformMat.applyToMatrix(toWorldMat);\r\n }\r\n\r\n return toWorldMat;\r\n }\r\n\r\n function toWorldVec(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n toWorldMat.props[12] = 0;\r\n toWorldMat.props[13] = 0;\r\n toWorldMat.props[14] = 0;\r\n return this.applyPoint(toWorldMat, arr);\r\n }\r\n\r\n function toWorld(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n return this.applyPoint(toWorldMat, arr);\r\n }\r\n\r\n function fromWorldVec(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n toWorldMat.props[12] = 0;\r\n toWorldMat.props[13] = 0;\r\n toWorldMat.props[14] = 0;\r\n return this.invertPoint(toWorldMat, arr);\r\n }\r\n\r\n function fromWorld(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n return this.invertPoint(toWorldMat, arr);\r\n }\r\n\r\n function applyPoint(matrix, arr) {\r\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\r\n var i;\r\n var len = this._elem.hierarchy.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\r\n }\r\n }\r\n\r\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\r\n }\r\n\r\n function invertPoint(matrix, arr) {\r\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\r\n var i;\r\n var len = this._elem.hierarchy.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\r\n }\r\n }\r\n\r\n return matrix.inversePoint(arr);\r\n }\r\n\r\n function fromComp(arr) {\r\n var toWorldMat = new Matrix();\r\n toWorldMat.reset();\r\n\r\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\r\n\r\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\r\n var i;\r\n var len = this._elem.hierarchy.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\r\n }\r\n\r\n return toWorldMat.inversePoint(arr);\r\n }\r\n\r\n return toWorldMat.inversePoint(arr);\r\n }\r\n\r\n function sampleImage() {\r\n return [1, 1, 1, 1];\r\n }\r\n\r\n return function (elem) {\r\n var transformInterface;\r\n\r\n function _registerMaskInterface(maskManager) {\r\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\r\n }\r\n\r\n function _registerEffectsInterface(effects) {\r\n _thisLayerFunction.effect = effects;\r\n }\r\n\r\n function _thisLayerFunction(name) {\r\n switch (name) {\r\n case 'ADBE Root Vectors Group':\r\n case 'Contents':\r\n case 2:\r\n return _thisLayerFunction.shapeInterface;\r\n\r\n case 1:\r\n case 6:\r\n case 'Transform':\r\n case 'transform':\r\n case 'ADBE Transform Group':\r\n return transformInterface;\r\n\r\n case 4:\r\n case 'ADBE Effect Parade':\r\n case 'effects':\r\n case 'Effects':\r\n return _thisLayerFunction.effect;\r\n\r\n case 'ADBE Text Properties':\r\n return _thisLayerFunction.textInterface;\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n _thisLayerFunction.getMatrix = getMatrix;\r\n _thisLayerFunction.invertPoint = invertPoint;\r\n _thisLayerFunction.applyPoint = applyPoint;\r\n _thisLayerFunction.toWorld = toWorld;\r\n _thisLayerFunction.toWorldVec = toWorldVec;\r\n _thisLayerFunction.fromWorld = fromWorld;\r\n _thisLayerFunction.fromWorldVec = fromWorldVec;\r\n _thisLayerFunction.toComp = toWorld;\r\n _thisLayerFunction.fromComp = fromComp;\r\n _thisLayerFunction.sampleImage = sampleImage;\r\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\r\n _thisLayerFunction._elem = elem;\r\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\r\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\r\n Object.defineProperties(_thisLayerFunction, {\r\n hasParent: {\r\n get: function get() {\r\n return elem.hierarchy.length;\r\n }\r\n },\r\n parent: {\r\n get: function get() {\r\n return elem.hierarchy[0].layerInterface;\r\n }\r\n },\r\n rotation: getDescriptor(transformInterface, 'rotation'),\r\n scale: getDescriptor(transformInterface, 'scale'),\r\n position: getDescriptor(transformInterface, 'position'),\r\n opacity: getDescriptor(transformInterface, 'opacity'),\r\n anchorPoint: anchorPointDescriptor,\r\n anchor_point: anchorPointDescriptor,\r\n transform: {\r\n get: function get() {\r\n return transformInterface;\r\n }\r\n },\r\n active: {\r\n get: function get() {\r\n return elem.isInRange;\r\n }\r\n }\r\n });\r\n _thisLayerFunction.startTime = elem.data.st;\r\n _thisLayerFunction.index = elem.data.ind;\r\n _thisLayerFunction.source = elem.data.refId;\r\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\r\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\r\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\r\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\r\n _thisLayerFunction._name = elem.data.nm;\r\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\r\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\r\n return _thisLayerFunction;\r\n };\r\n }();\r\n\r\n var propertyGroupFactory = function () {\r\n return function (interfaceFunction, parentPropertyGroup) {\r\n return function (val) {\r\n val = val === undefined ? 1 : val;\r\n\r\n if (val <= 0) {\r\n return interfaceFunction;\r\n }\r\n\r\n return parentPropertyGroup(val - 1);\r\n };\r\n };\r\n }();\r\n\r\n var PropertyInterface = function () {\r\n return function (propertyName, propertyGroup) {\r\n var interfaceFunction = {\r\n _name: propertyName\r\n };\r\n\r\n function _propertyGroup(val) {\r\n val = val === undefined ? 1 : val;\r\n\r\n if (val <= 0) {\r\n return interfaceFunction;\r\n }\r\n\r\n return propertyGroup(val - 1);\r\n }\r\n\r\n return _propertyGroup;\r\n };\r\n }();\r\n\r\n var EffectsExpressionInterface = function () {\r\n var ob = {\r\n createEffectsInterface: createEffectsInterface\r\n };\r\n\r\n function createEffectsInterface(elem, propertyGroup) {\r\n if (elem.effectsManager) {\r\n var effectElements = [];\r\n var effectsData = elem.data.ef;\r\n var i;\r\n var len = elem.effectsManager.effectElements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\r\n }\r\n\r\n var effects = elem.data.ef || [];\r\n\r\n var groupInterface = function groupInterface(name) {\r\n i = 0;\r\n len = effects.length;\r\n\r\n while (i < len) {\r\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\r\n return effectElements[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n Object.defineProperty(groupInterface, 'numProperties', {\r\n get: function get() {\r\n return effects.length;\r\n }\r\n });\r\n return groupInterface;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function createGroupInterface(data, elements, propertyGroup, elem) {\r\n function groupInterface(name) {\r\n var effects = data.ef;\r\n var i = 0;\r\n var len = effects.length;\r\n\r\n while (i < len) {\r\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\r\n if (effects[i].ty === 5) {\r\n return effectElements[i];\r\n }\r\n\r\n return effectElements[i]();\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n throw new Error();\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\r\n\r\n var effectElements = [];\r\n var i;\r\n var len = data.ef.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (data.ef[i].ty === 5) {\r\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\r\n } else {\r\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\r\n }\r\n }\r\n\r\n if (data.mn === 'ADBE Color Control') {\r\n Object.defineProperty(groupInterface, 'color', {\r\n get: function get() {\r\n return effectElements[0]();\r\n }\r\n });\r\n }\r\n\r\n Object.defineProperties(groupInterface, {\r\n numProperties: {\r\n get: function get() {\r\n return data.np;\r\n }\r\n },\r\n _name: {\r\n value: data.nm\r\n },\r\n propertyGroup: {\r\n value: _propertyGroup\r\n }\r\n });\r\n groupInterface.enabled = data.en !== 0;\r\n groupInterface.active = groupInterface.enabled;\r\n return groupInterface;\r\n }\r\n\r\n function createValueInterface(element, type, elem, propertyGroup) {\r\n var expressionProperty = ExpressionPropertyInterface(element.p);\r\n\r\n function interfaceFunction() {\r\n if (type === 10) {\r\n return elem.comp.compInterface(element.p.v);\r\n }\r\n\r\n return expressionProperty();\r\n }\r\n\r\n if (element.p.setGroupProperty) {\r\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\r\n }\r\n\r\n return interfaceFunction;\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n var ShapePathInterface = function () {\r\n return function pathInterfaceFactory(shape, view, propertyGroup) {\r\n var prop = view.sh;\r\n\r\n function interfaceFunction(val) {\r\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\r\n return interfaceFunction.path;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n path: {\r\n get: function get() {\r\n if (prop.k) {\r\n prop.getValue();\r\n }\r\n\r\n return prop;\r\n }\r\n },\r\n shape: {\r\n get: function get() {\r\n if (prop.k) {\r\n prop.getValue();\r\n }\r\n\r\n return prop;\r\n }\r\n },\r\n _name: {\r\n value: shape.nm\r\n },\r\n ix: {\r\n value: shape.ix\r\n },\r\n propertyIndex: {\r\n value: shape.ix\r\n },\r\n mn: {\r\n value: shape.mn\r\n },\r\n propertyGroup: {\r\n value: propertyGroup\r\n }\r\n });\r\n return interfaceFunction;\r\n };\r\n }();\r\n\r\n var ShapeExpressionInterface = function () {\r\n function iterateElements(shapes, view, propertyGroup) {\r\n var arr = [];\r\n var i;\r\n var len = shapes ? shapes.length : 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (shapes[i].ty === 'gr') {\r\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'fl') {\r\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'st') {\r\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'tm') {\r\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\r\n } else if (shapes[i].ty === 'el') {\r\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'sr') {\r\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'sh') {\r\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'rc') {\r\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'rd') {\r\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'rp') {\r\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'gf') {\r\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else {\r\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n }\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n function contentsInterfaceFactory(shape, view, propertyGroup) {\r\n var interfaces;\r\n\r\n var interfaceFunction = function _interfaceFunction(value) {\r\n var i = 0;\r\n var len = interfaces.length;\r\n\r\n while (i < len) {\r\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\r\n return interfaces[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n return interfaces[value - 1];\r\n }\r\n\r\n return null;\r\n };\r\n\r\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\r\n interfaceFunction.numProperties = interfaces.length;\r\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\r\n interfaceFunction.transform = transformInterface;\r\n interfaceFunction.propertyIndex = shape.cix;\r\n interfaceFunction._name = shape.nm;\r\n return interfaceFunction;\r\n }\r\n\r\n function groupInterfaceFactory(shape, view, propertyGroup) {\r\n var interfaceFunction = function _interfaceFunction(value) {\r\n switch (value) {\r\n case 'ADBE Vectors Group':\r\n case 'Contents':\r\n case 2:\r\n return interfaceFunction.content;\r\n // Not necessary for now. Keeping them here in case a new case appears\r\n // case 'ADBE Vector Transform Group':\r\n // case 3:\r\n\r\n default:\r\n return interfaceFunction.transform;\r\n }\r\n };\r\n\r\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\r\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\r\n interfaceFunction.content = content;\r\n interfaceFunction.transform = transformInterface;\r\n Object.defineProperty(interfaceFunction, '_name', {\r\n get: function get() {\r\n return shape.nm;\r\n }\r\n }); // interfaceFunction.content = interfaceFunction;\r\n\r\n interfaceFunction.numProperties = shape.np;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n interfaceFunction.nm = shape.nm;\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function fillInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(val) {\r\n if (val === 'Color' || val === 'color') {\r\n return interfaceFunction.color;\r\n }\r\n\r\n if (val === 'Opacity' || val === 'opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n color: {\r\n get: ExpressionPropertyInterface(view.c)\r\n },\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.o)\r\n },\r\n _name: {\r\n value: shape.nm\r\n },\r\n mn: {\r\n value: shape.mn\r\n }\r\n });\r\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\r\n return interfaceFunction;\r\n }\r\n\r\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(val) {\r\n if (val === 'Start Point' || val === 'start point') {\r\n return interfaceFunction.startPoint;\r\n }\r\n\r\n if (val === 'End Point' || val === 'end point') {\r\n return interfaceFunction.endPoint;\r\n }\r\n\r\n if (val === 'Opacity' || val === 'opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n startPoint: {\r\n get: ExpressionPropertyInterface(view.s)\r\n },\r\n endPoint: {\r\n get: ExpressionPropertyInterface(view.e)\r\n },\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.o)\r\n },\r\n type: {\r\n get: function get() {\r\n return 'a';\r\n }\r\n },\r\n _name: {\r\n value: shape.nm\r\n },\r\n mn: {\r\n value: shape.mn\r\n }\r\n });\r\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\r\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\r\n return interfaceFunction;\r\n }\r\n\r\n function defaultInterfaceFactory() {\r\n function interfaceFunction() {\r\n return null;\r\n }\r\n\r\n return interfaceFunction;\r\n }\r\n\r\n function strokeInterfaceFactory(shape, view, propertyGroup) {\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\r\n\r\n function addPropertyToDashOb(i) {\r\n Object.defineProperty(dashOb, shape.d[i].nm, {\r\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\r\n });\r\n }\r\n\r\n var i;\r\n var len = shape.d ? shape.d.length : 0;\r\n var dashOb = {};\r\n\r\n for (i = 0; i < len; i += 1) {\r\n addPropertyToDashOb(i);\r\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\r\n }\r\n\r\n function interfaceFunction(val) {\r\n if (val === 'Color' || val === 'color') {\r\n return interfaceFunction.color;\r\n }\r\n\r\n if (val === 'Opacity' || val === 'opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n\r\n if (val === 'Stroke Width' || val === 'stroke width') {\r\n return interfaceFunction.strokeWidth;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n color: {\r\n get: ExpressionPropertyInterface(view.c)\r\n },\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.o)\r\n },\r\n strokeWidth: {\r\n get: ExpressionPropertyInterface(view.w)\r\n },\r\n dash: {\r\n get: function get() {\r\n return dashOb;\r\n }\r\n },\r\n _name: {\r\n value: shape.nm\r\n },\r\n mn: {\r\n value: shape.mn\r\n }\r\n });\r\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\r\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\r\n return interfaceFunction;\r\n }\r\n\r\n function trimInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(val) {\r\n if (val === shape.e.ix || val === 'End' || val === 'end') {\r\n return interfaceFunction.end;\r\n }\r\n\r\n if (val === shape.s.ix) {\r\n return interfaceFunction.start;\r\n }\r\n\r\n if (val === shape.o.ix) {\r\n return interfaceFunction.offset;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n interfaceFunction.propertyIndex = shape.ix;\r\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\r\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\r\n interfaceFunction.propertyIndex = shape.ix;\r\n interfaceFunction.propertyGroup = propertyGroup;\r\n Object.defineProperties(interfaceFunction, {\r\n start: {\r\n get: ExpressionPropertyInterface(view.s)\r\n },\r\n end: {\r\n get: ExpressionPropertyInterface(view.e)\r\n },\r\n offset: {\r\n get: ExpressionPropertyInterface(view.o)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function transformInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.a.ix === value || value === 'Anchor Point') {\r\n return interfaceFunction.anchorPoint;\r\n }\r\n\r\n if (shape.o.ix === value || value === 'Opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n\r\n if (shape.p.ix === value || value === 'Position') {\r\n return interfaceFunction.position;\r\n }\r\n\r\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\r\n return interfaceFunction.rotation;\r\n }\r\n\r\n if (shape.s.ix === value || value === 'Scale') {\r\n return interfaceFunction.scale;\r\n }\r\n\r\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\r\n return interfaceFunction.skew;\r\n }\r\n\r\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\r\n return interfaceFunction.skewAxis;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\r\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\r\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\r\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\r\n\r\n if (view.transform.mProps.sk) {\r\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\r\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\r\n }\r\n\r\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.o)\r\n },\r\n position: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.p)\r\n },\r\n anchorPoint: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.a)\r\n },\r\n scale: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.s)\r\n },\r\n rotation: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.r)\r\n },\r\n skew: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\r\n },\r\n skewAxis: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.ty = 'tr';\r\n interfaceFunction.mn = shape.mn;\r\n interfaceFunction.propertyGroup = propertyGroup;\r\n return interfaceFunction;\r\n }\r\n\r\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.p.ix === value) {\r\n return interfaceFunction.position;\r\n }\r\n\r\n if (shape.s.ix === value) {\r\n return interfaceFunction.size;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n interfaceFunction.propertyIndex = shape.ix;\r\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\r\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\r\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n size: {\r\n get: ExpressionPropertyInterface(prop.s)\r\n },\r\n position: {\r\n get: ExpressionPropertyInterface(prop.p)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function starInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.p.ix === value) {\r\n return interfaceFunction.position;\r\n }\r\n\r\n if (shape.r.ix === value) {\r\n return interfaceFunction.rotation;\r\n }\r\n\r\n if (shape.pt.ix === value) {\r\n return interfaceFunction.points;\r\n }\r\n\r\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\r\n return interfaceFunction.outerRadius;\r\n }\r\n\r\n if (shape.os.ix === value) {\r\n return interfaceFunction.outerRoundness;\r\n }\r\n\r\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\r\n return interfaceFunction.innerRadius;\r\n }\r\n\r\n if (shape.is && shape.is.ix === value) {\r\n return interfaceFunction.innerRoundness;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\r\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\r\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\r\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\r\n\r\n if (shape.ir) {\r\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\r\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\r\n }\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n position: {\r\n get: ExpressionPropertyInterface(prop.p)\r\n },\r\n rotation: {\r\n get: ExpressionPropertyInterface(prop.r)\r\n },\r\n points: {\r\n get: ExpressionPropertyInterface(prop.pt)\r\n },\r\n outerRadius: {\r\n get: ExpressionPropertyInterface(prop.or)\r\n },\r\n outerRoundness: {\r\n get: ExpressionPropertyInterface(prop.os)\r\n },\r\n innerRadius: {\r\n get: ExpressionPropertyInterface(prop.ir)\r\n },\r\n innerRoundness: {\r\n get: ExpressionPropertyInterface(prop.is)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function rectInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.p.ix === value) {\r\n return interfaceFunction.position;\r\n }\r\n\r\n if (shape.r.ix === value) {\r\n return interfaceFunction.roundness;\r\n }\r\n\r\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\r\n return interfaceFunction.size;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\r\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n position: {\r\n get: ExpressionPropertyInterface(prop.p)\r\n },\r\n roundness: {\r\n get: ExpressionPropertyInterface(prop.r)\r\n },\r\n size: {\r\n get: ExpressionPropertyInterface(prop.s)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function roundedInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.r.ix === value || value === 'Round Corners 1') {\r\n return interfaceFunction.radius;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n var prop = view;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n radius: {\r\n get: ExpressionPropertyInterface(prop.rd)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.c.ix === value || value === 'Copies') {\r\n return interfaceFunction.copies;\r\n }\r\n\r\n if (shape.o.ix === value || value === 'Offset') {\r\n return interfaceFunction.offset;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n var prop = view;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\r\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n copies: {\r\n get: ExpressionPropertyInterface(prop.c)\r\n },\r\n offset: {\r\n get: ExpressionPropertyInterface(prop.o)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n return function (shapes, view, propertyGroup) {\r\n var interfaces;\r\n\r\n function _interfaceFunction(value) {\r\n if (typeof value === 'number') {\r\n value = value === undefined ? 1 : value;\r\n\r\n if (value === 0) {\r\n return propertyGroup;\r\n }\r\n\r\n return interfaces[value - 1];\r\n }\r\n\r\n var i = 0;\r\n var len = interfaces.length;\r\n\r\n while (i < len) {\r\n if (interfaces[i]._name === value) {\r\n return interfaces[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function parentGroupWrapper() {\r\n return propertyGroup;\r\n }\r\n\r\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\r\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\r\n _interfaceFunction.numProperties = interfaces.length;\r\n _interfaceFunction._name = 'Contents';\r\n return _interfaceFunction;\r\n };\r\n }();\r\n\r\n var TextExpressionInterface = function () {\r\n return function (elem) {\r\n var _prevValue;\r\n\r\n var _sourceText;\r\n\r\n function _thisLayerFunction(name) {\r\n switch (name) {\r\n case 'ADBE Text Document':\r\n return _thisLayerFunction.sourceText;\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\r\n get: function get() {\r\n elem.textProperty.getValue();\r\n var stringValue = elem.textProperty.currentData.t;\r\n\r\n if (stringValue !== _prevValue) {\r\n _prevValue = elem.textProperty.currentData.t;\r\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\r\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\r\n\r\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\r\n\r\n Object.defineProperty(_sourceText, 'style', {\r\n get: function get() {\r\n return {\r\n fillColor: elem.textProperty.currentData.fc\r\n };\r\n }\r\n });\r\n }\r\n\r\n return _sourceText;\r\n }\r\n });\r\n return _thisLayerFunction;\r\n };\r\n }();\r\n\r\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\r\n\r\n var FootageInterface = function () {\r\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\r\n var currentPropertyName = '';\r\n var currentProperty = elem.getFootageData();\r\n\r\n function init() {\r\n currentPropertyName = '';\r\n currentProperty = elem.getFootageData();\r\n return searchProperty;\r\n }\r\n\r\n function searchProperty(value) {\r\n if (currentProperty[value]) {\r\n currentPropertyName = value;\r\n currentProperty = currentProperty[value];\r\n\r\n if (_typeof$2(currentProperty) === 'object') {\r\n return searchProperty;\r\n }\r\n\r\n return currentProperty;\r\n }\r\n\r\n var propertyNameIndex = value.indexOf(currentPropertyName);\r\n\r\n if (propertyNameIndex !== -1) {\r\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\r\n currentProperty = currentProperty[index];\r\n\r\n if (_typeof$2(currentProperty) === 'object') {\r\n return searchProperty;\r\n }\r\n\r\n return currentProperty;\r\n }\r\n\r\n return '';\r\n }\r\n\r\n return init;\r\n };\r\n\r\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\r\n function interfaceFunction(value) {\r\n if (value === 'Outline') {\r\n return interfaceFunction.outlineInterface();\r\n }\r\n\r\n return null;\r\n }\r\n\r\n interfaceFunction._name = 'Outline';\r\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\r\n return interfaceFunction;\r\n };\r\n\r\n return function (elem) {\r\n function _interfaceFunction(value) {\r\n if (value === 'Data') {\r\n return _interfaceFunction.dataInterface;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n _interfaceFunction._name = 'Data';\r\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\r\n return _interfaceFunction;\r\n };\r\n }();\r\n\r\n var interfaces = {\r\n layer: LayerExpressionInterface,\r\n effects: EffectsExpressionInterface,\r\n comp: CompExpressionInterface,\r\n shape: ShapeExpressionInterface,\r\n text: TextExpressionInterface,\r\n footage: FootageInterface\r\n };\r\n\r\n function getInterface(type) {\r\n return interfaces[type] || null;\r\n }\r\n\r\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\r\n\r\n /* eslint-disable */\r\n\r\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 */\r\n function seedRandom(pool, math) {\r\n //\r\n // The following constants are related to IEEE 754 limits.\r\n //\r\n var global = this,\r\n width = 256,\r\n // each RC4 output is 0 <= x < 256\r\n chunks = 6,\r\n // at least six RC4 outputs for each double\r\n digits = 52,\r\n // there are 52 significant digits in a double\r\n rngname = 'random',\r\n // rngname: name for Math.random and Math.seedrandom\r\n startdenom = math.pow(width, chunks),\r\n significance = math.pow(2, digits),\r\n overflow = significance * 2,\r\n mask = width - 1,\r\n nodecrypto; // node.js crypto module, initialized at the bottom.\r\n //\r\n // seedrandom()\r\n // This is the seedrandom function described above.\r\n //\r\n\r\n function seedrandom(seed, options, callback) {\r\n var key = [];\r\n options = options === true ? {\r\n entropy: true\r\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\r\n\r\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\r\n\r\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\r\n // randomness in every bit of the mantissa of the IEEE 754 value.\r\n\r\n var prng = function prng() {\r\n var n = arc4.g(chunks),\r\n // Start with a numerator n < 2 ^ 48\r\n d = startdenom,\r\n // and denominator d = 2 ^ 48.\r\n x = 0; // and no 'extra last byte'.\r\n\r\n while (n < significance) {\r\n // Fill up all significant digits by\r\n n = (n + x) * width; // shifting numerator and\r\n\r\n d *= width; // denominator and generating a\r\n\r\n x = arc4.g(1); // new least-significant-byte.\r\n }\r\n\r\n while (n >= overflow) {\r\n // To avoid rounding up, before adding\r\n n /= 2; // last byte, shift everything\r\n\r\n d /= 2; // right using integer math until\r\n\r\n x >>>= 1; // we have exactly the desired bits.\r\n }\r\n\r\n return (n + x) / d; // Form the number within [0, 1).\r\n };\r\n\r\n prng.int32 = function () {\r\n return arc4.g(4) | 0;\r\n };\r\n\r\n prng.quick = function () {\r\n return arc4.g(4) / 0x100000000;\r\n };\r\n\r\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\r\n\r\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\r\n\r\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\r\n if (state) {\r\n // Load the arc4 state from the given state if it has an S array.\r\n if (state.S) {\r\n copy(state, arc4);\r\n } // Only provide the .state method if requested via options.state.\r\n\r\n\r\n prng.state = function () {\r\n return copy(arc4, {});\r\n };\r\n } // If called as a method of Math (Math.seedrandom()), mutate\r\n // Math.random because that is how seedrandom.js has worked since v1.0.\r\n\r\n\r\n if (is_math_call) {\r\n math[rngname] = prng;\r\n return seed;\r\n } // Otherwise, it is a newer calling convention, so return the\r\n // prng directly.\r\n else return prng;\r\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\r\n }\r\n\r\n math['seed' + rngname] = seedrandom; //\r\n // ARC4\r\n //\r\n // An ARC4 implementation. The constructor takes a key in the form of\r\n // an array of at most (width) integers that should be 0 <= x < (width).\r\n //\r\n // The g(count) method returns a pseudorandom integer that concatenates\r\n // the next (count) outputs from ARC4. Its return value is a number x\r\n // that is in the range 0 <= x < (width ^ count).\r\n //\r\n\r\n function ARC4(key) {\r\n var t,\r\n keylen = key.length,\r\n me = this,\r\n i = 0,\r\n j = me.i = me.j = 0,\r\n s = me.S = []; // The empty key [] is treated as [0].\r\n\r\n if (!keylen) {\r\n key = [keylen++];\r\n } // Set up S using the standard key scheduling algorithm.\r\n\r\n\r\n while (i < width) {\r\n s[i] = i++;\r\n }\r\n\r\n for (i = 0; i < width; i++) {\r\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\r\n s[j] = t;\r\n } // The \"g\" method returns the next (count) outputs as one number.\r\n\r\n\r\n me.g = function (count) {\r\n // Using instance members instead of closure state nearly doubles speed.\r\n var t,\r\n r = 0,\r\n i = me.i,\r\n j = me.j,\r\n s = me.S;\r\n\r\n while (count--) {\r\n t = s[i = mask & i + 1];\r\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\r\n }\r\n\r\n me.i = i;\r\n me.j = j;\r\n return r; // For robust unpredictability, the function call below automatically\r\n // discards an initial batch of values. This is called RC4-drop[256].\r\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\r\n };\r\n } //\r\n // copy()\r\n // Copies internal state of ARC4 to or from a plain object.\r\n //\r\n\r\n\r\n function copy(f, t) {\r\n t.i = f.i;\r\n t.j = f.j;\r\n t.S = f.S.slice();\r\n return t;\r\n } //\r\n // flatten()\r\n // Converts an object tree to nested arrays of strings.\r\n //\r\n\r\n\r\n function flatten(obj, depth) {\r\n var result = [],\r\n typ = _typeof$1(obj),\r\n prop;\r\n\r\n if (depth && typ == 'object') {\r\n for (prop in obj) {\r\n try {\r\n result.push(flatten(obj[prop], depth - 1));\r\n } catch (e) {}\r\n }\r\n }\r\n\r\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\r\n } //\r\n // mixkey()\r\n // Mixes a string seed into a key that is an array of integers, and\r\n // returns a shortened string seed that is equivalent to the result key.\r\n //\r\n\r\n\r\n function mixkey(seed, key) {\r\n var stringseed = seed + '',\r\n smear,\r\n j = 0;\r\n\r\n while (j < stringseed.length) {\r\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\r\n }\r\n\r\n return tostring(key);\r\n } //\r\n // autoseed()\r\n // Returns an object for autoseeding, using window.crypto and Node crypto\r\n // module if available.\r\n //\r\n\r\n\r\n function autoseed() {\r\n try {\r\n if (nodecrypto) {\r\n return tostring(nodecrypto.randomBytes(width));\r\n }\r\n\r\n var out = new Uint8Array(width);\r\n (global.crypto || global.msCrypto).getRandomValues(out);\r\n return tostring(out);\r\n } catch (e) {\r\n var browser = global.navigator,\r\n plugins = browser && browser.plugins;\r\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\r\n }\r\n } //\r\n // tostring()\r\n // Converts an array of charcodes to a string\r\n //\r\n\r\n\r\n function tostring(a) {\r\n return String.fromCharCode.apply(0, a);\r\n } //\r\n // When seedrandom.js is loaded, we immediately mix a few bits\r\n // from the built-in RNG into the entropy pool. Because we do\r\n // not want to interfere with deterministic PRNG state later,\r\n // seedrandom will not call math.random on its own again after\r\n // initialization.\r\n //\r\n\r\n\r\n mixkey(math.random(), pool); //\r\n // Nodejs and AMD support: export the implementation as a module using\r\n // either convention.\r\n //\r\n // End anonymous scope, and pass initial values.\r\n }\r\n\r\n ;\r\n\r\n function initialize$2(BMMath) {\r\n seedRandom([], BMMath);\r\n }\r\n\r\n var propTypes = {\r\n SHAPE: 'shape'\r\n };\r\n\r\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\r\n\r\n var ExpressionManager = function () {\r\n 'use strict';\r\n\r\n var ob = {};\r\n var Math = BMMath;\r\n var window = null;\r\n var document = null;\r\n var XMLHttpRequest = null;\r\n var fetch = null;\r\n var frames = null;\r\n initialize$2(BMMath);\r\n\r\n function $bm_isInstanceOfArray(arr) {\r\n return arr.constructor === Array || arr.constructor === Float32Array;\r\n }\r\n\r\n function isNumerable(tOfV, v) {\r\n return tOfV === 'number' || tOfV === 'boolean' || tOfV === 'string' || v instanceof Number;\r\n }\r\n\r\n function $bm_neg(a) {\r\n var tOfA = _typeof(a);\r\n\r\n if (tOfA === 'number' || tOfA === 'boolean' || a instanceof Number) {\r\n return -a;\r\n }\r\n\r\n if ($bm_isInstanceOfArray(a)) {\r\n var i;\r\n var lenA = a.length;\r\n var retArr = [];\r\n\r\n for (i = 0; i < lenA; i += 1) {\r\n retArr[i] = -a[i];\r\n }\r\n\r\n return retArr;\r\n }\r\n\r\n if (a.propType) {\r\n return a.v;\r\n }\r\n\r\n return -a;\r\n }\r\n\r\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\r\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\r\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\r\n\r\n function sum(a, b) {\r\n var tOfA = _typeof(a);\r\n\r\n var tOfB = _typeof(b);\r\n\r\n if (tOfA === 'string' || tOfB === 'string') {\r\n return a + b;\r\n }\r\n\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n return a + b;\r\n }\r\n\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n a = a.slice(0);\r\n a[0] += b;\r\n return a;\r\n }\r\n\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n b = b.slice(0);\r\n b[0] = a + b[0];\r\n return b;\r\n }\r\n\r\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\r\n var i = 0;\r\n var lenA = a.length;\r\n var lenB = b.length;\r\n var retArr = [];\r\n\r\n while (i < lenA || i < lenB) {\r\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\r\n retArr[i] = a[i] + b[i];\r\n } else {\r\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return retArr;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n var add = sum;\r\n\r\n function sub(a, b) {\r\n var tOfA = _typeof(a);\r\n\r\n var tOfB = _typeof(b);\r\n\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n if (tOfA === 'string') {\r\n a = parseInt(a, 10);\r\n }\r\n\r\n if (tOfB === 'string') {\r\n b = parseInt(b, 10);\r\n }\r\n\r\n return a - b;\r\n }\r\n\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n a = a.slice(0);\r\n a[0] -= b;\r\n return a;\r\n }\r\n\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n b = b.slice(0);\r\n b[0] = a - b[0];\r\n return b;\r\n }\r\n\r\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\r\n var i = 0;\r\n var lenA = a.length;\r\n var lenB = b.length;\r\n var retArr = [];\r\n\r\n while (i < lenA || i < lenB) {\r\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\r\n retArr[i] = a[i] - b[i];\r\n } else {\r\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return retArr;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n function mul(a, b) {\r\n var tOfA = _typeof(a);\r\n\r\n var tOfB = _typeof(b);\r\n\r\n var arr;\r\n\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n return a * b;\r\n }\r\n\r\n var i;\r\n var len;\r\n\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n len = a.length;\r\n arr = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a[i] * b;\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n len = b.length;\r\n arr = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a * b[i];\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n function div(a, b) {\r\n var tOfA = _typeof(a);\r\n\r\n var tOfB = _typeof(b);\r\n\r\n var arr;\r\n\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n return a / b;\r\n }\r\n\r\n var i;\r\n var len;\r\n\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n len = a.length;\r\n arr = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a[i] / b;\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n len = b.length;\r\n arr = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a / b[i];\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n function mod(a, b) {\r\n if (typeof a === 'string') {\r\n a = parseInt(a, 10);\r\n }\r\n\r\n if (typeof b === 'string') {\r\n b = parseInt(b, 10);\r\n }\r\n\r\n return a % b;\r\n }\r\n\r\n var $bm_sum = sum;\r\n var $bm_sub = sub;\r\n var $bm_mul = mul;\r\n var $bm_div = div;\r\n var $bm_mod = mod;\r\n\r\n function clamp(num, min, max) {\r\n if (min > max) {\r\n var mm = max;\r\n max = min;\r\n min = mm;\r\n }\r\n\r\n return Math.min(Math.max(num, min), max);\r\n }\r\n\r\n function radiansToDegrees(val) {\r\n return val / degToRads;\r\n }\r\n\r\n var radians_to_degrees = radiansToDegrees;\r\n\r\n function degreesToRadians(val) {\r\n return val * degToRads;\r\n }\r\n\r\n var degrees_to_radians = radiansToDegrees;\r\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\r\n\r\n function length(arr1, arr2) {\r\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\r\n arr2 = arr2 || 0;\r\n return Math.abs(arr1 - arr2);\r\n }\r\n\r\n if (!arr2) {\r\n arr2 = helperLengthArray;\r\n }\r\n\r\n var i;\r\n var len = Math.min(arr1.length, arr2.length);\r\n var addedLength = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\r\n }\r\n\r\n return Math.sqrt(addedLength);\r\n }\r\n\r\n function normalize(vec) {\r\n return div(vec, length(vec));\r\n }\r\n\r\n function rgbToHsl(val) {\r\n var r = val[0];\r\n var g = val[1];\r\n var b = val[2];\r\n var max = Math.max(r, g, b);\r\n var min = Math.min(r, g, b);\r\n var h;\r\n var s;\r\n var l = (max + min) / 2;\r\n\r\n if (max === min) {\r\n h = 0; // achromatic\r\n\r\n s = 0; // achromatic\r\n } else {\r\n var d = max - min;\r\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\r\n\r\n switch (max) {\r\n case r:\r\n h = (g - b) / d + (g < b ? 6 : 0);\r\n break;\r\n\r\n case g:\r\n h = (b - r) / d + 2;\r\n break;\r\n\r\n case b:\r\n h = (r - g) / d + 4;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n h /= 6;\r\n }\r\n\r\n return [h, s, l, val[3]];\r\n }\r\n\r\n function hue2rgb(p, q, t) {\r\n if (t < 0) t += 1;\r\n if (t > 1) t -= 1;\r\n if (t < 1 / 6) return p + (q - p) * 6 * t;\r\n if (t < 1 / 2) return q;\r\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\r\n return p;\r\n }\r\n\r\n function hslToRgb(val) {\r\n var h = val[0];\r\n var s = val[1];\r\n var l = val[2];\r\n var r;\r\n var g;\r\n var b;\r\n\r\n if (s === 0) {\r\n r = l; // achromatic\r\n\r\n b = l; // achromatic\r\n\r\n g = l; // achromatic\r\n } else {\r\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\r\n var p = 2 * l - q;\r\n r = hue2rgb(p, q, h + 1 / 3);\r\n g = hue2rgb(p, q, h);\r\n b = hue2rgb(p, q, h - 1 / 3);\r\n }\r\n\r\n return [r, g, b, val[3]];\r\n }\r\n\r\n function linear(t, tMin, tMax, value1, value2) {\r\n if (value1 === undefined || value2 === undefined) {\r\n value1 = tMin;\r\n value2 = tMax;\r\n tMin = 0;\r\n tMax = 1;\r\n }\r\n\r\n if (tMax < tMin) {\r\n var _tMin = tMax;\r\n tMax = tMin;\r\n tMin = _tMin;\r\n }\r\n\r\n if (t <= tMin) {\r\n return value1;\r\n }\r\n\r\n if (t >= tMax) {\r\n return value2;\r\n }\r\n\r\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\r\n\r\n if (!value1.length) {\r\n return value1 + (value2 - value1) * perc;\r\n }\r\n\r\n var i;\r\n var len = value1.length;\r\n var arr = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n function random(min, max) {\r\n if (max === undefined) {\r\n if (min === undefined) {\r\n min = 0;\r\n max = 1;\r\n } else {\r\n max = min;\r\n min = undefined;\r\n }\r\n }\r\n\r\n if (max.length) {\r\n var i;\r\n var len = max.length;\r\n\r\n if (!min) {\r\n min = createTypedArray('float32', len);\r\n }\r\n\r\n var arr = createTypedArray('float32', len);\r\n var rnd = BMMath.random();\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = min[i] + rnd * (max[i] - min[i]);\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n if (min === undefined) {\r\n min = 0;\r\n }\r\n\r\n var rndm = BMMath.random();\r\n return min + rndm * (max - min);\r\n }\r\n\r\n function createPath(points, inTangents, outTangents, closed) {\r\n var i;\r\n var len = points.length;\r\n var path = shapePool.newElement();\r\n path.setPathData(!!closed, len);\r\n var arrPlaceholder = [0, 0];\r\n var inVertexPoint;\r\n var outVertexPoint;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\r\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\r\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);\r\n }\r\n\r\n return path;\r\n }\r\n\r\n function initiateExpression(elem, data, property) {\r\n // Bail out if we don't want expressions\r\n function noOp(_value) {\r\n return _value;\r\n }\r\n\r\n if (!elem.globalData.renderConfig.runExpressions) {\r\n return noOp;\r\n }\r\n\r\n var val = data.x;\r\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\r\n\r\n var _needsRandom = val.indexOf('random') !== -1;\r\n\r\n var elemType = elem.data.ty;\r\n var transform;\r\n var $bm_transform;\r\n var content;\r\n var effect;\r\n var thisProperty = property;\r\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\r\n Object.defineProperty(thisProperty, 'value', {\r\n get: function get() {\r\n return thisProperty.v;\r\n }\r\n });\r\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\r\n elem.comp.displayStartTime = 0;\r\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\r\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\r\n var width = elem.data.sw ? elem.data.sw : 0;\r\n var height = elem.data.sh ? elem.data.sh : 0;\r\n var name = elem.data.nm;\r\n var loopIn;\r\n var loop_in;\r\n var loopOut;\r\n var loop_out;\r\n var smooth;\r\n var toWorld;\r\n var fromWorld;\r\n var fromComp;\r\n var toComp;\r\n var fromCompToSurface;\r\n var position;\r\n var rotation;\r\n var anchorPoint;\r\n var scale;\r\n var thisLayer;\r\n var thisComp;\r\n var mask;\r\n var valueAtTime;\r\n var velocityAtTime;\r\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\r\n\r\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\r\n\r\n var numKeys = property.kf ? data.k.length : 0;\r\n var active = !this.data || this.data.hd !== true;\r\n\r\n var wiggle = function wiggle(freq, amp) {\r\n var iWiggle;\r\n var j;\r\n var lenWiggle = this.pv.length ? this.pv.length : 1;\r\n var addedAmps = createTypedArray('float32', lenWiggle);\r\n freq = 5;\r\n var iterations = Math.floor(time * freq);\r\n iWiggle = 0;\r\n j = 0;\r\n\r\n while (iWiggle < iterations) {\r\n // var rnd = BMMath.random();\r\n for (j = 0; j < lenWiggle; j += 1) {\r\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\r\n }\r\n\r\n iWiggle += 1;\r\n } // var rnd2 = BMMath.random();\r\n\r\n\r\n var periods = time * freq;\r\n var perc = periods - Math.floor(periods);\r\n var arr = createTypedArray('float32', lenWiggle);\r\n\r\n if (lenWiggle > 1) {\r\n for (j = 0; j < lenWiggle; j += 1) {\r\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\r\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\r\n }.bind(this);\r\n\r\n if (thisProperty.loopIn) {\r\n loopIn = thisProperty.loopIn.bind(thisProperty);\r\n loop_in = loopIn;\r\n }\r\n\r\n if (thisProperty.loopOut) {\r\n loopOut = thisProperty.loopOut.bind(thisProperty);\r\n loop_out = loopOut;\r\n }\r\n\r\n if (thisProperty.smooth) {\r\n smooth = thisProperty.smooth.bind(thisProperty);\r\n }\r\n\r\n function loopInDuration(type, duration) {\r\n return loopIn(type, duration, true);\r\n }\r\n\r\n function loopOutDuration(type, duration) {\r\n return loopOut(type, duration, true);\r\n }\r\n\r\n if (this.getValueAtTime) {\r\n valueAtTime = this.getValueAtTime.bind(this);\r\n }\r\n\r\n if (this.getVelocityAtTime) {\r\n velocityAtTime = this.getVelocityAtTime.bind(this);\r\n }\r\n\r\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\r\n\r\n function lookAt(elem1, elem2) {\r\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\r\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\r\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\r\n return [yaw, pitch, 0];\r\n }\r\n\r\n function easeOut(t, tMin, tMax, val1, val2) {\r\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\r\n }\r\n\r\n function easeIn(t, tMin, tMax, val1, val2) {\r\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\r\n }\r\n\r\n function ease(t, tMin, tMax, val1, val2) {\r\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\r\n }\r\n\r\n function applyEase(fn, t, tMin, tMax, val1, val2) {\r\n if (val1 === undefined) {\r\n val1 = tMin;\r\n val2 = tMax;\r\n } else {\r\n t = (t - tMin) / (tMax - tMin);\r\n }\r\n\r\n if (t > 1) {\r\n t = 1;\r\n } else if (t < 0) {\r\n t = 0;\r\n }\r\n\r\n var mult = fn(t);\r\n\r\n if ($bm_isInstanceOfArray(val1)) {\r\n var iKey;\r\n var lenKey = val1.length;\r\n var arr = createTypedArray('float32', lenKey);\r\n\r\n for (iKey = 0; iKey < lenKey; iKey += 1) {\r\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n return (val2 - val1) * mult + val1;\r\n }\r\n\r\n function nearestKey(time) {\r\n var iKey;\r\n var lenKey = data.k.length;\r\n var index;\r\n var keyTime;\r\n\r\n if (!data.k.length || typeof data.k[0] === 'number') {\r\n index = 0;\r\n keyTime = 0;\r\n } else {\r\n index = -1;\r\n time *= elem.comp.globalData.frameRate;\r\n\r\n if (time < data.k[0].t) {\r\n index = 1;\r\n keyTime = data.k[0].t;\r\n } else {\r\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\r\n if (time === data.k[iKey].t) {\r\n index = iKey + 1;\r\n keyTime = data.k[iKey].t;\r\n break;\r\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\r\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\r\n index = iKey + 2;\r\n keyTime = data.k[iKey + 1].t;\r\n } else {\r\n index = iKey + 1;\r\n keyTime = data.k[iKey].t;\r\n }\r\n\r\n break;\r\n }\r\n }\r\n\r\n if (index === -1) {\r\n index = iKey + 1;\r\n keyTime = data.k[iKey].t;\r\n }\r\n }\r\n }\r\n\r\n var obKey = {};\r\n obKey.index = index;\r\n obKey.time = keyTime / elem.comp.globalData.frameRate;\r\n return obKey;\r\n }\r\n\r\n function key(ind) {\r\n var obKey;\r\n var iKey;\r\n var lenKey;\r\n\r\n if (!data.k.length || typeof data.k[0] === 'number') {\r\n throw new Error('The property has no keyframe at index ' + ind);\r\n }\r\n\r\n ind -= 1;\r\n obKey = {\r\n time: data.k[ind].t / elem.comp.globalData.frameRate,\r\n value: []\r\n };\r\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\r\n lenKey = arr.length;\r\n\r\n for (iKey = 0; iKey < lenKey; iKey += 1) {\r\n obKey[iKey] = arr[iKey];\r\n obKey.value[iKey] = arr[iKey];\r\n }\r\n\r\n return obKey;\r\n }\r\n\r\n function framesToTime(fr, fps) {\r\n if (!fps) {\r\n fps = elem.comp.globalData.frameRate;\r\n }\r\n\r\n return fr / fps;\r\n }\r\n\r\n function timeToFrames(t, fps) {\r\n if (!t && t !== 0) {\r\n t = time;\r\n }\r\n\r\n if (!fps) {\r\n fps = elem.comp.globalData.frameRate;\r\n }\r\n\r\n return t * fps;\r\n }\r\n\r\n function seedRandom(seed) {\r\n BMMath.seedrandom(randSeed + seed);\r\n }\r\n\r\n function sourceRectAtTime() {\r\n return elem.sourceRectAtTime();\r\n }\r\n\r\n function substring(init, end) {\r\n if (typeof value === 'string') {\r\n if (end === undefined) {\r\n return value.substring(init);\r\n }\r\n\r\n return value.substring(init, end);\r\n }\r\n\r\n return '';\r\n }\r\n\r\n function substr(init, end) {\r\n if (typeof value === 'string') {\r\n if (end === undefined) {\r\n return value.substr(init);\r\n }\r\n\r\n return value.substr(init, end);\r\n }\r\n\r\n return '';\r\n }\r\n\r\n function posterizeTime(framesPerSecond) {\r\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\r\n value = valueAtTime(time);\r\n }\r\n\r\n var time;\r\n var velocity;\r\n var value;\r\n var text;\r\n var textIndex;\r\n var textTotal;\r\n var selectorValue;\r\n var index = elem.data.ind;\r\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\r\n var parent;\r\n var randSeed = Math.floor(Math.random() * 1000000);\r\n var globalData = elem.globalData;\r\n\r\n function executeExpression(_value) {\r\n // globalData.pushExpression();\r\n value = _value;\r\n\r\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\r\n return value;\r\n }\r\n\r\n if (this.propType === 'textSelector') {\r\n textIndex = this.textIndex;\r\n textTotal = this.textTotal;\r\n selectorValue = this.selectorValue;\r\n }\r\n\r\n if (!thisLayer) {\r\n text = elem.layerInterface.text;\r\n thisLayer = elem.layerInterface;\r\n thisComp = elem.comp.compInterface;\r\n toWorld = thisLayer.toWorld.bind(thisLayer);\r\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\r\n fromComp = thisLayer.fromComp.bind(thisLayer);\r\n toComp = thisLayer.toComp.bind(thisLayer);\r\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\r\n fromCompToSurface = fromComp;\r\n }\r\n\r\n if (!transform) {\r\n transform = elem.layerInterface('ADBE Transform Group');\r\n $bm_transform = transform;\r\n\r\n if (transform) {\r\n anchorPoint = transform.anchorPoint;\r\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\r\n }\r\n }\r\n\r\n if (elemType === 4 && !content) {\r\n content = thisLayer('ADBE Root Vectors Group');\r\n }\r\n\r\n if (!effect) {\r\n effect = thisLayer(4);\r\n }\r\n\r\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\r\n\r\n if (hasParent && !parent) {\r\n parent = elem.hierarchy[0].layerInterface;\r\n }\r\n\r\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\r\n\r\n if (_needsRandom) {\r\n seedRandom(randSeed + time);\r\n }\r\n\r\n if (needsVelocity) {\r\n velocity = velocityAtTime(time);\r\n }\r\n\r\n expression_function();\r\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\r\n // Changed this to a ternary operation because Rollup failed compiling it correctly\r\n\r\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\r\n return scoped_bm_rt;\r\n } // Bundlers will see these as dead code and unless we reference them\r\n\r\n\r\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, time, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\r\n return executeExpression;\r\n }\r\n\r\n ob.initiateExpression = initiateExpression;\r\n ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath];\r\n return ob;\r\n }();\r\n\r\n var expressionHelpers = function () {\r\n function searchExpressions(elem, data, prop) {\r\n if (data.x) {\r\n prop.k = true;\r\n prop.x = true;\r\n prop.initiateExpression = ExpressionManager.initiateExpression;\r\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\r\n }\r\n }\r\n\r\n function getValueAtTime(frameNum) {\r\n frameNum *= this.elem.globalData.frameRate;\r\n frameNum -= this.offsetTime;\r\n\r\n if (frameNum !== this._cachingAtTime.lastFrame) {\r\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\r\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\r\n this._cachingAtTime.lastFrame = frameNum;\r\n }\r\n\r\n return this._cachingAtTime.value;\r\n }\r\n\r\n function getSpeedAtTime(frameNum) {\r\n var delta = -0.01;\r\n var v1 = this.getValueAtTime(frameNum);\r\n var v2 = this.getValueAtTime(frameNum + delta);\r\n var speed = 0;\r\n\r\n if (v1.length) {\r\n var i;\r\n\r\n for (i = 0; i < v1.length; i += 1) {\r\n speed += Math.pow(v2[i] - v1[i], 2);\r\n }\r\n\r\n speed = Math.sqrt(speed) * 100;\r\n } else {\r\n speed = 0;\r\n }\r\n\r\n return speed;\r\n }\r\n\r\n function getVelocityAtTime(frameNum) {\r\n if (this.vel !== undefined) {\r\n return this.vel;\r\n }\r\n\r\n var delta = -0.001; // frameNum += this.elem.data.st;\r\n\r\n var v1 = this.getValueAtTime(frameNum);\r\n var v2 = this.getValueAtTime(frameNum + delta);\r\n var velocity;\r\n\r\n if (v1.length) {\r\n velocity = createTypedArray('float32', v1.length);\r\n var i;\r\n\r\n for (i = 0; i < v1.length; i += 1) {\r\n // removing frameRate\r\n // if needed, don't add it here\r\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\r\n velocity[i] = (v2[i] - v1[i]) / delta;\r\n }\r\n } else {\r\n velocity = (v2 - v1) / delta;\r\n }\r\n\r\n return velocity;\r\n }\r\n\r\n function getStaticValueAtTime() {\r\n return this.pv;\r\n }\r\n\r\n function setGroupProperty(propertyGroup) {\r\n this.propertyGroup = propertyGroup;\r\n }\r\n\r\n return {\r\n searchExpressions: searchExpressions,\r\n getSpeedAtTime: getSpeedAtTime,\r\n getVelocityAtTime: getVelocityAtTime,\r\n getValueAtTime: getValueAtTime,\r\n getStaticValueAtTime: getStaticValueAtTime,\r\n setGroupProperty: setGroupProperty\r\n };\r\n }();\r\n\r\n function addPropertyDecorator() {\r\n function loopOut(type, duration, durationFlag) {\r\n if (!this.k || !this.keyframes) {\r\n return this.pv;\r\n }\r\n\r\n type = type ? type.toLowerCase() : '';\r\n var currentFrame = this.comp.renderedFrame;\r\n var keyframes = this.keyframes;\r\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\r\n\r\n if (currentFrame <= lastKeyFrame) {\r\n return this.pv;\r\n }\r\n\r\n var cycleDuration;\r\n var firstKeyFrame;\r\n\r\n if (!durationFlag) {\r\n if (!duration || duration > keyframes.length - 1) {\r\n duration = keyframes.length - 1;\r\n }\r\n\r\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\r\n cycleDuration = lastKeyFrame - firstKeyFrame;\r\n } else {\r\n if (!duration) {\r\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\r\n } else {\r\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\r\n }\r\n\r\n firstKeyFrame = lastKeyFrame - cycleDuration;\r\n }\r\n\r\n var i;\r\n var len;\r\n var ret;\r\n\r\n if (type === 'pingpong') {\r\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\r\n\r\n if (iterations % 2 !== 0) {\r\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n }\r\n } else if (type === 'offset') {\r\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\r\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\r\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n\r\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\r\n\r\n if (this.pv.length) {\r\n ret = new Array(initV.length);\r\n len = ret.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n return (endV - initV) * repeats + current;\r\n } else if (type === 'continue') {\r\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\r\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\r\n\r\n if (this.pv.length) {\r\n ret = new Array(lastValue.length);\r\n len = ret.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\r\n }\r\n\r\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n }\r\n\r\n function loopIn(type, duration, durationFlag) {\r\n if (!this.k) {\r\n return this.pv;\r\n }\r\n\r\n type = type ? type.toLowerCase() : '';\r\n var currentFrame = this.comp.renderedFrame;\r\n var keyframes = this.keyframes;\r\n var firstKeyFrame = keyframes[0].t;\r\n\r\n if (currentFrame >= firstKeyFrame) {\r\n return this.pv;\r\n }\r\n\r\n var cycleDuration;\r\n var lastKeyFrame;\r\n\r\n if (!durationFlag) {\r\n if (!duration || duration > keyframes.length - 1) {\r\n duration = keyframes.length - 1;\r\n }\r\n\r\n lastKeyFrame = keyframes[duration].t;\r\n cycleDuration = lastKeyFrame - firstKeyFrame;\r\n } else {\r\n if (!duration) {\r\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\r\n } else {\r\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\r\n }\r\n\r\n lastKeyFrame = firstKeyFrame + cycleDuration;\r\n }\r\n\r\n var i;\r\n var len;\r\n var ret;\r\n\r\n if (type === 'pingpong') {\r\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\r\n\r\n if (iterations % 2 === 0) {\r\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n }\r\n } else if (type === 'offset') {\r\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\r\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\r\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\r\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\r\n\r\n if (this.pv.length) {\r\n ret = new Array(initV.length);\r\n len = ret.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n return current - (endV - initV) * repeats;\r\n } else if (type === 'continue') {\r\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\r\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\r\n\r\n if (this.pv.length) {\r\n ret = new Array(firstValue.length);\r\n len = ret.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\r\n }\r\n\r\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n }\r\n\r\n function smooth(width, samples) {\r\n if (!this.k) {\r\n return this.pv;\r\n }\r\n\r\n width = (width || 0.4) * 0.5;\r\n samples = Math.floor(samples || 5);\r\n\r\n if (samples <= 1) {\r\n return this.pv;\r\n }\r\n\r\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\r\n var initFrame = currentTime - width;\r\n var endFrame = currentTime + width;\r\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\r\n var i = 0;\r\n var j = 0;\r\n var value;\r\n\r\n if (this.pv.length) {\r\n value = createTypedArray('float32', this.pv.length);\r\n } else {\r\n value = 0;\r\n }\r\n\r\n var sampleValue;\r\n\r\n while (i < samples) {\r\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\r\n\r\n if (this.pv.length) {\r\n for (j = 0; j < this.pv.length; j += 1) {\r\n value[j] += sampleValue[j];\r\n }\r\n } else {\r\n value += sampleValue;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (this.pv.length) {\r\n for (j = 0; j < this.pv.length; j += 1) {\r\n value[j] /= samples;\r\n }\r\n } else {\r\n value /= samples;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n function getTransformValueAtTime(time) {\r\n if (!this._transformCachingAtTime) {\r\n this._transformCachingAtTime = {\r\n v: new Matrix()\r\n };\r\n } /// /\r\n\r\n\r\n var matrix = this._transformCachingAtTime.v;\r\n matrix.cloneFromProps(this.pre.props);\r\n\r\n if (this.appliedTransformations < 1) {\r\n var anchor = this.a.getValueAtTime(time);\r\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\r\n }\r\n\r\n if (this.appliedTransformations < 2) {\r\n var scale = this.s.getValueAtTime(time);\r\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\r\n }\r\n\r\n if (this.sk && this.appliedTransformations < 3) {\r\n var skew = this.sk.getValueAtTime(time);\r\n var skewAxis = this.sa.getValueAtTime(time);\r\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\r\n }\r\n\r\n if (this.r && this.appliedTransformations < 4) {\r\n var rotation = this.r.getValueAtTime(time);\r\n matrix.rotate(-rotation * this.r.mult);\r\n } else if (!this.r && this.appliedTransformations < 4) {\r\n var rotationZ = this.rz.getValueAtTime(time);\r\n var rotationY = this.ry.getValueAtTime(time);\r\n var rotationX = this.rx.getValueAtTime(time);\r\n var orientation = this.or.getValueAtTime(time);\r\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\r\n }\r\n\r\n if (this.data.p && this.data.p.s) {\r\n var positionX = this.px.getValueAtTime(time);\r\n var positionY = this.py.getValueAtTime(time);\r\n\r\n if (this.data.p.z) {\r\n var positionZ = this.pz.getValueAtTime(time);\r\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\r\n } else {\r\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\r\n }\r\n } else {\r\n var position = this.p.getValueAtTime(time);\r\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\r\n }\r\n\r\n return matrix; /// /\r\n }\r\n\r\n function getTransformStaticValueAtTime() {\r\n return this.v.clone(new Matrix());\r\n }\r\n\r\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\r\n\r\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\r\n var prop = getTransformProperty(elem, data, container);\r\n\r\n if (prop.dynamicProperties.length) {\r\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\r\n } else {\r\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\r\n }\r\n\r\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\r\n return prop;\r\n };\r\n\r\n var propertyGetProp = PropertyFactory.getProp;\r\n\r\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\r\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\r\n // prop.loopOut = loopOut;\r\n // prop.loopIn = loopIn;\r\n\r\n if (prop.kf) {\r\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\r\n } else {\r\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\r\n }\r\n\r\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\r\n prop.loopOut = loopOut;\r\n prop.loopIn = loopIn;\r\n prop.smooth = smooth;\r\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\r\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\r\n prop.numKeys = data.a === 1 ? data.k.length : 0;\r\n prop.propertyIndex = data.ix;\r\n var value = 0;\r\n\r\n if (type !== 0) {\r\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\r\n }\r\n\r\n prop._cachingAtTime = {\r\n lastFrame: initialDefaultFrame,\r\n lastIndex: 0,\r\n value: value\r\n };\r\n expressionHelpers.searchExpressions(elem, data, prop);\r\n\r\n if (prop.k) {\r\n container.addDynamicProperty(prop);\r\n }\r\n\r\n return prop;\r\n };\r\n\r\n function getShapeValueAtTime(frameNum) {\r\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\r\n if (!this._cachingAtTime) {\r\n this._cachingAtTime = {\r\n shapeValue: shapePool.clone(this.pv),\r\n lastIndex: 0,\r\n lastTime: initialDefaultFrame\r\n };\r\n }\r\n\r\n frameNum *= this.elem.globalData.frameRate;\r\n frameNum -= this.offsetTime;\r\n\r\n if (frameNum !== this._cachingAtTime.lastTime) {\r\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\r\n this._cachingAtTime.lastTime = frameNum;\r\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\r\n }\r\n\r\n return this._cachingAtTime.shapeValue;\r\n }\r\n\r\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\r\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\r\n\r\n function ShapeExpressions() {}\r\n\r\n ShapeExpressions.prototype = {\r\n vertices: function vertices(prop, time) {\r\n if (this.k) {\r\n this.getValue();\r\n }\r\n\r\n var shapePath = this.v;\r\n\r\n if (time !== undefined) {\r\n shapePath = this.getValueAtTime(time, 0);\r\n }\r\n\r\n var i;\r\n var len = shapePath._length;\r\n var vertices = shapePath[prop];\r\n var points = shapePath.v;\r\n var arr = createSizedArray(len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (prop === 'i' || prop === 'o') {\r\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\r\n } else {\r\n arr[i] = [vertices[i][0], vertices[i][1]];\r\n }\r\n }\r\n\r\n return arr;\r\n },\r\n points: function points(time) {\r\n return this.vertices('v', time);\r\n },\r\n inTangents: function inTangents(time) {\r\n return this.vertices('i', time);\r\n },\r\n outTangents: function outTangents(time) {\r\n return this.vertices('o', time);\r\n },\r\n isClosed: function isClosed() {\r\n return this.v.c;\r\n },\r\n pointOnPath: function pointOnPath(perc, time) {\r\n var shapePath = this.v;\r\n\r\n if (time !== undefined) {\r\n shapePath = this.getValueAtTime(time, 0);\r\n }\r\n\r\n if (!this._segmentsLength) {\r\n this._segmentsLength = bez.getSegmentsLength(shapePath);\r\n }\r\n\r\n var segmentsLength = this._segmentsLength;\r\n var lengths = segmentsLength.lengths;\r\n var lengthPos = segmentsLength.totalLength * perc;\r\n var i = 0;\r\n var len = lengths.length;\r\n var accumulatedLength = 0;\r\n var pt;\r\n\r\n while (i < len) {\r\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\r\n var initIndex = i;\r\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\r\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\r\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\r\n break;\r\n } else {\r\n accumulatedLength += lengths[i].addedLength;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (!pt) {\r\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\r\n }\r\n\r\n return pt;\r\n },\r\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\r\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\r\n if (perc == 1) {\r\n // eslint-disable-line eqeqeq\r\n perc = this.v.c;\r\n } else if (perc == 0) {\r\n // eslint-disable-line eqeqeq\r\n perc = 0.999;\r\n }\r\n\r\n var pt1 = this.pointOnPath(perc, time);\r\n var pt2 = this.pointOnPath(perc + 0.001, time);\r\n var xLength = pt2[0] - pt1[0];\r\n var yLength = pt2[1] - pt1[1];\r\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\r\n\r\n if (magnitude === 0) {\r\n return [0, 0];\r\n }\r\n\r\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\r\n return unitVector;\r\n },\r\n tangentOnPath: function tangentOnPath(perc, time) {\r\n return this.vectorOnPath(perc, time, 'tangent');\r\n },\r\n normalOnPath: function normalOnPath(perc, time) {\r\n return this.vectorOnPath(perc, time, 'normal');\r\n },\r\n setGroupProperty: expressionHelpers.setGroupProperty,\r\n getValueAtTime: expressionHelpers.getStaticValueAtTime\r\n };\r\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\r\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\r\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\r\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\r\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\r\n\r\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\r\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\r\n prop.propertyIndex = data.ix;\r\n prop.lock = false;\r\n\r\n if (type === 3) {\r\n expressionHelpers.searchExpressions(elem, data.pt, prop);\r\n } else if (type === 4) {\r\n expressionHelpers.searchExpressions(elem, data.ks, prop);\r\n }\r\n\r\n if (prop.k) {\r\n elem.addDynamicProperty(prop);\r\n }\r\n\r\n return prop;\r\n };\r\n }\r\n\r\n function initialize$1() {\r\n addPropertyDecorator();\r\n }\r\n\r\n function addDecorator() {\r\n function searchExpressions() {\r\n if (this.data.d.x) {\r\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\r\n this.addEffect(this.getExpressionValue.bind(this));\r\n return true;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\r\n var newValue = this.calculateExpression(text);\r\n\r\n if (currentValue.t !== newValue) {\r\n var newData = {};\r\n this.copyData(newData, currentValue);\r\n newData.t = newValue.toString();\r\n newData.__complete = false;\r\n return newData;\r\n }\r\n\r\n return currentValue;\r\n };\r\n\r\n TextProperty.prototype.searchProperty = function () {\r\n var isKeyframed = this.searchKeyframes();\r\n var hasExpressions = this.searchExpressions();\r\n this.kf = isKeyframed || hasExpressions;\r\n return this.kf;\r\n };\r\n\r\n TextProperty.prototype.searchExpressions = searchExpressions;\r\n }\r\n\r\n function initialize() {\r\n addDecorator();\r\n }\r\n\r\n function SVGComposableEffect() {}\r\n\r\n SVGComposableEffect.prototype = {\r\n createMergeNode: function createMergeNode(resultId, ins) {\r\n var feMerge = createNS('feMerge');\r\n feMerge.setAttribute('result', resultId);\r\n var feMergeNode;\r\n var i;\r\n\r\n for (i = 0; i < ins.length; i += 1) {\r\n feMergeNode = createNS('feMergeNode');\r\n feMergeNode.setAttribute('in', ins[i]);\r\n feMerge.appendChild(feMergeNode);\r\n feMerge.appendChild(feMergeNode);\r\n }\r\n\r\n return feMerge;\r\n }\r\n };\r\n\r\n var linearFilterValue = '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';\r\n\r\n function SVGTintFilter(filter, filterManager, elem, id, source) {\r\n this.filterManager = filterManager;\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\r\n feColorMatrix.setAttribute('values', linearFilterValue + ' 1 0');\r\n this.linearFilter = feColorMatrix;\r\n feColorMatrix.setAttribute('result', id + '_tint_1');\r\n filter.appendChild(feColorMatrix);\r\n 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 0');\r\n feColorMatrix.setAttribute('result', id + '_tint_2');\r\n filter.appendChild(feColorMatrix);\r\n this.matrixFilter = feColorMatrix;\r\n var feMerge = this.createMergeNode(id, [source, id + '_tint_1', id + '_tint_2']);\r\n filter.appendChild(feMerge);\r\n }\r\n\r\n extendPrototype([SVGComposableEffect], SVGTintFilter);\r\n\r\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var colorBlack = this.filterManager.effectElements[0].p.v;\r\n var colorWhite = this.filterManager.effectElements[1].p.v;\r\n var opacity = this.filterManager.effectElements[2].p.v / 100;\r\n this.linearFilter.setAttribute('values', linearFilterValue + ' ' + opacity + ' 0');\r\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 1 0');\r\n }\r\n };\r\n\r\n function SVGFillFilter(filter, filterManager, elem, id) {\r\n this.filterManager = filterManager;\r\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 0');\r\n feColorMatrix.setAttribute('result', id);\r\n filter.appendChild(feColorMatrix);\r\n this.matrixFilter = feColorMatrix;\r\n }\r\n\r\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var color = this.filterManager.effectElements[2].p.v;\r\n var opacity = this.filterManager.effectElements[6].p.v;\r\n this.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');\r\n }\r\n };\r\n\r\n function SVGStrokeEffect(fil, filterManager, elem) {\r\n this.initialized = false;\r\n this.filterManager = filterManager;\r\n this.elem = elem;\r\n this.paths = [];\r\n }\r\n\r\n SVGStrokeEffect.prototype.initialize = function () {\r\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\r\n var path;\r\n var groupPath;\r\n var i;\r\n var len;\r\n\r\n if (this.filterManager.effectElements[1].p.v === 1) {\r\n len = this.elem.maskManager.masksProperties.length;\r\n i = 0;\r\n } else {\r\n i = this.filterManager.effectElements[0].p.v - 1;\r\n len = i + 1;\r\n }\r\n\r\n groupPath = createNS('g');\r\n groupPath.setAttribute('fill', 'none');\r\n groupPath.setAttribute('stroke-linecap', 'round');\r\n groupPath.setAttribute('stroke-dashoffset', 1);\r\n\r\n for (i; i < len; i += 1) {\r\n path = createNS('path');\r\n groupPath.appendChild(path);\r\n this.paths.push({\r\n p: path,\r\n m: i\r\n });\r\n }\r\n\r\n if (this.filterManager.effectElements[10].p.v === 3) {\r\n var mask = createNS('mask');\r\n var id = createElementID();\r\n mask.setAttribute('id', id);\r\n mask.setAttribute('mask-type', 'alpha');\r\n mask.appendChild(groupPath);\r\n this.elem.globalData.defs.appendChild(mask);\r\n var g = createNS('g');\r\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\r\n\r\n while (elemChildren[0]) {\r\n g.appendChild(elemChildren[0]);\r\n }\r\n\r\n this.elem.layerElement.appendChild(g);\r\n this.masker = mask;\r\n groupPath.setAttribute('stroke', '#fff');\r\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\r\n if (this.filterManager.effectElements[10].p.v === 2) {\r\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\r\n\r\n while (elemChildren.length) {\r\n this.elem.layerElement.removeChild(elemChildren[0]);\r\n }\r\n }\r\n\r\n this.elem.layerElement.appendChild(groupPath);\r\n this.elem.layerElement.removeAttribute('mask');\r\n groupPath.setAttribute('stroke', '#fff');\r\n }\r\n\r\n this.initialized = true;\r\n this.pathMasker = groupPath;\r\n };\r\n\r\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\r\n if (!this.initialized) {\r\n this.initialize();\r\n }\r\n\r\n var i;\r\n var len = this.paths.length;\r\n var mask;\r\n var path;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.paths[i].m !== -1) {\r\n mask = this.elem.maskManager.viewData[this.paths[i].m];\r\n path = this.paths[i].p;\r\n\r\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\r\n path.setAttribute('d', mask.lastPath);\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\r\n var dasharrayValue;\r\n\r\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\r\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\r\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\r\n var l = path.getTotalLength();\r\n dasharrayValue = '0 0 0 ' + l * s + ' ';\r\n var lineLength = l * (e - s);\r\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\r\n var units = Math.floor(lineLength / segment);\r\n var j;\r\n\r\n for (j = 0; j < units; j += 1) {\r\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\r\n }\r\n\r\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\r\n } else {\r\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\r\n }\r\n\r\n path.setAttribute('stroke-dasharray', dasharrayValue);\r\n }\r\n }\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\r\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\r\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\r\n }\r\n\r\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\r\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\r\n var color = this.filterManager.effectElements[3].p.v;\r\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\r\n }\r\n }\r\n };\r\n\r\n function SVGTritoneFilter(filter, filterManager, elem, id) {\r\n this.filterManager = filterManager;\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\r\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');\r\n filter.appendChild(feColorMatrix);\r\n var feComponentTransfer = createNS('feComponentTransfer');\r\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\r\n feComponentTransfer.setAttribute('result', id);\r\n this.matrixFilter = feComponentTransfer;\r\n var feFuncR = createNS('feFuncR');\r\n feFuncR.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFuncR);\r\n this.feFuncR = feFuncR;\r\n var feFuncG = createNS('feFuncG');\r\n feFuncG.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFuncG);\r\n this.feFuncG = feFuncG;\r\n var feFuncB = createNS('feFuncB');\r\n feFuncB.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFuncB);\r\n this.feFuncB = feFuncB;\r\n filter.appendChild(feComponentTransfer);\r\n }\r\n\r\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var color1 = this.filterManager.effectElements[0].p.v;\r\n var color2 = this.filterManager.effectElements[1].p.v;\r\n var color3 = this.filterManager.effectElements[2].p.v;\r\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\r\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\r\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\r\n this.feFuncR.setAttribute('tableValues', tableR);\r\n this.feFuncG.setAttribute('tableValues', tableG);\r\n this.feFuncB.setAttribute('tableValues', tableB);\r\n }\r\n };\r\n\r\n function SVGProLevelsFilter(filter, filterManager, elem, id) {\r\n this.filterManager = filterManager;\r\n var effectElements = this.filterManager.effectElements;\r\n var feComponentTransfer = createNS('feComponentTransfer'); // Red\r\n\r\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) {\r\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\r\n } // Green\r\n\r\n\r\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) {\r\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\r\n } // Blue\r\n\r\n\r\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) {\r\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\r\n } // Alpha\r\n\r\n\r\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) {\r\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\r\n } // RGB\r\n\r\n\r\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\r\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\r\n filter.appendChild(feComponentTransfer);\r\n }\r\n\r\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) {\r\n feComponentTransfer = createNS('feComponentTransfer');\r\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\r\n feComponentTransfer.setAttribute('result', id);\r\n filter.appendChild(feComponentTransfer);\r\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\r\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\r\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\r\n }\r\n }\r\n\r\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\r\n var feFunc = createNS(type);\r\n feFunc.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFunc);\r\n return feFunc;\r\n };\r\n\r\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\r\n var cnt = 0;\r\n var segments = 256;\r\n var perc;\r\n var min = Math.min(inputBlack, inputWhite);\r\n var max = Math.max(inputBlack, inputWhite);\r\n var table = Array.call(null, {\r\n length: segments\r\n });\r\n var colorValue;\r\n var pos = 0;\r\n var outputDelta = outputWhite - outputBlack;\r\n var inputDelta = inputWhite - inputBlack;\r\n\r\n while (cnt <= 256) {\r\n perc = cnt / 256;\r\n\r\n if (perc <= min) {\r\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\r\n } else if (perc >= max) {\r\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\r\n } else {\r\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\r\n }\r\n\r\n table[pos] = colorValue;\r\n pos += 1;\r\n cnt += 256 / (segments - 1);\r\n }\r\n\r\n return table.join(' ');\r\n };\r\n\r\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var val;\r\n var effectElements = this.filterManager.effectElements;\r\n\r\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\r\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\r\n this.feFuncRComposed.setAttribute('tableValues', val);\r\n this.feFuncGComposed.setAttribute('tableValues', val);\r\n this.feFuncBComposed.setAttribute('tableValues', val);\r\n }\r\n\r\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\r\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\r\n this.feFuncR.setAttribute('tableValues', val);\r\n }\r\n\r\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\r\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\r\n this.feFuncG.setAttribute('tableValues', val);\r\n }\r\n\r\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\r\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\r\n this.feFuncB.setAttribute('tableValues', val);\r\n }\r\n\r\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\r\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\r\n this.feFuncA.setAttribute('tableValues', val);\r\n }\r\n }\r\n };\r\n\r\n function SVGDropShadowEffect(filter, filterManager, elem, id, source) {\r\n var globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\r\n var filterSize = filterManager.data.fs || globalFilterSize;\r\n filter.setAttribute('x', filterSize.x || globalFilterSize.x);\r\n filter.setAttribute('y', filterSize.y || globalFilterSize.y);\r\n filter.setAttribute('width', filterSize.width || globalFilterSize.width);\r\n filter.setAttribute('height', filterSize.height || globalFilterSize.height);\r\n this.filterManager = filterManager;\r\n var feGaussianBlur = createNS('feGaussianBlur');\r\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\r\n feGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\r\n feGaussianBlur.setAttribute('stdDeviation', '0');\r\n this.feGaussianBlur = feGaussianBlur;\r\n filter.appendChild(feGaussianBlur);\r\n var feOffset = createNS('feOffset');\r\n feOffset.setAttribute('dx', '25');\r\n feOffset.setAttribute('dy', '0');\r\n feOffset.setAttribute('in', id + '_drop_shadow_1');\r\n feOffset.setAttribute('result', id + '_drop_shadow_2');\r\n this.feOffset = feOffset;\r\n filter.appendChild(feOffset);\r\n var feFlood = createNS('feFlood');\r\n feFlood.setAttribute('flood-color', '#00ff00');\r\n feFlood.setAttribute('flood-opacity', '1');\r\n feFlood.setAttribute('result', id + '_drop_shadow_3');\r\n this.feFlood = feFlood;\r\n filter.appendChild(feFlood);\r\n var feComposite = createNS('feComposite');\r\n feComposite.setAttribute('in', id + '_drop_shadow_3');\r\n feComposite.setAttribute('in2', id + '_drop_shadow_2');\r\n feComposite.setAttribute('operator', 'in');\r\n feComposite.setAttribute('result', id + '_drop_shadow_4');\r\n filter.appendChild(feComposite);\r\n var feMerge = this.createMergeNode(id, [id + '_drop_shadow_4', source]);\r\n filter.appendChild(feMerge); //\r\n }\r\n\r\n extendPrototype([SVGComposableEffect], SVGDropShadowEffect);\r\n\r\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\r\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\r\n var col = this.filterManager.effectElements[0].p.v;\r\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\r\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\r\n var distance = this.filterManager.effectElements[3].p.v;\r\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\r\n var x = distance * Math.cos(angle);\r\n var y = distance * Math.sin(angle);\r\n this.feOffset.setAttribute('dx', x);\r\n this.feOffset.setAttribute('dy', y);\r\n }\r\n }\r\n };\r\n\r\n var _svgMatteSymbols = [];\r\n\r\n function SVGMatte3Effect(filterElem, filterManager, elem) {\r\n this.initialized = false;\r\n this.filterManager = filterManager;\r\n this.filterElem = filterElem;\r\n this.elem = elem;\r\n elem.matteElement = createNS('g');\r\n elem.matteElement.appendChild(elem.layerElement);\r\n elem.matteElement.appendChild(elem.transformedElement);\r\n elem.baseElement = elem.matteElement;\r\n }\r\n\r\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\r\n var i = 0;\r\n var len = _svgMatteSymbols.length;\r\n\r\n while (i < len) {\r\n if (_svgMatteSymbols[i] === mask) {\r\n return _svgMatteSymbols[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\r\n var parentNode = mask.layerElement.parentNode;\r\n\r\n if (!parentNode) {\r\n return;\r\n }\r\n\r\n var children = parentNode.children;\r\n var i = 0;\r\n var len = children.length;\r\n\r\n while (i < len) {\r\n if (children[i] === mask.layerElement) {\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n var nextChild;\r\n\r\n if (i <= len - 2) {\r\n nextChild = children[i + 1];\r\n }\r\n\r\n var useElem = createNS('use');\r\n useElem.setAttribute('href', '#' + symbolId);\r\n\r\n if (nextChild) {\r\n parentNode.insertBefore(useElem, nextChild);\r\n } else {\r\n parentNode.appendChild(useElem);\r\n }\r\n };\r\n\r\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\r\n if (!this.findSymbol(mask)) {\r\n var symbolId = createElementID();\r\n var masker = createNS('mask');\r\n masker.setAttribute('id', mask.layerId);\r\n masker.setAttribute('mask-type', 'alpha');\r\n\r\n _svgMatteSymbols.push(mask);\r\n\r\n var defs = elem.globalData.defs;\r\n defs.appendChild(masker);\r\n var symbol = createNS('symbol');\r\n symbol.setAttribute('id', symbolId);\r\n this.replaceInParent(mask, symbolId);\r\n symbol.appendChild(mask.layerElement);\r\n defs.appendChild(symbol);\r\n var useElem = createNS('use');\r\n useElem.setAttribute('href', '#' + symbolId);\r\n masker.appendChild(useElem);\r\n mask.data.hd = false;\r\n mask.show();\r\n }\r\n\r\n elem.setMatte(mask.layerId);\r\n };\r\n\r\n SVGMatte3Effect.prototype.initialize = function () {\r\n var ind = this.filterManager.effectElements[0].p.v;\r\n var elements = this.elem.comp.elements;\r\n var i = 0;\r\n var len = elements.length;\r\n\r\n while (i < len) {\r\n if (elements[i] && elements[i].data.ind === ind) {\r\n this.setElementAsMask(this.elem, elements[i]);\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n this.initialized = true;\r\n };\r\n\r\n SVGMatte3Effect.prototype.renderFrame = function () {\r\n if (!this.initialized) {\r\n this.initialize();\r\n }\r\n };\r\n\r\n function SVGGaussianBlurEffect(filter, filterManager, elem, id) {\r\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\r\n filter.setAttribute('x', '-100%');\r\n filter.setAttribute('y', '-100%');\r\n filter.setAttribute('width', '300%');\r\n filter.setAttribute('height', '300%');\r\n this.filterManager = filterManager;\r\n var feGaussianBlur = createNS('feGaussianBlur');\r\n feGaussianBlur.setAttribute('result', id);\r\n filter.appendChild(feGaussianBlur);\r\n this.feGaussianBlur = feGaussianBlur;\r\n }\r\n\r\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n // Empirical value, matching AE's blur appearance.\r\n var kBlurrinessToSigma = 0.3;\r\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\r\n //\r\n // 1 -> horizontal & vertical\r\n // 2 -> horizontal only\r\n // 3 -> vertical only\r\n //\r\n\r\n var dimensions = this.filterManager.effectElements[1].p.v;\r\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\r\n\r\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\r\n\r\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\r\n //\r\n // 0 -> off -> duplicate\r\n // 1 -> on -> wrap\r\n\r\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\r\n\r\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\r\n }\r\n };\r\n\r\n registerRenderer('canvas', CanvasRenderer);\r\n registerRenderer('html', HybridRenderer);\r\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\r\n\r\n ShapeModifiers.registerModifier('tm', TrimModifier);\r\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\r\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\r\n ShapeModifiers.registerModifier('rd', RoundCornersModifier);\r\n ShapeModifiers.registerModifier('zz', ZigZagModifier);\r\n ShapeModifiers.registerModifier('op', OffsetPathModifier); // Registering expression plugin\r\n\r\n setExpressionsPlugin(Expressions);\r\n setExpressionInterfaces(getInterface);\r\n initialize$1();\r\n initialize(); // Registering svg effects\r\n\r\n registerEffect(20, SVGTintFilter, true);\r\n registerEffect(21, SVGFillFilter, true);\r\n registerEffect(22, SVGStrokeEffect, false);\r\n registerEffect(23, SVGTritoneFilter, true);\r\n registerEffect(24, SVGProLevelsFilter, true);\r\n registerEffect(25, SVGDropShadowEffect, true);\r\n registerEffect(28, SVGMatte3Effect, false);\r\n registerEffect(29, SVGGaussianBlurEffect, true);\r\n\r\n return lottie;\r\n\r\n}));\r\n","/**\n * @license React\n * react-dom.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 */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"13ab7c7b\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"tax-game:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t};\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"./\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunktax_game\"] = self[\"webpackChunktax_game\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgLogo(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 110,\n height: 36,\n viewBox: \"0 0 110 36\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M109.984 0.00968931L109.998 11.9153C110.003 18.4646 109.998 23.8685 109.984 23.9303C109.97 23.9874 109.933 24.0349 109.9 24.0349C109.872 24.0396 109.69 23.821 109.499 23.5501C109.308 23.2792 109.061 22.9417 108.949 22.7992C108.841 22.6566 108.571 22.3001 108.351 22.015C108.132 21.7298 107.927 21.4589 107.894 21.4209C107.862 21.3828 107.596 21.0501 107.302 20.6842C107.008 20.3182 106.756 20.0093 106.742 19.995C106.728 19.9808 106.569 19.8002 106.392 19.5911C106.21 19.3819 106 19.1395 105.926 19.0492C105.851 18.9589 105.692 18.7736 105.576 18.6405C105.464 18.5122 105.212 18.2318 105.016 18.0274C104.825 17.823 104.232 17.2099 103.705 16.6729C103.178 16.1358 102.59 15.5417 102.399 15.3563C102.207 15.171 101.928 14.9048 101.774 14.767C101.62 14.6292 101.428 14.4581 101.354 14.3915C101.274 14.325 101.046 14.1206 100.841 13.9353C100.635 13.7547 100.458 13.5931 100.444 13.5788C100.43 13.5598 100.243 13.403 100.024 13.2271C99.8049 13.0465 99.5343 12.8184 99.4177 12.7186C99.3011 12.6188 98.9885 12.3574 98.7179 12.1387C98.4474 11.9249 98.0182 11.5827 97.7616 11.3878C97.505 11.1882 97.1691 10.9363 97.0105 10.8175C96.8565 10.7034 96.404 10.3755 96.0075 10.095C95.6109 9.81463 94.9858 9.38213 94.6126 9.13498C94.2394 8.88784 93.9128 8.66921 93.8895 8.6502C93.8662 8.62644 93.6376 8.48386 93.3857 8.32702C93.1338 8.17017 92.7652 7.94204 92.5693 7.81847C92.3733 7.69965 92.0748 7.52855 91.9161 7.43825C91.7529 7.3527 91.5942 7.25289 91.5663 7.21962C91.5336 7.18635 91.4963 7.15784 91.4776 7.16259C91.4543 7.16259 91.3097 7.08655 91.1511 6.99149C90.9878 6.89644 90.7312 6.7491 90.5772 6.66355C90.4233 6.578 90.0874 6.3974 89.8308 6.25957C89.5742 6.12649 89.1637 5.90786 88.9211 5.78429C88.6785 5.65597 88.2167 5.42783 87.8948 5.27099C87.5729 5.11415 87.1903 4.93355 87.0457 4.86226C86.8964 4.79572 86.7378 4.73868 86.6958 4.73868C86.6538 4.73868 86.5745 4.69591 86.5232 4.64363C86.4672 4.59135 86.4019 4.54857 86.3786 4.54857C86.3553 4.55333 86.206 4.49629 86.052 4.42975C85.8981 4.35846 85.7348 4.28717 85.6928 4.25865C85.6462 4.23489 85.4129 4.13984 85.1797 4.04478C84.9417 3.94973 84.7038 3.84992 84.6525 3.8214C84.6012 3.79288 84.3912 3.70733 84.186 3.63604C83.9807 3.56475 83.7475 3.47445 83.6728 3.43643C83.5982 3.39841 83.4162 3.32711 83.2763 3.27483C83.1363 3.22731 82.8751 3.13225 82.6931 3.06571C82.5112 2.99917 82.2919 2.91838 82.2033 2.88511C82.1147 2.85184 81.9467 2.7948 81.8301 2.75678C81.7135 2.71876 81.5455 2.65698 81.4569 2.62371C81.3682 2.59044 81.191 2.5239 81.0603 2.48112C80.9344 2.43835 80.7244 2.37656 80.5938 2.33854C80.4679 2.30527 80.2579 2.23873 80.1273 2.19596C80.0013 2.15318 79.8287 2.09615 79.7541 2.07239C79.6794 2.04387 79.4695 1.98208 79.2876 1.93456C79.1056 1.88228 78.8584 1.81574 78.7278 1.77772C78.6018 1.73969 78.2426 1.63513 77.9347 1.55434C77.6268 1.46879 77.2582 1.37373 77.1183 1.34046C76.9783 1.30719 76.7777 1.25967 76.6751 1.23115C76.5724 1.20263 76.2366 1.12659 75.9287 1.0553C75.6208 0.988757 75.1776 0.888949 74.949 0.841422C74.7204 0.789142 74.4451 0.736861 74.3425 0.722603C74.2399 0.708345 74.0299 0.66557 73.876 0.627548C73.722 0.589526 73.3955 0.52774 73.1529 0.484965C72.9103 0.44219 72.3365 0.356641 71.884 0.294855C71.4268 0.228316 71.0023 0.152272 70.9369 0.128508C70.8716 0.0999917 70.8203 0.0572169 70.8203 0.0334531C70.8203 0.000183799 77.3562 -0.00932172 109.984 0.00968931Z\",\n fill: \"#FF6B00\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M42.1618 12.9166C42.1618 14.2625 42.0855 15.3548 41.9901 15.3548C41.8947 15.3548 41.4941 15.2183 41.0935 15.0427C39.3765 14.3015 36.8964 15.1597 35.9616 16.7982C34.8932 18.6512 35.1603 20.7578 36.6102 22.2012C38.0601 23.6251 39.8534 23.9177 41.5895 22.9814C42.3526 22.5913 42.3526 22.5913 42.3526 22.9619C42.3526 23.313 42.4861 23.3521 43.4019 23.3521H44.4511V16.9152V10.4784H43.3065H42.1618V12.9166ZM41.6658 16.2326C42.1618 16.5641 42.1618 16.5836 42.1618 19.1389V21.7136L41.4178 22.1427C40.5402 22.6499 40.0633 22.6694 39.2811 22.2597C38.4989 21.8501 37.9647 20.6213 37.9647 19.1974C37.9647 17.8125 38.289 16.9738 39.1285 16.2521C39.6436 15.8034 39.8916 15.7254 40.4639 15.8034C40.8454 15.8619 41.3796 16.057 41.6658 16.2326Z\",\n fill: \"black\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31.8599 17.111V23.5479H33.0045H34.1492V17.111V10.6742H33.0045H31.8599V17.111Z\",\n fill: \"black\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M59.5417 11.5706C59.0266 12.2337 59.0457 12.5458 59.618 13.1115C60.4383 13.9697 61.6211 13.5211 61.6211 12.3508C61.6211 11.1024 60.2857 10.5953 59.5417 11.5706Z\",\n fill: \"black\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M71.1981 11.3759C70.664 11.7465 70.6449 12.6828 71.16 13.2094C71.6751 13.7361 72.2283 13.697 72.8007 13.0924C73.9072 11.9806 72.4954 10.4396 71.1981 11.3759Z\",\n fill: \"black\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 12.4688C0 12.6053 0.896652 15.141 1.965 18.0863L3.91093 23.4503L4.57865 23.5089L5.24637 23.5674L6.46734 20.3295C7.15414 18.535 7.76462 17.0526 7.84093 17.0135C7.89817 16.955 8.50865 18.3984 9.19545 20.1929L10.4164 23.4503L11.0841 23.5089L11.7709 23.5674L13.7359 18.1449C14.8043 15.1605 15.7391 12.6053 15.7773 12.4688C15.8536 12.3127 15.6628 12.2347 15.224 12.2347H14.5563L13.1636 16.0383C12.4005 18.1449 11.7328 19.8028 11.6565 19.7443C11.5992 19.6663 11.0078 18.2034 10.3783 16.4674L9.19545 13.3075L8.54681 13.249L7.89817 13.1905L6.69627 16.3699C6.02855 18.1254 5.41807 19.6078 5.36083 19.7053C5.28452 19.7833 4.6168 18.1644 3.89185 16.0968L2.57549 12.3322L1.29728 12.2737C0.324321 12.2347 0 12.2737 0 12.4688Z\",\n fill: \"black\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M48.2665 12.3127C48.2665 12.3517 49.2967 14.7899 50.5749 17.7157C51.8341 20.661 52.9215 23.1772 52.9787 23.2943C53.036 23.4308 53.3031 23.5479 53.6083 23.5479C54.0852 23.5479 54.1806 23.3918 55.001 21.4413C55.4779 20.2904 56.5653 17.7547 57.4048 15.7847L58.931 12.2152L58.2251 12.2737L57.5383 12.3322L56.0884 15.7652C55.3062 17.6377 54.5622 19.3737 54.4668 19.6272C54.2951 20.0174 54.0662 19.5687 52.6544 16.1553L51.0519 12.2347H49.6592C48.8961 12.2347 48.2665 12.2737 48.2665 12.3127Z\",\n fill: \"black\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M59.3317 19.1591V23.5479H60.4764H61.621V19.1591V14.7704H60.4764H59.3317V19.1591Z\",\n fill: \"black\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.9405 15.1404C63.8531 15.6475 63.338 16.3887 63.338 17.4225C63.338 18.5733 63.9675 19.2755 65.57 19.9387C67.0963 20.5434 67.535 20.914 67.535 21.5187C67.535 22.0453 66.8864 22.572 66.2378 22.572C65.7227 22.572 64.4635 21.9478 64.1201 21.5187C63.9675 21.3431 63.7958 21.2066 63.7195 21.2066C63.4906 21.2066 63.0899 22.3379 63.2044 22.6305C63.2616 22.7865 63.8721 23.0596 64.5589 23.2547C66.7529 23.8593 68.6797 23.3132 69.3283 21.9088C70.0915 20.2508 69.4619 19.0805 67.2298 18.0857C65.303 17.2275 65.2457 17.1885 65.2457 16.6228C65.2457 15.6475 66.9246 15.472 68.1074 16.3302C68.4317 16.5643 68.7369 16.7398 68.756 16.7008C68.7942 16.6618 68.9659 16.3497 69.1376 15.9986L69.4428 15.3744L68.4508 15.0624C67.1535 14.6723 65.8944 14.6918 64.9405 15.1404Z\",\n fill: \"black\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M70.7782 19.1591V23.5479H71.9229H73.0675V19.1591V14.7704H71.9229H70.7782V19.1591Z\",\n fill: \"black\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.2654 15.3357C16.3306 15.7648 15.3768 16.8376 15.0715 17.7934C14.69 18.9832 14.8998 20.6802 15.5675 21.6555C17.151 23.9571 20.7757 24.1912 22.6454 22.1236C24.5722 19.9975 23.9808 16.6231 21.5007 15.4527C20.2606 14.8481 18.4101 14.7896 17.2654 15.3357ZM20.1843 16.0574C20.9665 16.6231 21.2527 17.4618 21.2527 19.2563C21.2527 21.675 20.6994 22.5722 19.2114 22.5722C18.5055 22.5722 17.895 22.0456 17.5707 21.1483C17.2464 20.3096 17.3227 18.008 17.6661 17.1107C18.143 15.9014 19.2877 15.4137 20.1843 16.0574Z\",\n fill: \"black\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.7199 15.336C27.2048 15.6676 27.0903 15.6871 27.0903 15.4531C27.0903 15.219 26.8233 15.1605 25.9457 15.1605H24.801V19.3542V23.5479H26.0411H27.2811V20.0369V16.5259L27.7771 16.4088C28.1587 16.3113 28.483 16.4283 29.1317 16.8965C29.6086 17.2476 30.0092 17.5012 30.0474 17.4621C30.3336 17.111 30.8677 15.4336 30.7342 15.297C30.6388 15.1995 30.0665 15.0825 29.456 15.0435C28.5403 14.9654 28.2159 15.024 27.7199 15.336Z\",\n fill: \"black\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M76.9785 15.3359C74.9753 16.2917 74.0214 18.8469 74.8799 20.973C76.0437 23.8013 80.2598 24.445 82.3775 22.1043C84.2471 20.0173 83.6938 16.7208 81.2519 15.4725C79.9928 14.8288 78.1613 14.7703 76.9785 15.3359ZM79.8974 16.0576C81.2328 17.0134 81.4236 20.739 80.2217 22.0653C79.306 23.0796 77.8179 22.6115 77.2837 21.1486C76.9594 20.3098 77.0357 18.0082 77.3791 17.1109C77.8561 15.9016 79.0007 15.414 79.8974 16.0576Z\",\n fill: \"black\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M88.3107 15.141C88.0436 15.219 87.643 15.4141 87.4141 15.5311C87.0707 15.7262 86.9943 15.7066 86.9943 15.4531C86.9943 15.219 86.7463 15.1605 85.8497 15.1605H84.705V19.3542V23.5479H85.8497H86.9943V20.1539V16.7599L87.4713 16.4479C88.635 15.6676 89.8942 15.8822 90.5428 16.9745C90.848 17.5012 90.9243 18.0473 90.9625 20.5635L91.0388 23.5479H92.1835H93.3281L93.2518 20.466C93.1946 17.6767 93.1564 17.3451 92.7558 16.6819C92.5078 16.2918 92.0118 15.7652 91.6493 15.5506C90.9243 15.0825 89.131 14.8679 88.3107 15.141Z\",\n fill: \"black\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.31565 27.7861H0.574654V32.9429H1.31565V27.7861ZM7.3344 27.7861H6.6312V31.786L3.15303 27.7861H2.5557V32.9429H3.25133V28.9732L6.69925 32.9429H7.3344V27.7861ZM8.5234 27.7861V32.9429H10.1566C10.6859 32.9429 11.3967 32.9429 12.0243 32.5572C12.3418 32.3607 13.2643 31.6726 13.2643 30.3645C13.2643 29.4798 12.8484 28.7539 12.2738 28.3154C11.5857 27.7861 10.7464 27.7861 10.2625 27.7861H8.5234ZM10.1869 28.4439C10.6557 28.4439 11.0035 28.4439 11.4269 28.633C12.2133 28.9808 12.5006 29.6991 12.5006 30.3267C12.5006 31.0299 12.1604 31.6575 11.6386 31.9826C11.2001 32.2472 10.5952 32.2775 10.2096 32.2775H9.25684V28.4439H10.1869ZM15.0109 27.7861H14.2699V32.9429H15.0109V27.7861ZM18.3984 27.7559H17.8766L15.6612 32.9429H16.4173L17.0676 31.4231H19.2604L19.9484 32.9429H20.7046L18.3984 27.7559ZM17.3549 30.7577L18.1262 28.89L18.9579 30.7577H17.3549Z\",\n fill: \"#FF6B00\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M103.557 1.84912H103.628C103.699 1.84912 103.7 1.85061 103.707 1.89835C103.712 1.9237 103.718 2.10718 103.722 2.30408C103.725 2.50097 103.735 2.69638 103.742 2.73665C103.75 2.77842 103.76 2.87538 103.766 2.95294C103.77 3.03051 103.785 3.22592 103.796 3.38552C103.808 3.54513 103.831 3.73308 103.846 3.80319C103.862 3.87329 103.885 3.97622 103.897 4.03439C103.909 4.09257 103.932 4.20295 103.948 4.28052C103.966 4.35808 103.991 4.45653 104.005 4.4968C104.021 4.53857 104.065 4.6415 104.104 4.72801C104.144 4.81453 104.189 4.91148 104.207 4.9443C104.223 4.97712 104.288 5.06512 104.353 5.13822C104.415 5.21131 104.486 5.28141 104.507 5.29186C104.529 5.30081 104.553 5.32616 104.561 5.34705C104.569 5.36793 104.585 5.38434 104.594 5.38434C104.604 5.38285 104.63 5.39627 104.652 5.41417C104.675 5.43058 104.706 5.444 104.722 5.444C104.738 5.444 104.754 5.45445 104.759 5.46638C104.763 5.47831 104.776 5.48875 104.788 5.48875C104.799 5.48875 104.84 5.50516 104.878 5.52754C104.918 5.54842 104.956 5.57079 104.963 5.57974C104.97 5.5872 104.991 5.59317 105.007 5.59317C105.023 5.59168 105.046 5.60212 105.058 5.61554C105.07 5.62748 105.099 5.64239 105.124 5.64836C105.147 5.65284 105.178 5.66179 105.189 5.66775C105.201 5.67521 105.24 5.68714 105.277 5.69759C105.313 5.70654 105.375 5.72593 105.416 5.74233C105.455 5.75725 105.554 5.79007 105.635 5.81393C105.715 5.83929 105.852 5.86614 105.941 5.87658C106.029 5.88553 106.128 5.89896 106.16 5.90791C106.192 5.91537 106.303 5.93177 106.408 5.94371C106.512 5.95564 106.743 5.97652 106.919 5.98846C107.096 6.00039 107.26 6.0168 107.284 6.02575C107.308 6.03321 107.374 6.04067 107.43 6.04067C107.486 6.04067 107.585 6.04962 107.649 6.06155C107.714 6.07199 107.781 6.08989 107.798 6.09884C107.817 6.10779 107.845 6.11525 107.861 6.11525C107.885 6.11525 107.89 6.12569 107.89 6.16746C107.89 6.21519 107.886 6.22116 107.832 6.23458C107.8 6.24204 107.774 6.25696 107.774 6.26441C107.774 6.27187 107.756 6.28231 107.733 6.28679C107.711 6.29126 107.41 6.29723 107.065 6.3017C106.719 6.30618 106.395 6.31662 106.343 6.32408C106.29 6.33154 106.172 6.34795 106.08 6.35988C105.988 6.3733 105.854 6.3927 105.781 6.40612C105.708 6.41805 105.597 6.44341 105.532 6.45982C105.468 6.47623 105.337 6.5165 105.24 6.55081C105.144 6.58363 104.989 6.64926 104.897 6.69699C104.805 6.74323 104.69 6.80738 104.642 6.8387C104.594 6.86853 104.519 6.92969 104.477 6.97146C104.433 7.01322 104.361 7.10421 104.316 7.17432C104.271 7.24443 104.217 7.32498 104.195 7.35332C104.175 7.38166 104.139 7.4637 104.118 7.53679C104.093 7.62033 104.08 7.70237 104.08 7.76651C104.078 7.82319 104.072 7.9112 104.065 7.9649C104.058 8.0186 104.039 8.15285 104.021 8.26323C104.004 8.37361 103.983 8.52128 103.976 8.59139C103.967 8.6615 103.956 8.74205 103.947 8.77039C103.939 8.79873 103.926 8.94044 103.919 9.08364C103.912 9.22684 103.9 9.50577 103.891 9.70267C103.883 9.89957 103.868 10.1979 103.859 10.3665C103.85 10.535 103.839 10.8154 103.83 10.99C103.82 11.2286 103.811 11.3151 103.795 11.339C103.783 11.3584 103.773 11.4032 103.773 11.4404C103.774 11.4777 103.782 11.5225 103.792 11.5404C103.804 11.5628 103.807 11.6015 103.799 11.6597C103.792 11.7075 103.785 11.873 103.78 12.0297C103.776 12.1863 103.766 12.4578 103.757 12.6338C103.748 12.8098 103.736 13.0857 103.731 13.2453C103.722 13.4855 103.715 13.5467 103.691 13.5959C103.675 13.6317 103.652 13.657 103.634 13.66C103.618 13.663 103.601 13.66 103.593 13.6526C103.588 13.6466 103.573 13.5407 103.561 13.4169C103.55 13.2946 103.534 13.0887 103.526 12.9619C103.517 12.8351 103.504 12.6397 103.496 12.5294C103.488 12.419 103.471 12.1967 103.459 12.0371C103.446 11.8775 103.43 11.6552 103.423 11.5449C103.415 11.4345 103.402 11.2391 103.393 11.1123C103.385 10.9855 103.369 10.7603 103.357 10.6126C103.345 10.4649 103.332 10.2799 103.328 10.2024C103.323 10.1248 103.313 10.01 103.306 9.9488C103.298 9.88764 103.285 9.71908 103.275 9.57588C103.266 9.43268 103.256 9.12391 103.255 8.88972C103.253 8.65553 103.247 8.43775 103.242 8.40494C103.236 8.37212 103.225 8.28113 103.218 8.20356C103.209 8.126 103.198 8.02904 103.189 7.98727C103.182 7.947 103.17 7.87987 103.161 7.83811C103.154 7.79783 103.141 7.72623 103.132 7.68148C103.123 7.63673 103.093 7.54574 103.063 7.48011C103.033 7.41448 102.977 7.31454 102.938 7.25636C102.898 7.19819 102.846 7.12361 102.82 7.0893C102.795 7.05499 102.738 6.99831 102.694 6.96251C102.65 6.9282 102.582 6.8745 102.541 6.84616C102.5 6.81782 102.393 6.7492 102.306 6.6955C102.203 6.63285 102.094 6.58064 102.006 6.55081C101.93 6.52694 101.795 6.49264 101.707 6.47623C101.618 6.45982 101.428 6.43446 101.284 6.42104C101.139 6.40761 100.99 6.38971 100.951 6.38225C100.913 6.3748 100.875 6.37181 100.867 6.37629C100.859 6.38076 100.762 6.3733 100.651 6.35988C100.542 6.34795 100.365 6.32855 100.262 6.31811C100.156 6.30767 99.9272 6.29872 99.7505 6.29574C99.4673 6.29275 99.4249 6.28977 99.3928 6.2659C99.3636 6.24502 99.3549 6.22414 99.3519 6.16895C99.349 6.10928 99.3534 6.09586 99.3884 6.0705C99.4162 6.04962 99.4498 6.04067 99.495 6.04067C99.5374 6.04216 99.568 6.03321 99.5826 6.01829C99.6016 5.9989 99.644 5.99442 99.8527 5.99592C100.083 5.99592 100.102 5.99442 100.126 5.96608C100.149 5.93923 100.168 5.93625 100.294 5.93923C100.377 5.94072 100.446 5.93476 100.459 5.92581C100.47 5.91686 100.583 5.90642 100.707 5.90194C100.831 5.89747 100.97 5.88702 101.013 5.87807C101.057 5.86913 101.196 5.8557 101.32 5.84675C101.444 5.8378 101.635 5.8199 101.744 5.80498C101.876 5.78559 101.983 5.76173 102.072 5.72891C102.144 5.70206 102.236 5.66626 102.276 5.64985C102.316 5.63344 102.392 5.59615 102.444 5.56632C102.497 5.53649 102.592 5.46638 102.656 5.4097C102.72 5.35152 102.811 5.26202 102.858 5.20683C102.906 5.15313 102.977 5.04722 103.02 4.97413C103.062 4.90104 103.12 4.78917 103.152 4.72801C103.183 4.66685 103.212 4.61017 103.218 4.60122C103.223 4.59227 103.239 4.55647 103.252 4.51918C103.265 4.48189 103.282 4.41476 103.29 4.37001C103.297 4.32526 103.313 4.23129 103.326 4.16118C103.338 4.09108 103.358 3.9613 103.371 3.87031C103.385 3.77932 103.402 3.55856 103.409 3.37807C103.417 3.19758 103.428 2.98874 103.437 2.91565C103.444 2.84256 103.465 2.66804 103.481 2.52782C103.497 2.38761 103.517 2.22054 103.523 2.15491C103.531 2.08928 103.541 1.99381 103.547 1.9416L103.557 1.84912Z\",\n fill: \"white\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogo);\nexport default __webpack_public_path__ + \"static/media/logo.f679a95878a6239f98237444ffecb587.svg\";\nexport { ForwardRef as ReactComponent };","import './DonateBtn.css';\n\nconst DonateBtn: React.FC = () => {\n return (\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n Donate now and Save tax\n
\n\n\n
\n 50% tax exemption u/s 80G\n
\n\n \n )\n}\n\nexport default DonateBtn;","type props = {\n className?: string,\n children: React.ReactNode\n}\nconst Container: React.FC = (props) => {\n const { children, className = \"\" } = props;\n\n return (\n
\n {children}\n
\n )\n}\n\nexport default Container","import { useEffect, useState } from 'react';\nimport logoImg from 'assets/imgs/logo.svg';\nimport calculatorIcon from './icons/taxCalculator.png';\nimport excemptionIcon from './icons/taxExemption.png';\nimport waysToGiveIcon from './icons/waysToGive.png';\nimport faqIcon from './icons/faq.png';\nimport aboutUs from './icons/aboutUs.png';\nimport DonateBtn from './components/DonteBtn';\nimport './Header.css';\nimport Container from 'components/_common/Container';\n\nconst Header: React.FC = () => {\n const [isHeaderActive, setIsHeaderActive] = useState(false);\n const [isScrolled, setIsScrolled] = useState(false);\n\n\n useEffect(() => {\n const onScroll = (e: any) => {\n window.scrollY > 30 ? setIsScrolled(true) : setIsScrolled(false);\n }\n\n window.addEventListener(\"scroll\", onScroll);\n return () => {\n window.removeEventListener(\"scroll\", onScroll);\n }\n }, [])\n\n const onHamburgerClick = () => {\n setIsHeaderActive((prev) => !prev);\n }\n return (\n
\n \n\n \n \n
\n )\n}\n\nexport default Header;","var _circle, _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgWhatsappIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 36,\n height: 36,\n viewBox: \"0 0 36 36\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 18,\n cy: 18,\n r: 18,\n fill: \"#45D354\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.9169 19.8742C21.6965 19.7296 21.476 19.6572 21.2556 19.9465L20.3738 21.1038C20.1534 21.2484 20.0064 21.3208 19.7125 21.1761C18.6102 20.5975 17.0671 19.9465 15.7444 17.7767C15.6709 17.4874 15.8179 17.3428 15.9649 17.1981L16.6262 16.1855C16.7732 16.0409 16.6997 15.8962 16.6262 15.7516L15.7444 13.6541C15.524 13.0755 15.3035 13.1478 15.0831 13.1478H14.4952C14.3482 13.1478 14.0543 13.2201 13.7604 13.5094C12.1438 15.1006 12.8051 17.3428 13.9808 18.7893C14.2013 19.0786 15.6709 21.6824 18.8307 23.0566C21.1821 24.0692 21.6965 23.9245 22.3578 23.7799C23.1661 23.7075 23.9744 23.0566 24.3419 22.4057C24.4153 22.1887 24.7827 21.2484 24.4888 21.1038M18.6837 27.9025C15.6709 27.9025 13.393 26.3113 13.393 26.3113L9.79233 27.2516L10.6741 23.7799C10.6741 23.7799 9.20447 21.5377 9.20447 18.717C9.20447 13.5094 13.5399 9.16981 18.9042 9.16981C23.901 9.16981 28.1629 13.0031 28.1629 18.3553C28.1629 23.5629 23.901 27.8302 18.6837 27.9025ZM7 30L13.099 28.3365C14.8654 29.2266 16.8341 29.6562 18.8172 29.5843C20.8002 29.5124 22.7315 28.9414 24.4266 27.9259C26.1217 26.9103 27.524 25.484 28.4997 23.7832C29.4754 22.0824 29.992 20.1639 30 18.2107C30 11.9906 25.0032 7 18.6837 7C16.6554 7.00511 14.6638 7.53315 12.9073 8.53153C11.1508 9.52992 9.69074 10.9638 8.67242 12.6904C7.6541 14.417 7.11311 16.3761 7.10332 18.3725C7.09353 20.3689 7.61528 22.333 8.61661 24.0692\",\n fill: \"white\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhatsappIcon);\nexport default __webpack_public_path__ + \"static/media/whatsappIcon.e08a153fc8af7a35311d66d6dfeb5b97.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgFacebookIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 36,\n height: 37,\n viewBox: \"0 0 36 37\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 18,\n cy: 18,\n r: 18,\n fill: \"#2374F7\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.3947 37V23.3332H25.1308L25.8404 17.9838H20.3947V14.5768C20.3947 13.0313 20.8346 11.9787 23.1136 11.9787H26V7.20707C25.4977 7.14219 23.7742 7 21.7712 7C17.5849 7 14.7184 9.48487 14.7184 14.0501V17.9845H10V23.3332H14.7184V37H20.3947Z\",\n fill: \"white\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFacebookIcon);\nexport default __webpack_public_path__ + \"static/media/facebookIcon.3bc3cbb6be8ebfad70f22e11c9b1734e.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgTwitterIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 36,\n height: 36,\n viewBox: \"0 0 36 36\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 18,\n cy: 18,\n r: 18,\n fill: \"#1DA1F2\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29 11.086C28.2326 11.4688 27.3372 11.7239 26.4419 11.8515C27.4012 11.2774 28.1047 10.3843 28.4884 9.29986C27.593 9.8102 26.6337 10.1929 25.6105 10.3843C24.9145 9.67332 24.0061 9.20664 23.0217 9.0543C22.0373 8.90196 21.0298 9.07219 20.1506 9.53944C19.2714 10.0067 18.5678 10.7457 18.1455 11.6457C17.7231 12.5457 17.6047 13.558 17.8081 14.5308C14.2267 14.3394 10.7733 12.6808 8.53488 9.8102C8.23031 10.2954 8.02504 10.836 7.93092 11.4007C7.83679 11.9655 7.85567 12.5432 7.98646 13.1006C8.11726 13.6581 8.35738 14.1842 8.69298 14.6486C9.02859 15.113 9.45304 15.5066 9.94186 15.8066C9.23837 15.8066 8.53488 15.679 7.89535 15.36C7.9593 17.4652 9.43023 19.3151 11.4767 19.7616C10.8372 19.953 10.1337 19.953 9.43023 19.8254C10.0698 21.6754 11.7965 22.9512 13.7151 23.015C11.8605 24.546 9.36628 25.2477 7 24.8649C8.97739 26.1811 11.2848 26.9185 13.6608 26.9936C16.0368 27.0688 18.3864 26.4786 20.4434 25.29C22.5004 24.1015 24.1826 22.362 25.2993 20.2687C26.4159 18.1754 26.9225 15.812 26.7616 13.4463C27.657 12.8084 28.4244 12.0429 29 11.086Z\",\n fill: \"white\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTwitterIcon);\nexport default __webpack_public_path__ + \"static/media/twitterIcon.707bf3801763aca6214976b7e341c08c.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgLinkedInIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 36,\n height: 36,\n viewBox: \"0 0 36 36\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 18,\n cy: 18,\n r: 18,\n fill: \"#0177B5\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.15188 14.4972H12.3125V27.8584H8.15188V14.4972ZM10.2291 7.84717C11.5565 7.84717 12.6354 8.92604 12.6354 10.2534C12.6354 11.5808 11.5565 12.6623 10.23 12.6623C9.59147 12.6609 8.97948 12.4067 8.52789 11.9553C8.0763 11.5038 7.82187 10.8919 7.82025 10.2534C7.82025 9.93721 7.88258 9.62409 8.00367 9.33198C8.12476 9.03987 8.30223 8.77449 8.52595 8.55102C8.74967 8.32754 9.01525 8.15035 9.30749 8.02958C9.59973 7.90881 9.91291 7.84682 10.2291 7.84717ZM14.9104 14.4972H18.8934V16.3233H18.9485C19.5033 15.2733 20.8578 14.1655 22.886 14.1655C27.0913 14.1655 27.8674 16.9332 27.8674 20.5303V27.8593H23.7173V21.3598C23.7173 19.811 23.6893 17.816 21.5595 17.816C19.3983 17.816 19.0658 19.5048 19.0658 21.246V27.8558H14.9165V14.4945L14.9104 14.4972Z\",\n fill: \"white\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLinkedInIcon);\nexport default __webpack_public_path__ + \"static/media/linkedInIcon.a25a47a64800023d5b732589e4080812.svg\";\nexport { ForwardRef as ReactComponent };","import Container from \"components/_common/Container\";\nimport whatsAppIcon from \"assets/imgs/whatsappIcon.svg\";\nimport facebookIcon from \"assets/imgs/facebookIcon.svg\";\nimport twitterIcon from \"assets/imgs/twitterIcon.svg\";\nimport linkednInIcon from \"assets/imgs/linkedInIcon.svg\";\nimport InputMail from \"components/_common/InputMail\";\nimport { useState } from \"react\";\nimport './Share.css';\n\nconst Share: React.FC = () => {\n const [mail, setMail] = useState(\"\");\n\n\n return (\n
\n \n\n
\n

\n Share this tax game with your friends to learn about tax saving in a fun and interactive way\n

\n\n
    \n\n
  • \n \n
    \n \"whatsapp\"\n
    \n

    \n WhatsApp\n

    \n \n
  • \n\n
  • \n \n
    \n \"facebook\"\n
    \n

    \n Facebook\n

    \n \n
  • \n\n
  • \n \n
    \n \"twitter\"\n
    \n

    \n Twitter\n

    \n \n
  • \n\n
  • \n \n
    \n \"linkedin\"\n
    \n

    \n LinkedIn\n

    \n \n
  • \n\n
\n
\n\n\n {/* */}\n\n
\n
\n );\n};\n\nexport default Share;\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","/**\n * Dom7 4.0.6\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2023, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: February 2, 2023\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n const proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get() {\n return proto;\n },\n\n set(value) {\n proto.__proto__ = value;\n }\n\n });\n}\n\nclass Dom7 extends Array {\n constructor(items) {\n if (typeof items === 'number') {\n super(items);\n } else {\n super(...(items || []));\n makeReactive(this);\n }\n }\n\n}\n\nfunction arrayFlat(arr = []) {\n const res = [];\n arr.forEach(el => {\n if (Array.isArray(el)) {\n res.push(...arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n const uniqueArray = [];\n\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group) => group.toUpperCase());\n}\n\n// eslint-disable-next-line\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n const a = [];\n const res = context.querySelectorAll(selector);\n\n for (let i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n const window = getWindow();\n const document = getDocument();\n let arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n const html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(' c.split(' ')));\n this.forEach(el => {\n el.classList.add(...classNames);\n });\n return this;\n}\n\nfunction removeClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.remove(...classNames);\n });\n return this;\n}\n\nfunction toggleClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n classNames.forEach(className => {\n el.classList.toggle(className);\n });\n });\n}\n\nfunction hasClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n return arrayFilter(this, el => {\n return classNames.filter(className => el.classList.contains(className)).length > 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n let el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n const attr = el.attributes[i];\n\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n const el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n const values = [];\n\n for (let i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? `${duration}ms` : duration;\n }\n\n return this;\n}\n\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n const parents = $(target).parents(); // eslint-disable-line\n\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n const events = eventType.split(' ');\n let j;\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n const events = eventType.split(' ');\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger(...args) {\n const window = getWindow();\n const events = args[0].split(' ');\n const eventData = args[1];\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n\n if (window.CustomEvent) {\n const evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionStart(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionstart', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionstart', fireCallBack);\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n const window = getWindow();\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n const window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n const window = getWindow();\n let i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (const prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach((el, index) => {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n const result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n let child = this[0];\n let i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n const returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append(...els) {\n let newChild;\n const document = getDocument();\n\n for (let k = 0; k < els.length; k += 1) {\n newChild = els[k];\n\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n const document = getDocument();\n let i;\n let j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n const before = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n const after = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n\n el = next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n\n el = prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n\n parent = parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n const foundElements = [];\n\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n const children = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].children;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add(...els) {\n const dom = this;\n let i;\n let j;\n\n for (i = 0; i < els.length; i += 1) {\n const toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\n// eslint-disable-next-line\n\nfunction scrollTo(...args) {\n const window = getWindow();\n let [left, top, duration, easing, callback] = args;\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n\n let scrollLeft; // eslint-disable-line\n\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n let done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\n// eslint-disable-next-line\n\nfunction animate(initialProps, initialParams) {\n const window = getWindow();\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n\n stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n\n done(complete) {\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n const elements = []; // Define & Cache Initials & Units\n\n a.elements.each((el, index) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(prop => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue\n };\n });\n });\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(element => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(prop => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const {\n initialValue,\n finalValue,\n unit\n } = el[prop];\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n const currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler(...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on(name, ...args);\n }\n\n return eventHandler;\n}\n\nconst click = shortcut('click');\nconst blur = shortcut('blur');\nconst focus = shortcut('focus');\nconst focusin = shortcut('focusin');\nconst focusout = shortcut('focusout');\nconst keyup = shortcut('keyup');\nconst keydown = shortcut('keydown');\nconst keypress = shortcut('keypress');\nconst submit = shortcut('submit');\nconst change = shortcut('change');\nconst mousedown = shortcut('mousedown');\nconst mousemove = shortcut('mousemove');\nconst mouseup = shortcut('mouseup');\nconst mouseenter = shortcut('mouseenter');\nconst mouseleave = shortcut('mouseleave');\nconst mouseout = shortcut('mouseout');\nconst mouseover = shortcut('mouseover');\nconst touchstart = shortcut('touchstart');\nconst touchend = shortcut('touchend');\nconst touchmove = shortcut('touchmove');\nconst resize = shortcut('resize');\nconst scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, transitionStart, trigger, val, value, width };\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n styles,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove\n};\nObject.keys(Methods).forEach(methodName => {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","import { getWindow, getDocument } from 'ssr-window';\nlet support;\n\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n passiveListener: function checkPassiveListener() {\n let supportsPassive = false;\n\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n }\n\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\n\nfunction calcDevice({\n userAgent\n} = {}) {\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides = {}) {\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n\n return deviceCached;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nlet browser;\n\nfunction calcBrowser() {\n const window = getWindow();\n\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend(...args) {\n const to = Object(args[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\n\nfunction animateCSSModeScroll({\n swiper,\n targetPosition,\n side\n}) {\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n\n const animate = () => {\n time = new Date().getTime();\n\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n\n animate();\n}\n\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty };","/* eslint-disable no-underscore-dangle */\nexport default {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n\n function onceHandler(...args) {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n\n emit(...args) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n\n};","import updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};","export default function updateSize() {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n const swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n const params = swiper.params;\n const {\n $wrapperEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n }); // reset cssMode offsets\n\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\n }\n\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n } // Calc slides\n\n\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n\n const slideStyles = getComputedStyle(slide[0]);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide[0];\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (params.setWrapperSize) {\n $wrapperEl.css({\n [getDirectionLabel('width')]: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css({\n [key]: `${spaceBetween}px`\n });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.$el.hasClass(backFaceHiddenClass);\n\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.$el.addClass(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.$el.removeClass(backFaceHiddenClass);\n }\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides.filter(el => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index)[0];\n }\n\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || $([])).each(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight || newHeight === 0) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}","export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateSlidesProgress(translate = this && this.translate || 0) {\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","export default function updateProgress(translate) {\n const swiper = this;\n\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n Object.assign(swiper, {\n progress,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n $wrapperEl,\n activeIndex,\n realIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n let activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","export default function updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid,\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n Object.assign(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n let slideIndex;\n\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import getTranslate from './getTranslate.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n $wrapperEl\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n $wrapperEl,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","export default function transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step\n}) {\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit(`transition${step}`);\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n\n swiper.emit(`slideChangeTransition${step}`);\n\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n setTransition,\n transitionStart,\n transitionEnd\n};","export default function setTransition(duration, byController) {\n const swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal, initial) {\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`);\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex]; // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n } // Update progress\n\n\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._swiperImmediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n\n return true;\n}","export default function slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n animating,\n enabled,\n params\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params,\n animating,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n\n let prevIndex = 0;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n $wrapperEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate,\n loopFix,\n loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loopCreate() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n $wrapperEl\n } = swiper; // Remove duplicated slides\n\n const $selector = $wrapperEl.children().length > 0 ? $($wrapperEl.children()[0].parentNode) : $wrapperEl;\n $selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n let slides = $selector.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $selector.append(blankNode);\n }\n\n slides = $selector.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length && swiper.params.loopedSlidesLimit) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((el, index) => {\n const slide = $(el);\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (let i = 0; i < swiper.loopedSlides; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n appendSlides.push(slides.eq(index)[0]);\n prependSlides.unshift(slides.eq(slides.length - index - 1)[0]);\n }\n\n for (let i = 0; i < appendSlides.length; i += 1) {\n $selector.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $selector.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n const swiper = this;\n swiper.emit('beforeLoopFix');\n const {\n activeIndex,\n slides,\n loopedSlides,\n allowSlidePrev,\n allowSlideNext,\n snapGrid,\n rtlTranslate: rtl\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n slides\n } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base = this) {\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n\n if (!found && !el.getRootNode) {\n return null;\n }\n\n return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== ''; // eslint-disable-next-line\n\n const eventPath = event.composedPath ? event.composedPath() : event.path;\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n $targetEl = $(eventPath[0]);\n }\n\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, $targetEl[0]) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n\n if ($targetEl.is(data.focusableElements)) {\n preventDefault = false;\n\n if ($targetEl[0].nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js';\nexport default function onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n if (!$(e.target).is(data.focusableElements)) {\n swiper.allowClick = false;\n }\n\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop && !params.cssMode) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n } // Find current slide\n\n\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n } // Find current slide size\n\n\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nlet dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n touchEvents,\n el,\n wrapperEl,\n device,\n support\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method; // Touch Events\n\n if (!support.touch) {\n el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n } else {\n const passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture\n } : capture);\n el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n};\n\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n support\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n if (support.touch && !dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n\n events(swiper, 'on');\n}\n\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\n\nexport default {\n attachEvents,\n detachEvents\n};","import { extend } from '../../shared/utils.js';\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\n\nexport default function setBreakpoint() {\n const swiper = this;\n const {\n activeIndex,\n initialized,\n loopedSlides = 0,\n params,\n $el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}grid`);\n\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n $el.addClass(`${params.containerModifierClass}grid-column`);\n }\n\n swiper.emitContainerClasses();\n } // Toggle navigation, pagination, scrollbar\n\n\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint,\n getBreakpoint\n};","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base = 'window', containerEl) {\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses,\n removeClasses\n};","function prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nexport default function addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n $el,\n device,\n support\n } = swiper; // prettier-ignore\n\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': !support.touch\n }, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n $el.addClass([...classNames].join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n const swiper = this;\n const {\n $el,\n classNames\n } = swiper;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","import loadImage from './loadImage.js';\nimport preloadImages from './preloadImages.js';\nexport default {\n loadImage,\n preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n const window = getWindow();\n let image;\n\n function onReady() {\n if (callback) callback();\n }\n\n const isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","function checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\n\nexport default {\n checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopedSlidesLimit: true,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj = {}) {\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../shared/dom.js';\nimport { extend, now, deleteProps } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport images from './images/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events,\n breakpoints,\n checkOverflow,\n classes,\n images\n};\nconst extendedDefaults = {};\n\nclass Swiper {\n constructor(...args) {\n let el;\n let params;\n\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && $(params.el).length > 1) {\n const swipers = [];\n $(params.el).each(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n }); // eslint-disable-next-line no-constructor-return\n\n return swipers;\n } // Swiper Instance\n\n\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n }); // Extend defaults with modules params\n\n const swiperParams = extend({}, defaults, allModulesParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n const desktop = ['pointerdown', 'pointermove', 'pointerup'];\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n // eslint-disable-next-line no-constructor-return\n\n\n return swiper;\n }\n\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n }\n\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n }\n\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.each(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n\n slidesPerViewDynamic(view = 'current', exact = false) {\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n let translated;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n }\n\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}${currentDirection}`).addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n\n if (swiper.rtl) {\n swiper.$el.addClass(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n\n swiper.update();\n }\n\n mount(el) {\n const swiper = this;\n if (swiper.mounted) return true; // Find el\n\n const $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = options => $el.children(options);\n\n return res;\n }\n\n if (!$el.children) {\n return $($el).children(getWrapperSelector());\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n let $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n const document = getDocument();\n const wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(`.${swiper.params.slideClass}`).each(slideEl => {\n $wrapperEl.append(slideEl);\n });\n }\n\n Object.assign(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n }\n\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params,\n $el,\n $wrapperEl,\n slides\n } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n }\n\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n }\n\n}\n\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n setGrabCursor,\n unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n const swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n const swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n}","import { getWindow } from 'ssr-window';\nexport default function Resize({\n swiper,\n on,\n emit\n}) {\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(({\n contentBoxSize,\n contentRect,\n target\n }) => {\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}","import { getWindow } from 'ssr-window';\nexport default function Observer({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const observers = [];\n const window = getWindow();\n\n const attach = (target, options = {}) => {\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n\n const init = () => {\n if (!swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n } // Observe container\n\n\n attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n };\n\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}","export default function classesToSelector(classes = '') {\n return `.${classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}","import $ from '../../shared/dom.js';\nimport classesToSelector from '../../shared/classes-to-selector.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Pagination({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n $el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0;\n }\n\n function setSideBullets($bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n $bulletEl[position]().addClass(`${bulletActiveClass}-${position}`)[position]().addClass(`${bulletActiveClass}-${position}-${position}`);\n }\n\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el; // Current/Total\n\n let current;\n const total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n\n if (params.dynamicBullets) {\n bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', `${bulletSize * (params.dynamicMainBullets + 4)}px`);\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n dynamicBulletIndex += current - (swiper.previousIndex - swiper.loopedSlides || 0);\n\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`).join(' '));\n\n if ($el.length > 1) {\n bullets.each(bullet => {\n const $bullet = $(bullet);\n const bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (bulletIndex === firstIndex) {\n setSideBullets($bullet, 'prev');\n }\n\n if (bulletIndex === lastIndex) {\n setSideBullets($bullet, 'next');\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n const bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length) {\n for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\n bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`);\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n }\n }\n\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n let progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(classesToSelector(params.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n emit('paginationRender', $el[0]);\n } else {\n emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n let paginationHTML = '';\n\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">`;\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n }\n\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n emit('paginationRender', swiper.pagination.$el[0]);\n }\n }\n\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let $el = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el); // check if it belongs to another nested Swiper\n\n if ($el.length > 1) {\n $el = $el.filter(el => {\n if ($(el).parents('.swiper')[0] !== swiper.el) return false;\n return true;\n });\n }\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n $el.addClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n let index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n Object.assign(swiper.pagination, {\n $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n $el.removeClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (swiper.params.loop) {\n update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n if (!swiper.params.loop) {\n update();\n }\n });\n on('slidesLengthChange', () => {\n if (swiper.params.loop) {\n render();\n update();\n }\n });\n on('snapGridLengthChange', () => {\n if (!swiper.params.loop) {\n render();\n update();\n }\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $el\n } = swiper.pagination;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const {\n $el\n } = swiper.pagination;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && $el && $el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = $el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n\n $el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n });\n\n const enable = () => {\n swiper.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\n\n if (swiper.pagination.$el) {\n swiper.pagination.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\n }\n\n init();\n render();\n update();\n };\n\n const disable = () => {\n swiper.$el.addClass(swiper.params.pagination.paginationDisabledClass);\n\n if (swiper.pagination.$el) {\n swiper.pagination.$el.addClass(swiper.params.pagination.paginationDisabledClass);\n }\n\n destroy();\n };\n\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}","import { getDocument } from 'ssr-window';\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n const document = getDocument();\n\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = swiper.$el.children(`.${checkProps[key]}`)[0];\n\n if (!element) {\n element = document.createElement('div');\n element.className = checkProps[key];\n swiper.$el.append(element);\n }\n\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n\n return params;\n}","function isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction extend(target, src) {\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\n\nfunction needsNavigation(params = {}) {\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\n\nfunction needsPagination(params = {}) {\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\n\nfunction needsScrollbar(params = {}) {\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\n\nfunction uniqueClasses(classNames = '') {\n const classes = classNames.split(' ').map(c => c.trim()).filter(c => !!c);\n const unique = [];\n classes.forEach(c => {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\n\nexport { isObject, extend, needsNavigation, needsPagination, needsScrollbar, uniqueClasses };","/* underscore in name -> watch for changes */\nconst paramsList = ['modules', 'init', '_direction', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', '_spaceBetween', '_slidesPerView', 'maxBackfaceHiddenSlides', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_preloadImages', 'updateOnImagesReady', '_loop', '_loopAdditionalSlides', '_loopedSlides', '_loopedSlidesLimit', '_loopFillGroupWithBlank', 'loopPreventsSlide', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideBlankClass', 'slideActiveClass', 'slideDuplicateActiveClass', 'slideVisibleClass', 'slideDuplicateClass', 'slideNextClass', 'slideDuplicateNextClass', 'slidePrevClass', 'slideDuplicatePrevClass', 'wrapperClass', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren', // modules\n'a11y', '_autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'lazy', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom'];\nexport { paramsList };","import Swiper from 'swiper';\nexport const calcLoopedSlides = (slides, swiperParams) => {\n let slidesPerViewParams = swiperParams.slidesPerView;\n\n if (swiperParams.breakpoints) {\n const breakpoint = Swiper.prototype.getBreakpoint(swiperParams.breakpoints);\n const breakpointOnlyParams = breakpoint in swiperParams.breakpoints ? swiperParams.breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams && breakpointOnlyParams.slidesPerView) {\n slidesPerViewParams = breakpointOnlyParams.slidesPerView;\n }\n }\n\n let loopedSlides = Math.ceil(parseFloat(swiperParams.loopedSlides || slidesPerViewParams, 10));\n loopedSlides += swiperParams.loopAdditionalSlides;\n\n if (loopedSlides > slides.length && swiperParams.loopedSlidesLimit) {\n loopedSlides = slides.length;\n }\n\n return loopedSlides;\n};","import React from 'react';\n\nfunction isChildSwiperSlide(child) {\n return child.type && child.type.displayName && child.type.displayName.includes('SwiperSlide');\n}\n\nfunction processChildren(c) {\n const slides = [];\n React.Children.toArray(c).forEach(child => {\n if (isChildSwiperSlide(child)) {\n slides.push(child);\n } else if (child.props && child.props.children) {\n processChildren(child.props.children).forEach(slide => slides.push(slide));\n }\n });\n return slides;\n}\n\nfunction getChildren(c) {\n const slides = [];\n const slots = {\n 'container-start': [],\n 'container-end': [],\n 'wrapper-start': [],\n 'wrapper-end': []\n };\n React.Children.toArray(c).forEach(child => {\n if (isChildSwiperSlide(child)) {\n slides.push(child);\n } else if (child.props && child.props.slot && slots[child.props.slot]) {\n slots[child.props.slot].push(child);\n } else if (child.props && child.props.children) {\n const foundSlides = processChildren(child.props.children);\n\n if (foundSlides.length > 0) {\n foundSlides.forEach(slide => slides.push(slide));\n } else {\n slots['container-end'].push(child);\n }\n } else {\n slots['container-end'].push(child);\n }\n });\n return {\n slides,\n slots\n };\n}\n\nexport { getChildren };","import { isObject, extend } from './utils.js';\n\nfunction updateSwiper({\n swiper,\n slides,\n passedParams,\n changedParams,\n nextEl,\n prevEl,\n scrollbarEl,\n paginationEl\n}) {\n const updateParams = changedParams.filter(key => key !== 'children' && key !== 'direction');\n const {\n params: currentParams,\n pagination,\n navigation,\n scrollbar,\n virtual,\n thumbs\n } = swiper;\n let needThumbsInit;\n let needControllerInit;\n let needPaginationInit;\n let needScrollbarInit;\n let needNavigationInit;\n\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n needThumbsInit = true;\n }\n\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\n }\n\n if (changedParams.includes('pagination') && passedParams.pagination && (passedParams.pagination.el || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) {\n needPaginationInit = true;\n }\n\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\n\n if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) {\n needNavigationInit = true;\n }\n\n const destroyModule = mod => {\n if (!swiper[mod]) return;\n swiper[mod].destroy();\n\n if (mod === 'navigation') {\n currentParams[mod].prevEl = undefined;\n currentParams[mod].nextEl = undefined;\n swiper[mod].prevEl = undefined;\n swiper[mod].nextEl = undefined;\n } else {\n currentParams[mod].el = undefined;\n swiper[mod].el = undefined;\n }\n };\n\n updateParams.forEach(key => {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n extend(currentParams[key], passedParams[key]);\n } else {\n const newValue = passedParams[key];\n\n if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) {\n if (newValue === false) {\n destroyModule(key);\n }\n } else {\n currentParams[key] = passedParams[key];\n }\n }\n });\n\n if (updateParams.includes('controller') && !needControllerInit && swiper.controller && swiper.controller.control && currentParams.controller && currentParams.controller.control) {\n swiper.controller.control = currentParams.controller.control;\n }\n\n if (changedParams.includes('children') && slides && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n } else if (changedParams.includes('children') && swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n\n if (needThumbsInit) {\n const initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n\n if (needPaginationInit) {\n if (paginationEl) currentParams.pagination.el = paginationEl;\n pagination.init();\n pagination.render();\n pagination.update();\n }\n\n if (needScrollbarInit) {\n if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n\n if (needNavigationInit) {\n if (nextEl) currentParams.navigation.nextEl = nextEl;\n if (prevEl) currentParams.navigation.prevEl = prevEl;\n navigation.init();\n navigation.update();\n }\n\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n\n swiper.update();\n}\n\nexport { updateSwiper };","import { useEffect, useLayoutEffect } from 'react';\n\nfunction useIsomorphicLayoutEffect(callback, deps) {\n // eslint-disable-next-line\n if (typeof window === 'undefined') return useEffect(callback, deps);\n return useLayoutEffect(callback, deps);\n}\n\nexport { useIsomorphicLayoutEffect };","import { createContext, useContext } from 'react';\nexport const SwiperSlideContext = /*#__PURE__*/createContext(null);\nexport const useSwiperSlide = () => {\n return useContext(SwiperSlideContext);\n};\nexport const SwiperContext = /*#__PURE__*/createContext(null);\nexport const useSwiper = () => {\n return useContext(SwiperContext);\n};","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React, { useRef, useState, useEffect, forwardRef } from 'react';\nimport SwiperCore from 'swiper';\nimport { getParams } from '../components-shared/get-params.js';\nimport { mountSwiper } from '../components-shared/mount-swiper.js';\nimport { needsScrollbar, needsNavigation, needsPagination, uniqueClasses, extend } from '../components-shared/utils.js';\nimport { renderLoop, calcLoopedSlides } from './loop.js';\nimport { getChangedParams } from '../components-shared/get-changed-params.js';\nimport { getChildren } from './get-children.js';\nimport { updateSwiper } from '../components-shared/update-swiper.js';\nimport { renderVirtual } from './virtual.js';\nimport { updateOnVirtualData } from '../components-shared/update-on-virtual-data.js';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect.js';\nimport { SwiperContext } from './context.js';\nconst Swiper = /*#__PURE__*/forwardRef(function (_temp, externalElRef) {\n let {\n className,\n tag: Tag = 'div',\n wrapperTag: WrapperTag = 'div',\n children,\n onSwiper,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n let eventsAssigned = false;\n const [containerClasses, setContainerClasses] = useState('swiper');\n const [virtualData, setVirtualData] = useState(null);\n const [breakpointChanged, setBreakpointChanged] = useState(false);\n const initializedRef = useRef(false);\n const swiperElRef = useRef(null);\n const swiperRef = useRef(null);\n const oldPassedParamsRef = useRef(null);\n const oldSlides = useRef(null);\n const nextElRef = useRef(null);\n const prevElRef = useRef(null);\n const paginationElRef = useRef(null);\n const scrollbarElRef = useRef(null);\n const {\n params: swiperParams,\n passedParams,\n rest: restProps,\n events\n } = getParams(rest);\n const {\n slides,\n slots\n } = getChildren(children);\n\n const onBeforeBreakpoint = () => {\n setBreakpointChanged(!breakpointChanged);\n };\n\n Object.assign(swiperParams.on, {\n _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n }\n\n });\n\n const initSwiper = () => {\n // init swiper\n Object.assign(swiperParams.on, events);\n eventsAssigned = true;\n swiperRef.current = new SwiperCore(swiperParams);\n\n swiperRef.current.loopCreate = () => {};\n\n swiperRef.current.loopDestroy = () => {};\n\n if (swiperParams.loop) {\n swiperRef.current.loopedSlides = calcLoopedSlides(slides, swiperParams);\n }\n\n if (swiperRef.current.virtual && swiperRef.current.params.virtual.enabled) {\n swiperRef.current.virtual.slides = slides;\n const extendWith = {\n cache: false,\n slides,\n renderExternal: setVirtualData,\n renderExternalUpdate: false\n };\n extend(swiperRef.current.params.virtual, extendWith);\n extend(swiperRef.current.originalParams.virtual, extendWith);\n }\n };\n\n if (!swiperElRef.current) {\n initSwiper();\n } // Listen for breakpoints change\n\n\n if (swiperRef.current) {\n swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);\n }\n\n const attachEvents = () => {\n if (eventsAssigned || !events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.on(eventName, events[eventName]);\n });\n };\n\n const detachEvents = () => {\n if (!events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.off(eventName, events[eventName]);\n });\n };\n\n useEffect(() => {\n return () => {\n if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);\n };\n }); // set initialized flag\n\n useEffect(() => {\n if (!initializedRef.current && swiperRef.current) {\n swiperRef.current.emitSlidesClasses();\n initializedRef.current = true;\n }\n }); // mount swiper\n\n useIsomorphicLayoutEffect(() => {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n\n if (!swiperElRef.current) return;\n\n if (swiperRef.current.destroyed) {\n initSwiper();\n }\n\n mountSwiper({\n el: swiperElRef.current,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n paginationEl: paginationElRef.current,\n scrollbarEl: scrollbarElRef.current,\n swiper: swiperRef.current\n }, swiperParams);\n if (onSwiper) onSwiper(swiperRef.current); // eslint-disable-next-line\n\n return () => {\n if (swiperRef.current && !swiperRef.current.destroyed) {\n swiperRef.current.destroy(true, false);\n }\n };\n }, []); // watch for params change\n\n useIsomorphicLayoutEffect(() => {\n attachEvents();\n const changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current, c => c.key);\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\n\n if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) {\n updateSwiper({\n swiper: swiperRef.current,\n slides,\n passedParams,\n changedParams,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n scrollbarEl: scrollbarElRef.current,\n paginationEl: paginationElRef.current\n });\n }\n\n return () => {\n detachEvents();\n };\n }); // update on virtual update\n\n useIsomorphicLayoutEffect(() => {\n updateOnVirtualData(swiperRef.current);\n }, [virtualData]); // bypass swiper instance to slides\n\n function renderSlides() {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef.current, slides, virtualData);\n }\n\n if (!swiperParams.loop || swiperRef.current && swiperRef.current.destroyed) {\n return slides.map(child => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiperRef.current\n });\n });\n }\n\n return renderLoop(swiperRef.current, slides, swiperParams);\n }\n\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: swiperElRef,\n className: uniqueClasses(`${containerClasses}${className ? ` ${className}` : ''}`)\n }, restProps), /*#__PURE__*/React.createElement(SwiperContext.Provider, {\n value: swiperRef.current\n }, slots['container-start'], /*#__PURE__*/React.createElement(WrapperTag, {\n className: \"swiper-wrapper\"\n }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), needsNavigation(swiperParams) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n ref: prevElRef,\n className: \"swiper-button-prev\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: nextElRef,\n className: \"swiper-button-next\"\n })), needsScrollbar(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollbarElRef,\n className: \"swiper-scrollbar\"\n }), needsPagination(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: paginationElRef,\n className: \"swiper-pagination\"\n }), slots['container-end']));\n});\nSwiper.displayName = 'Swiper';\nexport { Swiper };","import Swiper from 'swiper';\nimport { isObject, extend } from './utils.js';\nimport { paramsList } from './params-list.js';\n\nfunction getParams(obj = {}, splitEvents = true) {\n const params = {\n on: {}\n };\n const events = {};\n const passedParams = {};\n extend(params, Swiper.defaults);\n extend(params, Swiper.extendedDefaults);\n params._emitClasses = true;\n params.init = false;\n const rest = {};\n const allowedParams = paramsList.map(key => key.replace(/_/, ''));\n const plainObj = Object.assign({}, obj);\n Object.keys(plainObj).forEach(key => {\n if (typeof obj[key] === 'undefined') return;\n\n if (allowedParams.indexOf(key) >= 0) {\n if (isObject(obj[key])) {\n params[key] = {};\n passedParams[key] = {};\n extend(params[key], obj[key]);\n extend(passedParams[key], obj[key]);\n } else {\n params[key] = obj[key];\n passedParams[key] = obj[key];\n }\n } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {\n if (splitEvents) {\n events[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n } else {\n params.on[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n }\n } else {\n rest[key] = obj[key];\n }\n });\n ['navigation', 'pagination', 'scrollbar'].forEach(key => {\n if (params[key] === true) params[key] = {};\n if (params[key] === false) delete params[key];\n });\n return {\n params,\n passedParams,\n rest,\n events\n };\n}\n\nexport { getParams };","import { needsNavigation, needsPagination, needsScrollbar } from './utils.js';\n\nfunction mountSwiper({\n el,\n nextEl,\n prevEl,\n paginationEl,\n scrollbarEl,\n swiper\n}, swiperParams) {\n if (needsNavigation(swiperParams) && nextEl && prevEl) {\n swiper.params.navigation.nextEl = nextEl;\n swiper.originalParams.navigation.nextEl = nextEl;\n swiper.params.navigation.prevEl = prevEl;\n swiper.originalParams.navigation.prevEl = prevEl;\n }\n\n if (needsPagination(swiperParams) && paginationEl) {\n swiper.params.pagination.el = paginationEl;\n swiper.originalParams.pagination.el = paginationEl;\n }\n\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n swiper.params.scrollbar.el = scrollbarEl;\n swiper.originalParams.scrollbar.el = scrollbarEl;\n }\n\n swiper.init(el);\n}\n\nexport { mountSwiper };","import { paramsList } from './params-list.js';\nimport { isObject } from './utils.js';\n\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren, getKey) {\n const keys = [];\n if (!oldParams) return keys;\n\n const addKey = key => {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n\n if (children && oldChildren) {\n const oldChildrenKeys = oldChildren.map(getKey);\n const childrenKeys = children.map(getKey);\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n if (oldChildren.length !== children.length) addKey('children');\n }\n\n const watchParams = paramsList.filter(key => key[0] === '_').map(key => key.replace(/_/, ''));\n watchParams.forEach(key => {\n if (key in swiperParams && key in oldParams) {\n if (isObject(swiperParams[key]) && isObject(oldParams[key])) {\n const newKeys = Object.keys(swiperParams[key]);\n const oldKeys = Object.keys(oldParams[key]);\n\n if (newKeys.length !== oldKeys.length) {\n addKey(key);\n } else {\n newKeys.forEach(newKey => {\n if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n addKey(key);\n }\n });\n oldKeys.forEach(oldKey => {\n if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);\n });\n }\n } else if (swiperParams[key] !== oldParams[key]) {\n addKey(key);\n }\n }\n });\n return keys;\n}\n\nexport { getChangedParams };","export const updateOnVirtualData = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params.virtual || swiper.params.virtual && !swiper.params.virtual.enabled) return;\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n\n if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n swiper.parallax.setTranslate();\n }\n};","import React from 'react';\n\nfunction renderVirtual(swiper, slides, virtualData) {\n if (!virtualData) return null;\n const style = swiper.isHorizontal() ? {\n [swiper.rtlTranslate ? 'right' : 'left']: `${virtualData.offset}px`\n } : {\n top: `${virtualData.offset}px`\n };\n return slides.filter((child, index) => index >= virtualData.from && index <= virtualData.to).map(child => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n style\n });\n });\n}\n\nexport { renderVirtual };","import React from 'react';\nimport { calcLoopedSlides } from '../shared/calc-looped-slides.js';\n\nfunction renderLoop(swiper, slides, swiperParams) {\n const modifiedSlides = slides.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n 'data-swiper-slide-index': index\n });\n });\n\n function duplicateSlide(child, index, position) {\n return /*#__PURE__*/React.cloneElement(child, {\n key: `${child.key}-duplicate-${index}-${position}`,\n className: `${child.props.className || ''} ${swiperParams.slideDuplicateClass}`\n });\n }\n\n if (swiperParams.loopFillGroupWithBlank) {\n const blankSlidesNum = swiperParams.slidesPerGroup - modifiedSlides.length % swiperParams.slidesPerGroup;\n\n if (blankSlidesNum !== swiperParams.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankSlide = /*#__PURE__*/React.createElement(\"div\", {\n className: `${swiperParams.slideClass} ${swiperParams.slideBlankClass}`\n });\n modifiedSlides.push(blankSlide);\n }\n }\n }\n\n if (swiperParams.slidesPerView === 'auto' && !swiperParams.loopedSlides) {\n swiperParams.loopedSlides = modifiedSlides.length;\n }\n\n const loopedSlides = calcLoopedSlides(modifiedSlides, swiperParams);\n const prependSlides = [];\n const appendSlides = [];\n\n for (let i = 0; i < loopedSlides; i += 1) {\n const index = i - Math.floor(i / modifiedSlides.length) * modifiedSlides.length;\n appendSlides.push(duplicateSlide(modifiedSlides[index], i, 'append'));\n prependSlides.unshift(duplicateSlide(modifiedSlides[modifiedSlides.length - index - 1], i, 'prepend'));\n }\n\n if (swiper) {\n swiper.loopedSlides = loopedSlides;\n }\n\n return [...prependSlides, ...modifiedSlides, ...appendSlides];\n}\n\nexport { calcLoopedSlides, renderLoop };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React, { useRef, useState, forwardRef } from 'react';\nimport { uniqueClasses } from '../components-shared/utils.js';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect.js';\nimport { SwiperSlideContext } from './context.js';\nconst SwiperSlide = /*#__PURE__*/forwardRef(function (_temp, externalRef) {\n let {\n tag: Tag = 'div',\n children,\n className = '',\n swiper,\n zoom,\n virtualIndex,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n const slideElRef = useRef(null);\n const [slideClasses, setSlideClasses] = useState('swiper-slide');\n\n function updateClasses(_s, el, classNames) {\n if (el === slideElRef.current) {\n setSlideClasses(classNames);\n }\n }\n\n useIsomorphicLayoutEffect(() => {\n if (externalRef) {\n externalRef.current = slideElRef.current;\n }\n\n if (!slideElRef.current || !swiper) {\n return;\n }\n\n if (swiper.destroyed) {\n if (slideClasses !== 'swiper-slide') {\n setSlideClasses('swiper-slide');\n }\n\n return;\n }\n\n swiper.on('_slideClass', updateClasses); // eslint-disable-next-line\n\n return () => {\n if (!swiper) return;\n swiper.off('_slideClass', updateClasses);\n };\n });\n useIsomorphicLayoutEffect(() => {\n if (swiper && slideElRef.current && !swiper.destroyed) {\n setSlideClasses(swiper.getSlideClasses(slideElRef.current));\n }\n }, [swiper]);\n const slideData = {\n isActive: slideClasses.indexOf('swiper-slide-active') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-active') >= 0,\n isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,\n isDuplicate: slideClasses.indexOf('swiper-slide-duplicate') >= 0,\n isPrev: slideClasses.indexOf('swiper-slide-prev') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-prev') >= 0,\n isNext: slideClasses.indexOf('swiper-slide-next') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-next') >= 0\n };\n\n const renderChildren = () => {\n return typeof children === 'function' ? children(slideData) : children;\n };\n\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: slideElRef,\n className: uniqueClasses(`${slideClasses}${className ? ` ${className}` : ''}`),\n \"data-swiper-slide-index\": virtualIndex\n }, rest), /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, zoom ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-zoom-container\",\n \"data-swiper-zoom\": typeof zoom === 'number' ? zoom : undefined\n }, renderChildren()) : renderChildren()));\n});\nSwiperSlide.displayName = 'SwiperSlide';\nexport { SwiperSlide };","import './Button.css';\ntype props = {\n id?: string,\n label: string,\n size?: \"s\" | \"m\" | \"l\",\n varient?: \"contained\" | \"outlined\",\n color?: \"orange\" | \"black\"\n disabled?: boolean,\n className?: string,\n onClick?: () => void\n}\nconst Button: React.FC = (props) => {\n const {\n id = \"\",\n label,\n size = \"s\",\n varient = \"contained\",\n color = \"orange\",\n className = \"\",\n onClick,\n disabled\n } = props;\n return (\n onClick && onClick()}>\n {label}\n \n )\n}\n\nexport default Button;\n\n","import Button from \"components/_common/Button\";\n\ntype props = {\n imgUrl: string,\n imgAlt: string\n title: string,\n readMoreLink?: string,\n des: string,\n btnLabel: string,\n onClick?: () => void,\n btnId?: string,\n ctaUrl: string,\n}\n\nconst SaveTaxCard: React.FC = (props) => {\n const { imgUrl, imgAlt, title, des, readMoreLink, btnLabel, btnId, onClick, ctaUrl } = props;\n return (\n
\n
\n {imgAlt}\n
\n
\n

{title}

\n

\n {des}\n {readMoreLink && Know more}\n

\n
\n\n \n onClick && onClick()} />\n \n
\n )\n}\n\nexport default SaveTaxCard;","import Container from \"components/_common/Container\";\nimport { Swiper, SwiperSlide } from 'swiper/react';\nimport { Pagination } from 'swiper';\nimport SaveTaxCard from \"./components/SaveTaxCard\";\nimport taxCardImg1 from 'assets/imgs/taxCardImg1.png';\nimport taxCardImg2 from 'assets/imgs/taxCardImg2.png';\nimport taxCardImg3 from 'assets/imgs/taxCardImg3.png';\n\nimport 'swiper/css';\nimport 'swiper/css/pagination';\nimport './SaveTax.css';\n\nconst SaveTax: React.FC = () => {\n\n\n return (\n <>\n
\n \n

\n Donating = Savings\n

\n

\n Support underprivileged children and save on your taxes through “Section 80G\".
\n Be a part of the change and make a difference in the lives of those in need\n

\n\n\n \n \n \n\n \n\n \n \n \n\n \n \n \n\n\n \n
\n
\n\n
\n \n

\n What is Income Tax?\n

\n

\n Income tax is a percentage of charge on annual income earned by an individual or business. It needs to be paid to the government. It is calculated based on the tax slabs defined by Income Tax Department. Usually, the tax will be paid when the annual income crosses 5 Lakhs per annum (tax rebate available for income up to 5 Lakhs per annum).\n

\n
\n
\n \n )\n}\n\nexport default SaveTax;","var _g, _defs;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgDeductionImg(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 340,\n height: 365,\n viewBox: \"0 0 340 365\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_181_18308)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M221.455 143.133C221.711 143.173 221.942 143.31 222.099 143.516C222.256 143.723 222.327 143.982 222.298 144.24L222.112 145.878C224.746 146.397 227.164 147.694 229.055 149.603C229.21 149.721 229.334 149.875 229.415 150.052C229.496 150.228 229.531 150.423 229.519 150.617C229.479 150.893 229.332 151.143 229.109 151.311C228.887 151.478 228.607 151.551 228.331 151.512C228.195 151.503 228.062 151.465 227.942 151.401C227.821 151.337 227.716 151.248 227.631 151.141C226.061 149.469 224.037 148.295 221.809 147.762L220.461 159.241C226.519 161.285 228.887 163.929 228.398 167.95C227.884 172.3 223.882 174.944 218.751 174.505L218.38 177.698C218.365 177.827 218.325 177.952 218.262 178.066C218.198 178.179 218.114 178.28 218.012 178.36C217.91 178.441 217.794 178.501 217.669 178.537C217.544 178.572 217.413 178.583 217.285 178.568C217.156 178.553 217.031 178.513 216.918 178.449C216.804 178.386 216.704 178.301 216.624 178.199C216.543 178.097 216.483 177.98 216.448 177.855C216.412 177.73 216.402 177.599 216.417 177.47L216.796 174.235C213.4 173.572 210.324 171.788 208.058 169.166C207.931 169.054 207.832 168.913 207.772 168.754C207.712 168.594 207.691 168.423 207.713 168.254C207.754 167.988 207.895 167.747 208.105 167.579C208.316 167.412 208.582 167.33 208.85 167.35C209.126 167.376 209.38 167.51 209.558 167.722C211.46 170.1 214.12 171.749 217.091 172.393L218.464 160.711C212.49 158.633 210.215 156.082 210.696 151.977C211.176 147.872 215.153 145.11 220.158 145.574L220.343 144.012C220.375 143.747 220.51 143.507 220.718 143.342C220.927 143.177 221.192 143.102 221.455 143.133ZM218.725 158.608L220.04 147.416C216.063 147.036 213.164 149.105 212.819 152.053C212.507 154.84 213.602 156.716 218.725 158.608ZM220.234 161.328L218.902 172.638C223.006 173.044 225.938 170.949 226.309 167.857C226.637 165.027 225.407 163.144 220.234 161.328Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M104.505 231.851C104.884 232.839 103.873 234.03 102.188 234.385C100.503 234.74 98.8178 234.14 98.5229 233.16C98.228 232.18 99.3065 231.158 100.924 230.795C102.542 230.432 104.126 230.863 104.505 231.851Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M123.817 235.703C123.143 236.336 122.452 236.928 121.736 237.485L110.454 215.346C111.044 214.907 111.608 214.434 112.139 213.935C116.049 221.2 119.941 228.455 123.817 235.703Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M119.461 233.017L121.028 236.091C119.493 237.292 117.849 238.344 116.116 239.234C115.316 237.477 116.95 234.976 119.461 233.017Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M107.067 219.375C108.501 218.605 109.873 217.724 111.17 216.74L112.737 219.814C110.504 221.529 107.85 221.115 107.067 219.375Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M326.837 337.581H272.869V349.534H326.837V337.581Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.1\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M275.095 338.679C275.677 341.84 275.677 345.081 275.095 348.241C274.517 345.08 274.517 341.84 275.095 338.679Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M279.114 338.679C279.696 341.84 279.696 345.081 279.114 348.241C278.536 345.08 278.536 341.84 279.114 338.679Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M281.077 338.679C281.659 341.84 281.659 345.081 281.077 348.241C280.499 345.08 280.499 341.84 281.077 338.679Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M291.854 338.679C292.436 341.84 292.436 345.081 291.854 348.241C291.276 345.08 291.276 341.84 291.854 338.679Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M294.769 338.679C295.351 341.84 295.351 345.081 294.769 348.241C294.191 345.08 294.191 341.84 294.769 338.679Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M306.826 338.679C307.409 341.84 307.409 345.081 306.826 348.241C306.248 345.08 306.248 341.84 306.826 338.679Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M309.615 338.679C310.193 341.84 310.193 345.08 309.615 348.241C309.033 345.081 309.033 341.84 309.615 338.679Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M314.73 338.679C315.308 341.84 315.308 345.08 314.73 348.241C314.147 345.081 314.147 341.84 314.73 338.679Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M304.501 338.679C305.079 341.84 305.079 345.08 304.501 348.241C303.918 345.081 303.918 341.84 304.501 338.679Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M284.641 338.679C285.219 341.84 285.219 345.08 284.641 348.241C284.059 345.081 284.059 341.84 284.641 338.679Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M298.611 338.679C299.189 341.84 299.189 345.08 298.611 348.241C298.029 345.081 298.029 341.84 298.611 338.679Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M300.616 338.679C301.199 341.84 301.199 345.081 300.616 348.241C300.038 345.08 300.038 341.84 300.616 338.679Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M321.394 338.679C321.977 341.84 321.977 345.081 321.394 348.241C320.816 345.08 320.816 341.84 321.394 338.679Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M324.411 338.679C324.989 341.84 324.989 345.08 324.411 348.241C323.829 345.081 323.829 341.84 324.411 338.679Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M317.106 338.679C317.684 341.84 317.684 345.08 317.106 348.241C316.523 345.081 316.523 341.84 317.106 338.679Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M289.528 338.679C290.106 341.84 290.106 345.08 289.528 348.241C288.946 345.081 288.946 341.84 289.528 338.679Z\",\n fill: \"#231F20\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.1,\n d: \"M326.828 337.581V340.124L272.869 341.83V337.581H326.828Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M323.146 325.629H269.179V337.581H323.146V325.629Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.1\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M271.404 326.727C271.987 329.888 271.987 333.128 271.404 336.289C270.826 333.128 270.826 329.888 271.404 326.727Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M275.423 326.727C276.006 329.888 276.006 333.128 275.423 336.289C274.845 333.128 274.845 329.888 275.423 326.727Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M277.387 326.727C277.969 329.888 277.969 333.128 277.387 336.289C276.809 333.128 276.809 329.888 277.387 326.727Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M288.163 326.727C288.746 329.888 288.746 333.128 288.163 336.289C287.585 333.128 287.585 329.888 288.163 326.727Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M291.079 326.727C291.661 329.888 291.661 333.128 291.079 336.289C290.501 333.128 290.501 329.888 291.079 326.727Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M303.136 326.727C303.718 329.888 303.718 333.128 303.136 336.289C302.558 333.128 302.558 329.888 303.136 326.727Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M305.925 326.727C306.503 329.888 306.503 333.128 305.925 336.289C305.342 333.128 305.342 329.888 305.925 326.727Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M311.039 326.727C311.617 329.888 311.617 333.128 311.039 336.289C310.457 333.128 310.457 329.888 311.039 326.727Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M300.81 326.727C301.388 329.888 301.388 333.128 300.81 336.289C300.228 333.128 300.228 329.888 300.81 326.727Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M280.951 326.727C281.529 329.888 281.529 333.128 280.951 336.289C280.368 333.128 280.368 329.888 280.951 326.727Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M294.921 326.727C295.499 329.888 295.499 333.128 294.921 336.289C294.338 333.128 294.338 329.888 294.921 326.727Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M296.926 326.727C297.508 329.888 297.508 333.128 296.926 336.289C296.348 333.128 296.348 329.888 296.926 326.727Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M317.704 326.727C318.286 329.888 318.286 333.128 317.704 336.289C317.126 333.128 317.126 329.888 317.704 326.727Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M320.72 326.727C321.298 329.888 321.298 333.128 320.72 336.289C320.138 333.128 320.138 329.888 320.72 326.727Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M313.415 326.727C313.993 329.888 313.993 333.128 313.415 336.289C312.833 333.128 312.833 329.888 313.415 326.727Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M285.812 326.727C286.39 329.888 286.39 333.128 285.812 336.289C285.23 333.128 285.23 329.888 285.812 326.727Z\",\n fill: \"#231F20\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.1,\n d: \"M323.138 325.629V328.163L269.179 329.869V325.629H323.138Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M331.488 301.817H277.521V313.769H331.488V301.817Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.1\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M279.746 302.898C280.324 306.059 280.324 309.299 279.746 312.46C279.163 309.299 279.163 306.059 279.746 302.898Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M283.756 302.898C284.339 306.059 284.339 309.299 283.756 312.46C283.178 309.299 283.178 306.059 283.756 302.898Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M285.728 302.898C286.306 306.059 286.306 309.299 285.728 312.46C285.146 309.299 285.146 306.059 285.728 302.898Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M296.505 302.898C297.083 306.059 297.083 309.299 296.505 312.46C295.922 309.299 295.922 306.059 296.505 302.898Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M299.42 302.898C299.998 306.059 299.998 309.299 299.42 312.46C298.838 309.299 298.838 306.059 299.42 302.898Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M311.477 302.898C312.055 306.059 312.055 309.299 311.477 312.46C310.895 309.299 310.895 306.059 311.477 302.898Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M314.258 302.898C314.84 306.059 314.84 309.299 314.258 312.46C313.68 309.299 313.68 306.059 314.258 302.898Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M319.372 302.898C319.955 306.059 319.955 309.299 319.372 312.46C318.794 309.299 318.794 306.059 319.372 302.898Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M309.143 302.898C309.726 306.059 309.726 309.299 309.143 312.46C308.565 309.299 308.565 306.059 309.143 302.898Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M289.284 302.898C289.866 306.059 289.866 309.299 289.284 312.46C288.706 309.299 288.706 306.059 289.284 302.898Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M303.254 302.898C303.832 306.059 303.832 309.299 303.254 312.46C302.671 309.299 302.671 306.059 303.254 302.898Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M305.259 302.898C305.841 306.059 305.841 309.299 305.259 312.46C304.681 309.299 304.681 306.059 305.259 302.898Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M326.045 302.898C326.623 306.059 326.623 309.299 326.045 312.46C325.459 309.3 325.459 306.058 326.045 302.898Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M329.053 302.898C329.636 306.059 329.636 309.299 329.053 312.46C328.475 309.299 328.475 306.059 329.053 302.898Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M321.748 302.898C322.331 306.059 322.331 309.299 321.748 312.46C321.17 309.299 321.17 306.059 321.748 302.898Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M294.171 302.898C294.753 306.059 294.753 309.299 294.171 312.46C293.593 309.299 293.593 306.059 294.171 302.898Z\",\n fill: \"#231F20\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.1,\n d: \"M331.479 301.817V304.359L277.521 306.066V301.817H331.479Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M330.123 289.865H276.156V301.817H330.123V289.865Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.1\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M327.697 300.525C327.114 297.364 327.114 294.123 327.697 290.963C328.275 294.124 328.275 297.364 327.697 300.525Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M323.678 300.525C323.095 297.364 323.095 294.123 323.678 290.963C324.256 294.124 324.256 297.364 323.678 300.525Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M321.714 300.525C321.132 297.364 321.132 294.123 321.714 290.963C322.292 294.124 322.292 297.364 321.714 300.525Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M310.929 300.525C310.351 297.364 310.351 294.124 310.929 290.963C311.512 294.123 311.512 297.364 310.929 300.525Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M308.014 300.525C307.436 297.364 307.436 294.124 308.014 290.963C308.596 294.123 308.596 297.364 308.014 300.525Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M295.965 300.525C295.379 297.364 295.379 294.123 295.965 290.963C296.543 294.124 296.543 297.364 295.965 300.525Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M293.176 300.525C292.594 297.364 292.594 294.123 293.176 290.963C293.754 294.124 293.754 297.364 293.176 300.525Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M288.062 300.525C287.479 297.364 287.479 294.123 288.062 290.963C288.64 294.124 288.64 297.364 288.062 300.525Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M298.291 300.525C297.708 297.364 297.708 294.123 298.291 290.963C298.869 294.124 298.869 297.364 298.291 300.525Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M318.15 300.525C317.568 297.364 317.568 294.123 318.15 290.963C318.728 294.124 318.728 297.364 318.15 300.525Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M304.18 300.525C303.602 297.364 303.602 294.124 304.18 290.963C304.763 294.123 304.763 297.364 304.18 300.525Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M302.175 300.525C301.593 297.364 301.593 294.123 302.175 290.963C302.753 294.124 302.753 297.364 302.175 300.525Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M281.397 300.525C280.815 297.364 280.815 294.123 281.397 290.963C281.975 294.124 281.975 297.364 281.397 300.525Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M278.381 300.525C277.798 297.364 277.798 294.123 278.381 290.963C278.959 294.124 278.959 297.364 278.381 300.525Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M285.686 300.525C285.108 297.364 285.108 294.124 285.686 290.963C286.268 294.123 286.268 297.364 285.686 300.525Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M313.263 300.525C312.681 297.364 312.681 294.123 313.263 290.963C313.841 294.124 313.841 297.364 313.263 300.525Z\",\n fill: \"#231F20\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.1,\n d: \"M330.114 289.865V292.407L276.156 294.113V289.865H330.114Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M326.837 277.912H272.869V289.865H326.837V277.912Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.1\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M275.095 279.01C275.677 282.171 275.677 285.412 275.095 288.572C274.517 285.411 274.517 282.171 275.095 279.01Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M279.114 279.01C279.696 282.171 279.696 285.412 279.114 288.572C278.536 285.411 278.536 282.171 279.114 279.01Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M281.077 279.01C281.659 282.171 281.659 285.412 281.077 288.572C280.499 285.411 280.499 282.171 281.077 279.01Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M291.854 279.01C292.436 282.171 292.436 285.412 291.854 288.572C291.276 285.411 291.276 282.171 291.854 279.01Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M294.769 279.01C295.351 282.171 295.351 285.412 294.769 288.572C294.191 285.411 294.191 282.171 294.769 279.01Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M306.826 279.01C307.409 282.171 307.409 285.412 306.826 288.572C306.248 285.411 306.248 282.171 306.826 279.01Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M309.615 279.01C310.193 282.171 310.193 285.411 309.615 288.572C309.033 285.412 309.033 282.171 309.615 279.01Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M314.73 279.01C315.308 282.171 315.308 285.411 314.73 288.572C314.147 285.412 314.147 282.171 314.73 279.01Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M304.501 279.01C305.079 282.171 305.079 285.411 304.501 288.572C303.918 285.412 303.918 282.171 304.501 279.01Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M284.641 279.01C285.223 282.171 285.223 285.412 284.641 288.572C284.063 285.411 284.063 282.171 284.641 279.01Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M298.611 279.01C299.189 282.171 299.189 285.411 298.611 288.572C298.029 285.412 298.029 282.171 298.611 279.01Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M300.616 279.01C301.199 282.171 301.199 285.412 300.616 288.572C300.038 285.411 300.038 282.171 300.616 279.01Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M321.394 279.01C321.977 282.171 321.977 285.412 321.394 288.572C320.816 285.411 320.816 282.171 321.394 279.01Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M324.411 279.01C324.989 282.171 324.989 285.411 324.411 288.572C323.829 285.412 323.829 282.171 324.411 279.01Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M317.106 279.01C317.684 282.171 317.684 285.411 317.106 288.572C316.523 285.412 316.523 282.171 317.106 279.01Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M289.528 279.01C290.106 282.171 290.106 285.411 289.528 288.572C288.946 285.412 288.946 282.171 289.528 279.01Z\",\n fill: \"#231F20\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.1,\n d: \"M326.828 277.912V280.446L272.869 282.153V277.912H326.828Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M326.837 313.769H272.869V325.722H326.837V313.769Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.1\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M324.411 324.429C323.829 321.269 323.829 318.028 324.411 314.867C324.989 318.028 324.989 321.268 324.411 324.429Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M320.358 324.429C319.776 321.269 319.776 318.028 320.358 314.867C320.936 318.028 320.936 321.268 320.358 324.429Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M318.428 324.429C317.846 321.269 317.846 318.028 318.428 314.867C319.006 318.028 319.006 321.268 318.428 324.429Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M307.652 324.429C307.07 321.269 307.07 318.028 307.652 314.867C308.23 318.028 308.23 321.268 307.652 324.429Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M304.737 324.429C304.154 321.269 304.154 318.028 304.737 314.867C305.315 318.028 305.315 321.268 304.737 324.429Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M292.679 324.429C292.097 321.269 292.097 318.028 292.679 314.867C293.257 318.028 293.257 321.268 292.679 324.429Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M289.89 324.429C289.312 321.268 289.312 318.028 289.89 314.867C290.473 318.028 290.473 321.269 289.89 324.429Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M284.776 324.429C284.198 321.268 284.198 318.028 284.776 314.867C285.358 318.028 285.358 321.269 284.776 324.429Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M295.005 324.429C294.427 321.268 294.427 318.028 295.005 314.867C295.587 318.028 295.587 321.269 295.005 324.429Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M314.864 324.429C314.286 321.268 314.286 318.028 314.864 314.867C315.447 318.028 315.447 321.269 314.864 324.429Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M300.894 324.429C300.316 321.268 300.316 318.028 300.894 314.867C301.477 318.028 301.477 321.269 300.894 324.429Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M298.889 324.429C298.307 321.269 298.307 318.028 298.889 314.867C299.467 318.028 299.467 321.268 298.889 324.429Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M278.111 324.429C277.529 321.269 277.529 318.028 278.111 314.867C278.689 318.028 278.689 321.268 278.111 324.429Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M275.095 324.429C274.517 321.268 274.517 318.028 275.095 314.867C275.677 318.028 275.677 321.269 275.095 324.429Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M282.442 324.429C281.864 321.268 281.864 318.028 282.442 314.867C283.024 318.028 283.024 321.269 282.442 324.429Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M309.977 324.429C309.399 321.268 309.399 318.028 309.977 314.867C310.56 318.028 310.56 321.269 309.977 324.429Z\",\n fill: \"#231F20\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.1,\n d: \"M326.828 313.769V316.312L272.869 318.018V313.769H326.828Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M268.37 296.259C303.893 302.645 294.49 355.387 258.925 349.002C223.36 342.616 232.788 289.856 268.37 296.259Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.1,\n d: \"M268.37 296.259C303.893 302.645 294.49 355.387 258.925 349.002C223.36 342.616 232.788 289.856 268.37 296.259Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M265.034 295.651C298.888 301.741 289.468 354.5 255.597 348.402C221.725 342.303 231.128 289.552 265.034 295.651Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.1,\n d: \"M238.846 323.264C239.023 332.665 244.483 341.771 256.397 343.916C284.539 348.985 292.333 305.196 264.233 300.136L263.685 300.052C290.024 305.339 282.475 346.771 255.647 341.948C244.702 339.98 239.47 331.863 238.846 323.264Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.1\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M263.239 305.61C263.466 305.669 263.661 305.816 263.782 306.018C263.904 306.22 263.941 306.461 263.888 306.691L263.534 308.144C265.833 308.912 267.849 310.354 269.322 312.283C269.448 312.405 269.542 312.558 269.595 312.726C269.648 312.894 269.658 313.073 269.625 313.246C269.558 313.488 269.399 313.694 269.181 313.819C268.963 313.944 268.705 313.978 268.463 313.913C268.342 313.886 268.228 313.836 268.126 313.765C268.025 313.694 267.939 313.604 267.873 313.499C266.661 311.815 264.982 310.526 263.045 309.791L260.517 319.927C265.724 322.461 267.519 325.097 266.634 328.644C265.682 332.479 261.789 334.388 257.24 333.408L256.54 336.23C256.483 336.46 256.337 336.659 256.134 336.782C255.931 336.905 255.688 336.941 255.458 336.884C255.227 336.827 255.029 336.681 254.907 336.477C254.784 336.274 254.748 336.03 254.805 335.799L255.521 332.935C252.552 331.954 249.998 330.003 248.266 327.394C248.137 327.243 248.059 327.055 248.043 326.857C248.026 326.659 248.073 326.46 248.176 326.29C248.278 326.12 248.432 325.986 248.614 325.909C248.797 325.831 248.999 325.813 249.193 325.857C249.312 325.884 249.425 325.935 249.525 326.006C249.625 326.077 249.709 326.167 249.774 326.271C251.207 328.624 253.402 330.413 255.993 331.339L258.562 321.025C253.448 318.491 251.704 315.957 252.605 312.308C253.507 308.659 257.383 306.657 261.815 307.654L262.16 306.277C262.187 306.162 262.236 306.053 262.305 305.957C262.374 305.862 262.461 305.78 262.561 305.718C262.661 305.656 262.773 305.615 262.889 305.596C263.005 305.577 263.124 305.582 263.239 305.61ZM259.026 319.167L261.478 309.284C257.964 308.482 255.125 310.002 254.484 312.604C253.869 315.07 254.636 316.878 259.026 319.167ZM260.062 321.769L257.577 331.761C261.208 332.606 264.073 331.077 264.755 328.323C265.379 325.832 264.494 324.015 260.062 321.769Z\",\n fill: \"#231F20\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.48242 349.517C109.148 349.002 226.553 348.993 331.218 349.517C226.553 350.041 109.148 350.032 4.48242 349.517Z\",\n fill: \"#333333\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M315.65 66.4913L231.714 54.1107L212.514 184.93L296.45 197.311L315.65 66.4913Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M309.567 65.5962L225.632 53.2156L206.432 184.035L290.368 196.416L309.567 65.5962Z\",\n fill: \"#333333\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M243.336 89.9243L227.198 87.5438L224.823 103.723L240.962 106.103L243.336 89.9243Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M261.623 92.6228L245.484 90.2423L243.11 106.421L259.248 108.802L261.623 92.6228Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M279.919 95.3142L263.781 92.9337L261.406 109.113L277.545 111.493L279.919 95.3142Z\",\n fill: \"#FDD25F\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M298.205 98.0224L282.067 95.642L279.692 111.821L295.831 114.201L298.205 98.0224Z\",\n fill: \"#FDD25F\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M240.612 108.477L224.473 106.097L222.099 122.276L238.237 124.656L240.612 108.477Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M258.907 111.177L242.768 108.797L240.394 124.976L256.532 127.356L258.907 111.177Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M277.194 113.877L261.056 111.497L258.681 127.676L274.82 130.056L277.194 113.877Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M295.465 116.69L279.327 114.31L276.952 130.489L293.091 132.869L295.465 116.69Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M237.887 127.04L221.749 124.66L219.374 140.839L235.513 143.219L237.887 127.04Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M256.182 129.74L240.043 127.359L237.669 143.539L253.808 145.919L256.182 129.74Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M274.47 132.43L258.331 130.05L255.957 146.229L272.095 148.609L274.47 132.43Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M292.756 135.138L276.618 132.758L274.243 148.937L290.382 151.317L292.756 135.138Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M235.163 145.603L219.024 143.223L216.65 159.402L232.788 161.782L235.163 145.603Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M253.449 148.293L237.311 145.913L234.936 162.092L251.075 164.472L253.449 148.293Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M271.745 150.993L255.607 148.612L253.232 164.791L269.371 167.172L271.745 150.993Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M290.04 153.693L273.902 151.312L271.527 167.491L287.666 169.872L290.04 153.693Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M232.438 164.156L216.3 161.776L213.925 177.955L230.064 180.335L232.438 164.156Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M250.733 166.856L234.594 164.475L232.22 180.655L248.359 183.035L250.733 166.856Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M269.021 169.547L252.882 167.167L250.508 183.346L266.646 185.726L269.021 169.547Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M287.307 172.246L271.169 169.865L268.794 186.044L284.933 188.425L287.307 172.246Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M231.908 94.9073C231.921 94.7551 231.964 94.6071 232.036 94.4723C232.108 94.3376 232.207 94.2189 232.326 94.1237C232.445 94.0284 232.582 93.9585 232.729 93.9182C232.876 93.8779 233.03 93.8681 233.181 93.8894C233.332 93.9107 233.477 93.9626 233.607 94.042C233.737 94.1213 233.85 94.2265 233.938 94.3511C234.026 94.4756 234.088 94.6169 234.12 94.7663C234.152 94.9156 234.153 95.07 234.124 95.2199C234.112 95.3746 234.068 95.5252 233.995 95.6625C233.923 95.7997 233.823 95.9207 233.703 96.0179C233.582 96.1152 233.443 96.1868 233.293 96.2282C233.144 96.2696 232.988 96.28 232.835 96.2588C232.683 96.2358 232.538 96.1819 232.408 96.1003C232.278 96.0187 232.166 95.9112 232.079 95.7845C231.992 95.6578 231.932 95.5146 231.903 95.3637C231.873 95.2128 231.875 95.0575 231.908 94.9073ZM233.526 95.1439C233.57 94.9871 233.552 94.8189 233.475 94.6753C233.398 94.5317 233.268 94.424 233.113 94.3752C232.793 94.333 232.557 94.6117 232.506 94.9749C232.447 95.355 232.616 95.6929 232.919 95.7351C233.222 95.7774 233.467 95.5071 233.526 95.1439ZM232.211 98.1678L235.885 94.4259C235.914 94.3909 235.952 94.364 235.995 94.3477C236.038 94.3315 236.084 94.3264 236.129 94.3329C236.2 94.3434 236.264 94.3809 236.308 94.4376C236.352 94.4942 236.372 94.5657 236.365 94.637C236.35 94.7007 236.318 94.7591 236.272 94.806L232.574 98.5733C232.543 98.6088 232.503 98.6354 232.459 98.6503C232.414 98.6651 232.367 98.6677 232.321 98.6578C232.286 98.6536 232.253 98.6426 232.223 98.6255C232.193 98.6083 232.166 98.5853 232.145 98.5577C232.124 98.5302 232.109 98.4988 232.1 98.4652C232.091 98.4316 232.089 98.3966 232.093 98.3621C232.11 98.2862 232.152 98.2179 232.211 98.1678ZM234.393 97.7371C234.399 97.5787 234.438 97.4233 234.507 97.281C234.577 97.1386 234.675 97.0125 234.796 96.9107C234.918 96.8089 235.059 96.7337 235.211 96.69C235.363 96.6464 235.522 96.6352 235.678 96.6572C235.835 96.6792 235.985 96.7339 236.119 96.8177C236.253 96.9016 236.368 97.0127 236.457 97.144C236.546 97.2752 236.606 97.4237 236.633 97.5797C236.661 97.7357 236.656 97.8958 236.618 98.0496C236.605 98.2018 236.561 98.3499 236.49 98.4846C236.418 98.6194 236.319 98.738 236.2 98.8333C236.081 98.9286 235.944 98.9985 235.797 99.0388C235.65 99.0791 235.496 99.0888 235.345 99.0676C235.194 99.0463 235.049 98.9944 234.919 98.915C234.789 98.8356 234.676 98.7304 234.588 98.6059C234.499 98.4813 234.437 98.3401 234.406 98.1907C234.374 98.0413 234.372 97.8869 234.402 97.7371H234.393ZM236.011 97.982C236.07 97.6019 235.902 97.264 235.598 97.2218C235.295 97.1796 235.051 97.4499 234.992 97.8131C234.933 98.2016 235.11 98.5311 235.413 98.5733C235.716 98.6155 235.961 98.3452 236.011 97.982Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M266.622 101.183C266.706 100.726 266.914 100.301 267.223 99.9542C267.531 99.6074 267.93 99.3525 268.373 99.2173C268.817 99.0821 269.289 99.0719 269.738 99.1877C270.187 99.3036 270.596 99.541 270.919 99.8741C270.986 99.9489 271.022 100.047 271.019 100.147C271.015 100.248 270.973 100.343 270.901 100.413C270.829 100.483 270.733 100.522 270.633 100.522C270.532 100.523 270.436 100.484 270.363 100.415C270.091 100.125 269.729 99.9369 269.335 99.8826C268.884 99.8184 268.426 99.9303 268.055 100.195C267.697 100.459 267.458 100.854 267.389 101.293C267.356 101.511 267.368 101.733 267.423 101.947C267.478 102.16 267.575 102.36 267.709 102.535C267.989 102.895 268.396 103.134 268.847 103.202C269.239 103.264 269.64 103.19 269.984 102.991C270.075 102.949 270.178 102.941 270.274 102.969C270.37 102.997 270.453 103.059 270.507 103.143C270.554 103.234 270.566 103.339 270.539 103.437C270.512 103.536 270.45 103.621 270.363 103.675C269.868 103.949 269.297 104.053 268.737 103.971C268.094 103.868 267.516 103.522 267.122 103.002C266.728 102.483 266.549 101.832 266.622 101.183Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M271.711 104.03L272.293 100.051C272.308 99.954 272.36 99.8664 272.439 99.8078C272.518 99.7492 272.617 99.7244 272.714 99.7389L274.889 100.06C274.986 100.078 275.072 100.132 275.129 100.212C275.186 100.292 275.21 100.391 275.196 100.489C275.182 100.586 275.131 100.674 275.053 100.735C274.975 100.795 274.877 100.822 274.779 100.812L272.959 100.541L272.782 101.775L274.341 102.003C274.439 102.021 274.526 102.076 274.585 102.156C274.644 102.235 274.671 102.335 274.661 102.433C274.645 102.532 274.591 102.621 274.511 102.68C274.431 102.74 274.331 102.767 274.231 102.754L272.672 102.526L272.487 103.76L274.307 104.03C274.405 104.047 274.493 104.101 274.551 104.182C274.609 104.262 274.634 104.362 274.619 104.461C274.605 104.559 274.552 104.647 274.474 104.707C274.395 104.767 274.296 104.794 274.198 104.782L272.023 104.461C271.974 104.455 271.926 104.439 271.883 104.413C271.84 104.388 271.803 104.354 271.774 104.313C271.744 104.273 271.724 104.227 271.713 104.178C271.702 104.129 271.702 104.079 271.711 104.03Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M286.903 104.174C287.019 103.532 287.377 102.96 287.902 102.576C288.428 102.192 289.081 102.026 289.726 102.112C290.287 102.19 290.807 102.455 291.2 102.864C291.269 102.939 291.307 103.037 291.307 103.139C291.307 103.24 291.269 103.338 291.2 103.413C291.128 103.486 291.029 103.527 290.926 103.527C290.824 103.527 290.725 103.486 290.653 103.413C290.38 103.126 290.017 102.941 289.625 102.89C289.175 102.823 288.716 102.932 288.344 103.194C287.99 103.461 287.755 103.857 287.69 104.297C287.626 104.736 287.736 105.184 287.998 105.542C288.281 105.897 288.688 106.132 289.136 106.201C289.528 106.267 289.931 106.192 290.273 105.99C290.364 105.947 290.467 105.939 290.563 105.967C290.659 105.995 290.742 106.057 290.796 106.142C290.843 106.232 290.855 106.337 290.828 106.436C290.802 106.535 290.739 106.62 290.653 106.674C290.159 106.952 289.586 107.056 289.026 106.969C288.381 106.869 287.799 106.522 287.403 106C287.007 105.479 286.828 104.824 286.903 104.174Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M233.097 113.752L230.83 117.486C230.773 117.565 230.691 117.622 230.596 117.645C230.502 117.668 230.402 117.657 230.316 117.613C230.235 117.557 230.177 117.474 230.154 117.379C230.131 117.284 230.143 117.184 230.189 117.097L232.144 113.854L230.417 113.6C230.318 113.584 230.23 113.53 230.17 113.449C230.111 113.369 230.084 113.269 230.096 113.17C230.113 113.071 230.167 112.982 230.247 112.923C230.327 112.863 230.427 112.836 230.526 112.849L232.827 113.195H232.895L233.029 113.271C233.027 113.285 233.027 113.299 233.029 113.313C233.037 113.363 233.037 113.415 233.029 113.465L233.097 113.752Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M250.993 119.049C250.957 119.329 250.847 119.596 250.677 119.821C250.506 120.047 250.28 120.224 250.02 120.335C249.76 120.447 249.476 120.488 249.195 120.456C248.915 120.424 248.647 120.319 248.419 120.151C248.191 119.984 248.011 119.76 247.896 119.502C247.78 119.243 247.734 118.959 247.762 118.677C247.789 118.395 247.89 118.126 248.053 117.895C248.216 117.663 248.436 117.479 248.692 117.359C248.576 117.145 248.534 116.898 248.574 116.658C248.626 116.371 248.787 116.115 249.024 115.944C249.26 115.774 249.554 115.703 249.842 115.745C250.13 115.788 250.391 115.942 250.568 116.174C250.745 116.406 250.825 116.697 250.791 116.988C250.758 117.229 250.645 117.452 250.471 117.621C250.667 117.799 250.817 118.021 250.908 118.27C250.999 118.519 251.029 118.786 250.993 119.049ZM250.26 118.939C250.277 118.776 250.246 118.611 250.171 118.465C250.096 118.319 249.98 118.198 249.838 118.117C249.696 118.036 249.533 117.999 249.369 118.009C249.206 118.019 249.049 118.077 248.918 118.175C248.787 118.273 248.687 118.407 248.63 118.561C248.574 118.715 248.564 118.882 248.601 119.042C248.637 119.202 248.72 119.348 248.838 119.461C248.956 119.575 249.105 119.652 249.266 119.682C249.381 119.704 249.501 119.701 249.615 119.673C249.73 119.646 249.838 119.595 249.931 119.523C250.025 119.452 250.103 119.361 250.159 119.258C250.216 119.154 250.25 119.04 250.26 118.922V118.939ZM249.308 116.751C249.299 116.801 249.3 116.853 249.311 116.903C249.322 116.952 249.343 116.999 249.373 117.041C249.402 117.082 249.44 117.117 249.484 117.144C249.527 117.17 249.576 117.188 249.626 117.195C249.676 117.203 249.728 117.2 249.777 117.187C249.826 117.174 249.872 117.151 249.913 117.12C249.953 117.089 249.987 117.05 250.012 117.005C250.036 116.961 250.052 116.912 250.058 116.861C250.066 116.812 250.065 116.763 250.053 116.715C250.042 116.667 250.021 116.622 249.992 116.583C249.963 116.543 249.926 116.51 249.884 116.485C249.841 116.461 249.795 116.445 249.746 116.438C249.697 116.429 249.646 116.429 249.597 116.44C249.547 116.451 249.501 116.471 249.46 116.5C249.419 116.53 249.384 116.567 249.358 116.61C249.332 116.653 249.315 116.701 249.308 116.751Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M266.319 119.767C266.392 119.337 266.627 118.953 266.975 118.693C267.324 118.434 267.759 118.319 268.19 118.373C268.587 118.439 268.948 118.646 269.206 118.956C269.464 119.266 269.603 119.658 269.598 120.062C269.598 120.197 269.598 120.324 269.598 120.451C269.53 120.92 269.382 121.375 269.159 121.794C268.929 122.237 268.567 122.597 268.123 122.824C267.794 122.977 267.428 123.032 267.069 122.985C267.02 122.981 266.971 122.966 266.927 122.943C266.883 122.92 266.844 122.888 266.813 122.85C266.782 122.811 266.758 122.766 266.744 122.718C266.73 122.671 266.726 122.62 266.732 122.571C266.745 122.472 266.795 122.382 266.871 122.32C266.948 122.257 267.046 122.226 267.145 122.233C267.371 122.266 267.602 122.233 267.811 122.14C268.005 122.048 268.173 121.908 268.3 121.735L268.418 121.574C268.198 121.621 267.971 121.621 267.752 121.574C267.329 121.511 266.945 121.29 266.679 120.954C266.413 120.618 266.284 120.194 266.319 119.767ZM267.069 119.876C267.041 119.997 267.038 120.122 267.061 120.244C267.083 120.365 267.131 120.481 267.2 120.583C267.27 120.686 267.36 120.772 267.464 120.838C267.569 120.904 267.686 120.947 267.808 120.966C267.93 120.984 268.055 120.976 268.174 120.944C268.293 120.911 268.404 120.854 268.5 120.777C268.596 120.699 268.675 120.602 268.732 120.492C268.789 120.382 268.823 120.262 268.831 120.138C268.855 120.022 268.854 119.901 268.829 119.785C268.803 119.668 268.753 119.558 268.682 119.463C268.612 119.367 268.521 119.287 268.418 119.229C268.314 119.171 268.199 119.135 268.08 119.125C267.961 119.099 267.837 119.099 267.718 119.126C267.598 119.153 267.486 119.206 267.389 119.28C267.292 119.355 267.212 119.45 267.156 119.559C267.099 119.668 267.066 119.788 267.061 119.91L267.069 119.876Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M284.755 123.399C284.761 123.346 284.778 123.294 284.804 123.248C284.83 123.201 284.866 123.161 284.909 123.128C284.951 123.096 285 123.073 285.051 123.06C285.103 123.047 285.157 123.044 285.21 123.052L287.3 123.357C287.352 123.365 287.403 123.383 287.448 123.411C287.494 123.439 287.533 123.476 287.565 123.519C287.596 123.562 287.619 123.611 287.631 123.663C287.643 123.715 287.645 123.768 287.637 123.821C287.631 123.873 287.614 123.923 287.588 123.969C287.562 124.014 287.527 124.054 287.486 124.086C287.444 124.117 287.396 124.14 287.345 124.152C287.295 124.165 287.242 124.167 287.19 124.159L285.092 123.855C284.987 123.838 284.893 123.781 284.83 123.696C284.767 123.611 284.74 123.504 284.755 123.399Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M230.283 135.191C230.266 135.289 230.212 135.378 230.132 135.438C230.052 135.497 229.952 135.524 229.853 135.512H229.785L229.71 136.027C229.702 136.076 229.686 136.123 229.66 136.165C229.635 136.207 229.602 136.244 229.562 136.274C229.523 136.303 229.478 136.324 229.43 136.336C229.382 136.348 229.333 136.351 229.284 136.344C229.235 136.336 229.188 136.32 229.146 136.294C229.104 136.269 229.067 136.236 229.038 136.196C229.008 136.156 228.987 136.111 228.975 136.064C228.963 136.016 228.961 135.966 228.968 135.917L229.044 135.402L226.937 135.098C226.852 135.092 226.773 135.052 226.718 134.988C226.682 134.953 226.654 134.912 226.635 134.866C226.616 134.821 226.606 134.771 226.606 134.722C226.606 134.672 226.616 134.623 226.635 134.577C226.654 134.532 226.682 134.49 226.718 134.456L229.659 131.727H229.701H229.92C229.918 131.741 229.918 131.756 229.92 131.77L229.524 134.498H229.988C230.076 134.474 230.17 134.483 230.253 134.522C230.335 134.562 230.4 134.631 230.436 134.715C230.472 134.8 230.477 134.895 230.448 134.982C230.42 135.069 230.361 135.143 230.283 135.191ZM229.398 132.986L227.813 134.447L229.153 134.65L229.398 132.986Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M247.893 136.154C248.025 136.332 248.12 136.536 248.174 136.752C248.227 136.968 248.238 137.192 248.204 137.412C248.137 137.855 247.898 138.253 247.539 138.519C247.18 138.784 246.732 138.896 246.291 138.831C245.851 138.766 245.454 138.529 245.187 138.172C245.156 138.132 245.134 138.085 245.122 138.036C245.109 137.986 245.107 137.935 245.115 137.884C245.123 137.834 245.14 137.785 245.167 137.742C245.194 137.699 245.23 137.661 245.271 137.632C245.353 137.571 245.456 137.545 245.557 137.559C245.658 137.573 245.749 137.627 245.811 137.708C245.879 137.808 245.967 137.892 246.071 137.955C246.174 138.017 246.289 138.057 246.409 138.071C246.528 138.09 246.65 138.084 246.767 138.055C246.885 138.026 246.995 137.974 247.092 137.902C247.286 137.757 247.416 137.542 247.454 137.302C247.474 137.181 247.468 137.057 247.438 136.938C247.407 136.818 247.353 136.707 247.277 136.61C247.208 136.511 247.119 136.429 247.016 136.368C246.913 136.306 246.798 136.268 246.679 136.255C246.56 136.232 246.437 136.235 246.319 136.265C246.201 136.294 246.091 136.348 245.996 136.424C245.956 136.455 245.909 136.477 245.86 136.489C245.81 136.502 245.759 136.504 245.709 136.496C245.658 136.489 245.61 136.471 245.567 136.444C245.523 136.417 245.486 136.381 245.457 136.339L245.398 136.246V136.187C245.398 136.187 245.398 136.187 245.398 136.137C245.393 136.097 245.393 136.058 245.398 136.018L245.853 134.329C245.892 134.225 245.966 134.138 246.064 134.084H246.114C246.172 134.071 246.233 134.071 246.291 134.084L248.28 134.38C248.331 134.386 248.38 134.402 248.424 134.428C248.467 134.454 248.506 134.488 248.536 134.529C248.566 134.571 248.587 134.618 248.598 134.667C248.609 134.717 248.61 134.769 248.6 134.819C248.593 134.869 248.576 134.917 248.55 134.961C248.524 135.004 248.49 135.042 248.449 135.072C248.408 135.102 248.362 135.123 248.312 135.135C248.263 135.147 248.212 135.148 248.162 135.14L246.477 134.895L246.3 135.545C246.454 135.528 246.609 135.528 246.763 135.545C247.205 135.591 247.611 135.81 247.893 136.154Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M266.657 140.174C266.54 140.541 266.301 140.857 265.98 141.069C265.659 141.281 265.275 141.377 264.892 141.34C264.509 141.304 264.151 141.137 263.875 140.868C263.6 140.6 263.425 140.244 263.378 139.862C263.378 139.862 263.378 139.608 263.421 139.482C263.484 139.008 263.633 138.551 263.859 138.13C264.092 137.691 264.453 137.334 264.895 137.108C265.225 136.956 265.589 136.898 265.949 136.939C266.048 136.95 266.139 136.999 266.202 137.077C266.265 137.154 266.296 137.254 266.286 137.353C266.271 137.452 266.22 137.542 266.142 137.605C266.064 137.668 265.965 137.698 265.865 137.691C265.64 137.666 265.414 137.701 265.207 137.792C265.012 137.887 264.842 138.026 264.71 138.198C264.71 138.248 264.634 138.299 264.6 138.358C264.82 138.312 265.047 138.312 265.266 138.358C265.689 138.419 266.071 138.643 266.331 138.983C266.59 139.322 266.707 139.75 266.657 140.174ZM265.915 140.065C265.95 139.829 265.89 139.59 265.748 139.399C265.607 139.208 265.396 139.081 265.161 139.047C264.926 139.012 264.687 139.072 264.497 139.214C264.306 139.356 264.18 139.567 264.145 139.803C264.111 140.038 264.171 140.277 264.312 140.468C264.454 140.659 264.665 140.786 264.9 140.821C265.134 140.855 265.373 140.795 265.564 140.653C265.754 140.512 265.881 140.3 265.915 140.065Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M282.16 142.058C282.114 142.051 282.07 142.036 282.031 142.012C281.992 141.989 281.957 141.958 281.93 141.921C281.903 141.884 281.883 141.842 281.871 141.797C281.86 141.753 281.858 141.706 281.865 141.661C281.871 141.615 281.887 141.572 281.91 141.532C281.934 141.493 281.965 141.458 282.001 141.431C282.038 141.403 282.08 141.384 282.125 141.372C282.169 141.361 282.215 141.359 282.261 141.365L284.975 141.762C285.021 141.768 285.066 141.784 285.106 141.808C285.146 141.832 285.181 141.864 285.209 141.902C285.236 141.94 285.256 141.983 285.266 142.028C285.277 142.074 285.278 142.122 285.269 142.168C285.255 142.259 285.205 142.341 285.131 142.396C285.057 142.451 284.965 142.476 284.873 142.463L282.16 142.058ZM284.241 140.563C284.211 140.675 284.14 140.772 284.043 140.836C283.946 140.899 283.828 140.924 283.714 140.907C283.599 140.889 283.495 140.829 283.421 140.739C283.347 140.649 283.309 140.536 283.314 140.419C283.335 140.301 283.401 140.195 283.499 140.126C283.597 140.056 283.718 140.028 283.837 140.048C283.958 140.062 284.069 140.125 284.145 140.222C284.221 140.318 284.256 140.441 284.241 140.563ZM283.828 143.367C283.819 143.428 283.798 143.485 283.766 143.537C283.734 143.589 283.692 143.634 283.643 143.67C283.593 143.705 283.537 143.73 283.478 143.744C283.419 143.757 283.357 143.758 283.297 143.747C283.177 143.731 283.068 143.667 282.994 143.571C282.92 143.474 282.887 143.353 282.901 143.232C282.91 143.172 282.931 143.114 282.963 143.062C282.995 143.01 283.037 142.965 283.087 142.93C283.136 142.894 283.192 142.869 283.252 142.856C283.311 142.842 283.372 142.841 283.432 142.852C283.552 142.869 283.661 142.932 283.735 143.029C283.809 143.125 283.843 143.246 283.828 143.367Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M226.92 150.496L226.339 154.475C226.318 154.573 226.262 154.659 226.181 154.717C226.099 154.775 225.999 154.8 225.9 154.787C225.803 154.773 225.716 154.72 225.657 154.641C225.599 154.562 225.574 154.463 225.589 154.365L226.077 151.045L225.782 151.164C225.719 151.184 225.652 151.184 225.589 151.164C225.51 151.147 225.439 151.106 225.385 151.047C225.331 150.987 225.296 150.913 225.286 150.833C225.276 150.754 225.291 150.673 225.328 150.602C225.366 150.531 225.424 150.474 225.496 150.437L226.398 150.074H226.617H226.659C226.663 150.088 226.663 150.103 226.659 150.116C226.655 150.133 226.655 150.15 226.659 150.167L226.92 150.496Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M245.407 157.288C245.401 157.337 245.385 157.384 245.36 157.426C245.335 157.468 245.302 157.505 245.263 157.534C245.223 157.564 245.179 157.585 245.131 157.596C245.083 157.607 245.034 157.609 244.985 157.6L242.6 157.254C242.548 157.249 242.497 157.231 242.451 157.204C242.406 157.176 242.368 157.138 242.339 157.094C242.284 157.01 242.264 156.909 242.283 156.811C242.301 156.713 242.358 156.626 242.44 156.57L244.69 155.058C244.793 154.991 244.881 154.903 244.946 154.8C245.012 154.696 245.054 154.58 245.07 154.458C245.091 154.343 245.089 154.225 245.063 154.111C245.036 153.997 244.987 153.89 244.917 153.797C244.847 153.703 244.759 153.625 244.658 153.567C244.556 153.509 244.444 153.473 244.328 153.461C244.113 153.425 243.893 153.473 243.713 153.596L243.477 153.757C243.436 153.785 243.389 153.805 243.34 153.814C243.291 153.824 243.241 153.824 243.192 153.813C243.144 153.803 243.097 153.783 243.056 153.755C243.016 153.726 242.981 153.689 242.954 153.647C242.9 153.563 242.881 153.461 242.902 153.363C242.922 153.265 242.98 153.179 243.064 153.123L243.3 152.971C243.477 152.851 243.676 152.767 243.886 152.724C244.096 152.681 244.312 152.681 244.523 152.722C244.733 152.764 244.932 152.847 245.11 152.967C245.288 153.086 245.44 153.24 245.559 153.419C245.679 153.597 245.763 153.798 245.806 154.009C245.849 154.22 245.849 154.437 245.808 154.649C245.766 154.86 245.683 155.061 245.564 155.24C245.444 155.419 245.291 155.572 245.112 155.691L243.671 156.654L245.103 156.865C245.151 156.873 245.197 156.889 245.239 156.915C245.28 156.94 245.316 156.973 245.344 157.012C245.372 157.052 245.392 157.096 245.403 157.144C245.414 157.191 245.415 157.24 245.407 157.288Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M263.506 157.406C263.707 157.674 263.824 157.997 263.842 158.332C263.86 158.667 263.778 159.001 263.606 159.289C263.434 159.577 263.18 159.807 262.877 159.951C262.574 160.094 262.235 160.143 261.904 160.092C261.462 160.025 261.065 159.785 260.8 159.425C260.74 159.343 260.714 159.241 260.729 159.14C260.744 159.04 260.799 158.949 260.88 158.889C260.962 158.828 261.064 158.803 261.164 158.818C261.265 158.833 261.355 158.887 261.415 158.969C261.486 159.065 261.576 159.146 261.679 159.207C261.781 159.268 261.895 159.308 262.014 159.324C262.133 159.342 262.255 159.337 262.372 159.308C262.489 159.279 262.6 159.227 262.696 159.155C262.795 159.083 262.878 158.993 262.94 158.888C263.003 158.783 263.043 158.667 263.059 158.546C263.08 158.428 263.076 158.307 263.047 158.19C263.018 158.074 262.965 157.965 262.89 157.871C262.746 157.676 262.531 157.546 262.292 157.507C262.239 157.501 262.189 157.484 262.144 157.456C262.098 157.429 262.06 157.391 262.031 157.347C261.971 157.265 261.945 157.164 261.957 157.063C261.97 156.963 262.02 156.871 262.098 156.806L262.89 156.207L261.803 156.046C261.753 156.039 261.705 156.022 261.662 155.996C261.618 155.97 261.58 155.935 261.551 155.894C261.521 155.853 261.499 155.807 261.488 155.757C261.476 155.708 261.474 155.657 261.483 155.607C261.489 155.557 261.505 155.509 261.53 155.466C261.555 155.422 261.589 155.384 261.629 155.354C261.669 155.324 261.715 155.303 261.764 155.291C261.813 155.279 261.863 155.278 261.913 155.286L263.893 155.573C263.966 155.588 264.034 155.623 264.088 155.674C264.142 155.726 264.18 155.791 264.199 155.864C264.217 155.936 264.215 156.012 264.192 156.083C264.169 156.154 264.127 156.218 264.07 156.266L263.093 157.018C263.251 157.123 263.391 157.254 263.506 157.406Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M281.983 160.227L281.023 161.216L281.655 162.44C281.698 162.522 281.707 162.616 281.682 162.704C281.657 162.792 281.599 162.867 281.52 162.914C281.452 162.956 281.371 162.971 281.292 162.956C281.237 162.946 281.184 162.924 281.137 162.892C281.091 162.86 281.052 162.818 281.023 162.77L280.483 161.748L279.64 162.593C279.603 162.632 279.556 162.662 279.505 162.681C279.454 162.7 279.4 162.707 279.345 162.702C279.267 162.692 279.195 162.653 279.143 162.593C279.11 162.561 279.083 162.523 279.065 162.481C279.047 162.439 279.038 162.393 279.038 162.348C279.038 162.302 279.047 162.256 279.065 162.214C279.083 162.172 279.11 162.134 279.143 162.103L280.112 161.106L279.472 159.881C279.43 159.8 279.422 159.706 279.448 159.619C279.475 159.532 279.535 159.46 279.615 159.416C279.698 159.374 279.794 159.365 279.884 159.392C279.973 159.418 280.049 159.479 280.095 159.56L280.635 160.565L281.435 159.763C281.506 159.696 281.599 159.658 281.697 159.658C281.794 159.658 281.888 159.696 281.958 159.763C282.017 159.824 282.053 159.905 282.057 159.99C282.062 160.076 282.036 160.16 281.983 160.227Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M223.246 172.382C223.312 172.392 223.376 172.414 223.433 172.448C223.49 172.482 223.54 172.527 223.58 172.58C223.62 172.634 223.649 172.694 223.666 172.759C223.682 172.824 223.686 172.891 223.676 172.957C223.653 173.09 223.58 173.209 223.472 173.289C223.363 173.37 223.228 173.405 223.095 173.388C222.962 173.367 222.842 173.295 222.762 173.187C222.682 173.078 222.649 172.942 222.669 172.809C222.689 172.676 222.761 172.556 222.87 172.476C222.978 172.396 223.113 172.362 223.246 172.382Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M239.533 173.345C239.611 172.777 239.851 172.243 240.224 171.808C240.387 171.607 240.597 171.45 240.836 171.352C241.074 171.253 241.333 171.215 241.59 171.242C241.84 171.291 242.075 171.401 242.272 171.563C242.469 171.725 242.623 171.934 242.719 172.171C242.945 172.7 243.021 173.282 242.938 173.851C242.855 174.421 242.615 174.956 242.247 175.398C242.094 175.615 241.885 175.785 241.642 175.889C241.398 175.994 241.131 176.029 240.869 175.99C240.607 175.952 240.361 175.841 240.158 175.671C239.955 175.501 239.803 175.278 239.719 175.026C239.496 174.496 239.432 173.912 239.533 173.345ZM242.188 173.742C242.256 173.32 242.206 172.888 242.045 172.492C241.885 172.18 241.683 172.011 241.48 171.994C241.347 171.987 241.215 172.012 241.093 172.066C240.971 172.12 240.864 172.203 240.781 172.306C240.507 172.633 240.334 173.032 240.283 173.455C240.212 173.874 240.261 174.305 240.427 174.697C240.475 174.823 240.554 174.936 240.655 175.026C240.756 175.115 240.877 175.179 241.008 175.212C241.14 175.214 241.27 175.186 241.389 175.129C241.507 175.071 241.611 174.987 241.691 174.883C241.961 174.558 242.134 174.162 242.188 173.742Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M258.415 175.626C258.434 175.521 258.493 175.428 258.58 175.366C258.667 175.304 258.774 175.28 258.879 175.297L260.935 175.601C261.039 175.615 261.133 175.671 261.196 175.755C261.26 175.839 261.287 175.944 261.273 176.048C261.265 176.1 261.248 176.149 261.222 176.194C261.195 176.238 261.16 176.277 261.118 176.307C261.077 176.338 261.03 176.36 260.979 176.372C260.929 176.384 260.877 176.386 260.826 176.378L258.761 176.074C258.657 176.059 258.562 176.004 258.497 175.92C258.433 175.837 258.403 175.731 258.415 175.626ZM258.238 176.868C258.246 176.815 258.263 176.765 258.29 176.72C258.317 176.674 258.353 176.634 258.395 176.603C258.437 176.571 258.486 176.549 258.537 176.536C258.588 176.524 258.641 176.522 258.694 176.53L260.758 176.834C260.81 176.842 260.859 176.861 260.904 176.888C260.948 176.915 260.987 176.951 261.017 176.994C261.048 177.036 261.07 177.084 261.082 177.135C261.094 177.186 261.096 177.239 261.087 177.29C261.081 177.342 261.064 177.393 261.038 177.439C261.013 177.485 260.978 177.525 260.936 177.557C260.895 177.589 260.847 177.613 260.796 177.627C260.746 177.64 260.693 177.644 260.64 177.636L258.576 177.332C258.523 177.324 258.472 177.306 258.427 177.278C258.382 177.25 258.342 177.213 258.311 177.17C258.279 177.127 258.257 177.078 258.245 177.026C258.232 176.974 258.23 176.921 258.238 176.868Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M277.677 179.343L276.725 179.199C276.676 179.193 276.629 179.177 276.587 179.152C276.545 179.127 276.508 179.094 276.479 179.055C276.45 179.015 276.429 178.97 276.417 178.923C276.406 178.875 276.405 178.825 276.413 178.777C276.428 178.679 276.48 178.59 276.559 178.53C276.637 178.47 276.736 178.444 276.834 178.456L277.787 178.599L277.922 177.662C277.93 177.611 277.948 177.563 277.975 177.519C278.002 177.476 278.037 177.438 278.078 177.408C278.12 177.378 278.167 177.357 278.217 177.346C278.266 177.334 278.318 177.332 278.368 177.341C278.418 177.348 278.467 177.365 278.51 177.391C278.553 177.417 278.591 177.452 278.621 177.493C278.651 177.534 278.672 177.58 278.684 177.63C278.695 177.679 278.697 177.73 278.689 177.78L278.554 178.718L279.506 178.853C279.605 178.869 279.693 178.924 279.753 179.004C279.812 179.084 279.839 179.184 279.826 179.284C279.808 179.381 279.753 179.467 279.673 179.525C279.593 179.583 279.494 179.609 279.397 179.596L278.444 179.453L278.309 180.39C278.295 180.492 278.24 180.584 278.158 180.646C278.076 180.707 277.973 180.734 277.871 180.72C277.82 180.713 277.771 180.697 277.727 180.671C277.683 180.646 277.644 180.611 277.613 180.57C277.582 180.529 277.56 180.482 277.548 180.433C277.536 180.383 277.534 180.331 277.542 180.28L277.677 179.343Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M255.003 97.585C254.993 97.662 254.952 97.7319 254.891 97.7793C254.829 97.8267 254.751 97.848 254.674 97.8384L253.832 97.7117C253.335 98.6408 252.071 101.09 251.759 101.766C251.718 101.848 251.658 101.918 251.582 101.969C251.52 102.01 251.446 102.028 251.372 102.02C251.322 102.012 251.274 101.994 251.232 101.967C251.189 101.939 251.154 101.902 251.127 101.859C251.127 101.859 250.352 100.845 250.125 100.499C249.788 99.9923 249.99 99.8065 250.057 99.7812C250.112 99.7652 250.171 99.7652 250.226 99.7812C250.316 99.8011 250.399 99.8482 250.462 99.9163L250.706 100.263L250.917 100.541L251.11 100.803L251.329 101.099C251.641 100.448 253.015 97.9059 253.335 97.2724C253.361 97.24 253.393 97.2115 253.427 97.188C253.459 97.1619 253.495 97.1425 253.534 97.1309C253.573 97.1193 253.614 97.1157 253.655 97.1204L254.759 97.2809C254.829 97.2931 254.893 97.3307 254.938 97.3867C254.983 97.4427 255.006 97.5132 255.003 97.585Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M302.086 71.5625L231.08 61.089L228.58 78.1205L299.587 88.594L302.086 71.5625Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M134.387 10.8439L18.0813 21.6837L31.9507 170.758L148.256 159.919L134.387 10.8439Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M148.252 159.892C148.201 159.934 31.9085 170.822 31.8663 170.873C31.8242 170.923 17.9132 21.7255 17.8711 21.7001V21.489H18.0733C18.166 21.489 134.417 10.7445 134.509 10.7107C134.602 10.6769 148.235 159.841 148.26 159.917L148.252 159.892ZM148.252 159.892L134.273 10.8205C135.116 10.9557 17.8795 21.886 18.107 21.886L18.3008 21.6579L32.0349 170.746C31.4282 170.645 148.395 159.892 148.252 159.892Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M39.6602 75.997C66.3784 73.0912 96.4079 70.2784 123.21 68.192C96.4837 71.1062 66.4542 73.9106 39.6602 75.997Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M40.1572 81.3523C66.8754 78.4466 96.905 75.6338 123.707 73.5474C96.9808 76.4616 66.9513 79.2659 40.1572 81.3523Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M40.6208 86.7077C67.339 83.7935 97.3686 80.9891 124.171 78.9027C97.4444 81.8169 67.4149 84.6128 40.6208 86.7077Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M41.1516 92.0546C67.8698 89.1489 97.8993 86.336 124.702 84.2496C97.9752 87.1638 67.9456 89.9682 41.1516 92.0546Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.7346 126.94C102.373 125.335 115.636 124.102 128.333 123.342C115.695 124.938 102.424 126.189 89.7346 126.94Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.2402 132.27C102.879 130.665 116.133 129.432 128.83 128.664C116.192 130.268 102.921 131.51 90.2402 132.27Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.7373 137.651C103.376 136.046 116.63 134.813 129.327 134.044C116.689 135.641 103.418 136.891 90.7373 137.651Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M91.2344 142.998C103.873 141.393 117.127 140.16 129.825 139.4C117.186 140.996 103.924 142.246 91.2344 142.998Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M91.7317 148.319C104.37 146.715 117.624 145.481 130.322 144.713C117.683 146.318 104.421 147.559 91.7317 148.319Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M41.6487 97.4099C57.287 95.5347 74.5093 93.9129 90.2655 92.8655C74.6272 94.7491 57.4049 96.3625 41.6487 97.4099Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M42.6428 108.112C69.3694 105.206 99.3906 102.394 126.193 100.307C99.4664 103.221 69.4453 106.026 42.6428 108.112Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M43.1484 113.468C69.8751 110.553 99.8962 107.749 126.699 105.663C99.972 108.577 69.9509 111.373 43.1484 113.468Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M43.6372 118.814C70.3638 115.909 100.385 113.096 127.187 111.01C100.461 113.924 70.4397 116.728 43.6372 118.814Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M79.5902 143.412H79.5059L78.756 143.218L78.3263 143.116H78.2758L77.5933 142.947H77.5343L77.113 142.846H77.054L76.2704 142.652H76.203L75.7312 142.533H75.6554L75.074 142.39H74.9897L74.4757 142.263H74.3915L73.6753 142.086H73.6079L73.0602 141.951H72.9928L72.4704 141.824H72.4114L71.8132 141.68H71.7542L71.2402 141.554H71.1897L70.4651 141.376H70.4145L69.6562 141.182L69.0664 141.038L68.3081 140.852L67.6761 140.692L67.0105 140.531L67.6087 140.27L68.2996 139.974L68.8894 139.712L69.6478 139.391L70.1533 139.18H70.1954L71.3076 138.707H71.3582L71.6363 138.589H71.6952L72.7822 138.124H72.8496L73.0855 138.023H73.1529L74.2735 137.55H74.3578L74.6021 137.448L74.6864 137.406L75.8576 136.908H75.9418L76.0766 136.849H76.1609L77.4501 136.291H77.5259H77.6438H77.7113L78.992 135.742C79.0111 135.777 79.0252 135.813 79.0341 135.852V135.945C79.0341 135.987 79.0341 136.021 79.0341 136.055C79.3836 136.971 79.635 137.923 79.784 138.893V139.003C79.843 139.442 79.8851 139.847 79.902 140.337C79.902 140.43 79.902 140.515 79.902 140.599C79.8902 141.545 79.7858 142.487 79.5902 143.412Z\",\n fill: \"#006661\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M79.5902 143.412L78.5285 143.395L65.7634 140.236L66.8251 140.244L79.5902 143.412Z\",\n fill: \"#006661\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M66.8251 140.244L65.7634 140.236L77.8713 135.041L78.9329 135.058L66.8251 140.244Z\",\n fill: \"#006661\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58.6604 127.405L59.8232 140.92L72.0827 135.649C71.0372 133.004 69.1635 130.77 66.7431 129.283C64.3227 127.796 61.4864 127.137 58.6604 127.405Z\",\n fill: \"#00ACCA\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M59.8233 140.912L47.5637 146.183C48.6415 148.805 50.5222 151.016 52.9345 152.498C55.3468 153.979 58.1661 154.655 60.986 154.427C62.3891 154.3 63.7631 153.949 65.0557 153.388C67.0182 152.571 68.7519 151.287 70.1059 149.645C71.4599 148.004 72.3931 146.055 72.8243 143.969L59.8233 140.912Z\",\n fill: \"#9054A1\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M47.5637 146.182L46.5105 146.275C47.5864 148.898 49.467 151.11 51.88 152.591C54.2929 154.071 57.1133 154.744 59.9328 154.511L60.986 154.427C58.1661 154.655 55.3468 153.979 52.9345 152.498C50.5222 151.016 48.6416 148.805 47.5637 146.182Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.1\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M47.5637 146.182L46.5105 146.275C47.5864 148.898 49.467 151.11 51.88 152.591C54.2929 154.071 57.1133 154.744 59.9328 154.511L60.986 154.427C58.1661 154.655 55.3468 153.979 52.9345 152.498C50.5222 151.016 48.6416 148.805 47.5637 146.182Z\",\n fill: \"#999999\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58.6606 127.405C56.9027 127.566 55.1938 128.073 53.6318 128.897C52.0697 129.722 50.6851 130.847 49.5573 132.208C48.4295 133.569 47.5806 135.14 47.0593 136.831C46.5379 138.521 46.3543 140.299 46.519 142.06C46.6336 143.48 46.975 144.872 47.5301 146.183L59.7896 140.912L58.6606 127.405Z\",\n fill: \"#FDD25F\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58.6605 127.405L57.5988 127.498C54.0562 127.834 50.7916 129.566 48.5227 132.315C46.2538 135.063 45.1664 138.602 45.4994 142.153C45.6109 143.573 45.9524 144.966 46.5105 146.276L47.5637 146.183C47.0086 144.872 46.6672 143.48 46.5526 142.061C46.2197 138.508 47.3083 134.967 49.5789 132.219C51.8496 129.471 55.1163 127.739 58.6605 127.405Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M74.5106 136.561L73.7932 128.773\",\n stroke: \"#231F20\",\n strokeWidth: 0.5,\n strokeMiterlimit: 10\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M74.5603 127.844C74.5719 127.956 74.5612 128.069 74.5288 128.176C74.4964 128.284 74.4429 128.384 74.3715 128.47C74.3 128.557 74.2121 128.628 74.1129 128.68C74.0136 128.732 73.905 128.764 73.7934 128.773C73.6827 128.784 73.571 128.772 73.4648 128.74C73.3585 128.707 73.2597 128.654 73.174 128.583C73.0883 128.512 73.0174 128.425 72.9653 128.326C72.9132 128.228 72.881 128.12 72.8705 128.009C72.86 127.898 72.8714 127.786 72.904 127.68C72.9366 127.573 72.9899 127.474 73.0607 127.388C73.1316 127.302 73.2186 127.231 73.3168 127.179C73.415 127.127 73.5226 127.095 73.6332 127.084C73.744 127.072 73.856 127.083 73.9627 127.115C74.0695 127.147 74.1688 127.2 74.255 127.27C74.3412 127.341 74.4126 127.428 74.465 127.527C74.5174 127.625 74.5498 127.733 74.5603 127.844Z\",\n stroke: \"#231F20\",\n strokeWidth: 0.5,\n strokeMiterlimit: 10\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M85.593 125.968L76.1968 126.845L76.2366 127.274L85.6329 126.396L85.593 125.968Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M81.586 127.197L76.2671 127.694L76.3069 128.123L81.6259 127.626L81.586 127.197Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37.0398 35.8995L77.6943 32.0308C91.2514 30.7891 104.808 29.4967 118.366 28.2972C104.834 29.6319 91.2766 30.9073 77.6943 32.1744L37.0398 35.8995Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37.2505 38.045L77.9134 34.1763C91.4789 32.9346 105.028 31.6422 118.593 30.4512C105.036 31.752 91.4789 33.0275 77.9218 34.2861L37.2505 38.045Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37.4443 40.1989L78.1072 36.3302C91.6643 35.0885 105.221 33.7961 118.787 32.6051C105.23 33.9313 91.6727 35.1392 78.1241 36.4738L37.4443 40.1989Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37.6379 42.336L78.3093 38.5095C91.8664 37.2678 105.423 35.9754 118.981 34.7844C105.432 36.1106 91.8748 37.3185 78.3177 38.6531L37.6379 42.336Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37.8403 44.4815L78.5369 40.6128C92.1025 39.3711 105.651 38.0787 119.217 36.8877C105.668 38.2139 92.1109 39.4218 78.5538 40.7564L37.8403 44.4815Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38.0425 46.6355L78.7054 42.733C92.2625 41.4913 105.82 40.199 119.385 39.0079C105.828 40.3341 92.2709 41.542 78.7222 42.8766L38.0425 46.6355Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38.2363 48.7809L78.9076 44.9122C92.4648 43.6706 106.022 42.3782 119.579 41.1787C106.03 42.5049 92.4732 43.7128 78.9161 45.0474L38.2363 48.7809Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38.4385 50.9264L79.1014 47.0578C92.6669 45.8161 106.216 44.5237 119.781 43.3242C106.232 44.6504 92.6753 45.8583 79.1182 47.1929L38.4385 50.9264Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38.6406 53.072L79.3035 49.2033C92.8606 47.9616 106.418 46.6692 119.983 45.4697C106.426 46.7959 92.869 48.046 79.3204 49.3384L38.6406 53.072Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38.8345 55.2176L79.5058 51.3489C93.0629 50.1072 106.62 48.8148 120.177 47.6154C106.628 48.9415 93.0713 50.1494 79.5142 51.484L38.8345 55.2176Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M39.0366 57.3631L79.6995 53.4944C93.265 52.2527 106.814 50.9603 120.379 49.7609C106.831 51.087 93.2735 52.3456 79.7164 53.6296L39.0366 57.3631Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M39.239 59.5086L79.9019 55.6399C93.459 54.3982 107.016 53.1058 120.582 51.9064C107.025 53.241 93.4674 54.4911 79.9188 55.7751L39.239 59.5086Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M39.4412 61.6541L80.1041 57.7854C93.6612 56.5437 107.218 55.2513 120.784 54.0519C107.227 55.4034 93.7033 56.6366 80.1125 57.9375L39.4412 61.6541Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M39.635 63.7996L80.2979 59.9309C93.8634 58.6892 107.421 57.3968 120.978 56.2058C107.429 57.532 93.8719 58.7399 80.3147 60.0745L39.635 63.7996Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M39.8372 65.9451L80.5 62.0764C94.0572 60.8347 107.614 59.5423 121.18 58.3513C107.631 59.6775 94.0656 60.9276 80.5169 62.22L39.8372 65.9451Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M53.1983 49.5469L47.032 50.1226L48.6601 67.6501L54.8263 67.0745L53.1983 49.5469Z\",\n fill: \"#9054A1\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M63.9585 41.0682L57.7922 41.6438L60.1086 66.581L66.2748 66.0054L63.9585 41.0682Z\",\n fill: \"#FDD25F\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M75.898 45.3433L69.7317 45.9189L71.5519 65.5155L77.7182 64.9399L75.898 45.3433Z\",\n fill: \"#00ACCA\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M86.7332 37.7605L80.5669 38.3362L82.9926 64.4509L89.1589 63.8753L86.7332 37.7605Z\",\n fill: \"#9054A1\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M98.503 40.1939L92.3367 40.7695L94.4366 63.3771L100.603 62.8014L98.503 40.1939Z\",\n fill: \"#666666\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M111.133 51.9394L104.967 52.515L105.877 62.3133L112.043 61.7377L111.133 51.9394Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M39.1125 34.1847L40.0731 42.6823L40.9746 51.1799C41.5813 56.8478 42.1374 62.5241 42.6598 68.2005L42.2385 67.9724L62.0139 66.1141L81.8061 64.298L101.598 62.5326L121.39 60.8432L101.624 62.8451L81.9072 64.7879L62.1234 66.6631L42.3059 68.5045H41.9099V68.2427C41.3959 62.5664 40.8904 56.89 40.4438 51.2052L39.7782 42.733L39.1125 34.1847Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M55.0015 68.8743L48.8352 69.45L48.8688 69.8116L55.0351 69.236L55.0015 68.8743Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M66.4392 67.8069L60.2729 68.3826L60.3065 68.7442L66.4728 68.1686L66.4392 67.8069Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M77.8845 66.7395L71.7183 67.3152L71.7519 67.6768L77.9181 67.1012L77.8845 66.7395Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.3306 65.672L83.1643 66.2477L83.1979 66.6093L89.3642 66.0337L89.3306 65.672Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M100.768 64.6047L94.6013 65.1803L94.6349 65.542L100.801 64.9663L100.768 64.6047Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M112.213 63.5289L106.047 64.1045L106.08 64.4661L112.247 63.8905L112.213 63.5289Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M176.676 95.6767L182.737 89.0881L156.894 65.1984L150.834 71.787L176.676 95.6767Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M197.214 117.784L206.373 107.825L179.596 83.0671L170.437 93.0345L197.214 117.784Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M141.73 11.4794L147.182 70.0841L147.123 70.1348C142.066 74.0725 136.024 76.5352 129.662 77.2521C123.299 77.9689 116.863 76.912 111.06 74.1978L110.386 73.8768C107.855 72.6229 105.487 71.0627 103.334 69.231C103.157 69.0959 102.997 68.9523 102.828 68.8087C100.509 66.7634 98.4695 64.4203 96.7619 61.8399C96.6692 61.7132 96.585 61.5781 96.5007 61.4429C96.0204 60.6996 95.5739 59.9394 95.1442 59.1538L95.0936 59.044C94.7229 58.3682 94.369 57.6672 94.0572 56.9661C94.0385 56.9304 94.0216 56.8937 94.0067 56.8563C93.6977 56.1636 93.4169 55.4625 93.1641 54.753L92.5069 54.8121L92.2372 51.9486C92.094 51.3911 91.9423 50.842 91.816 50.2592V50.1494C91.6559 49.4399 91.5211 48.7219 91.4115 48.0039C91.4038 47.9648 91.4038 47.9247 91.4115 47.8856C91.2936 47.1592 91.2093 46.4496 91.1419 45.7232V45.6134C91.0829 44.8954 91.0408 44.169 91.0239 43.4425V43.3158C91.0239 42.5978 91.0239 41.8714 91.0239 41.145C91.0151 41.1032 91.0151 41.06 91.0239 41.0183C91.0239 40.5199 91.0239 40.0131 91.1082 39.5147L90.6279 34.2861L92.0182 34.2016C92.015 34.1594 92.015 34.1171 92.0182 34.0749C92.2035 33.3231 92.4142 32.5713 92.6585 31.8365C92.6558 31.7971 92.6558 31.7576 92.6585 31.7182C92.9029 30.958 93.1809 30.2062 93.5011 29.4629C93.5011 29.4122 93.5011 29.37 93.5517 29.3362C93.8634 28.5591 94.2089 27.8073 94.5796 27.064C94.5796 27.0133 94.6218 26.9795 94.6386 26.9373C96.7027 22.8177 99.5589 19.1479 103.043 16.1391C106.527 13.1302 110.57 10.8417 114.94 9.40505C119.309 7.96844 123.919 7.41213 128.504 7.76812C133.088 8.12411 137.558 9.38539 141.655 11.4794H141.73Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M141.73 11.4794L141.629 11.4203L147.123 70.1349L147.182 70.0842C147.206 70.0669 147.229 70.0471 147.249 70.025C144.949 45.0306 142.843 22.0634 141.857 11.547C141.822 11.5131 141.778 11.4897 141.73 11.4794Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M129.336 66.5956C120.91 67.4994 112.198 68.3948 103.359 69.2648C103.182 69.1297 103.022 68.9861 102.854 68.8425C111.869 68.0738 120.759 67.2882 129.336 66.5956Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M129.858 72.2972C123.75 72.9477 117.464 73.5981 111.086 74.24L110.412 73.919C117.017 73.3447 123.531 72.7956 129.858 72.2972Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M124.213 24.2343C114.338 25.1972 104.449 26.1404 94.5459 27.064C94.5459 27.0133 94.588 26.9795 94.6049 26.9373C104.486 26.025 114.355 25.124 124.213 24.2343Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M124.424 26.5149C114.116 27.5173 103.809 28.4999 93.5012 29.4629C93.5012 29.4122 93.5012 29.3699 93.5518 29.3362C103.814 28.3732 114.128 27.4272 124.424 26.5149Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M124.643 28.7871C113.976 29.8345 103.317 30.8313 92.6249 31.8364C92.6221 31.7971 92.6221 31.7576 92.6249 31.7182C103.334 30.7299 113.984 29.7332 124.643 28.7871Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M124.879 31.0763C113.92 32.1406 102.966 33.1824 92.0182 34.2017C92.0151 34.1595 92.0151 34.1171 92.0182 34.075C102.972 33.0613 113.925 32.0392 124.879 31.0763Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M125.064 33.3485C113.875 34.4748 102.682 35.5419 91.4874 36.5499L90.8218 36.609V36.4908L91.5211 36.4232C102.694 35.3927 113.866 34.3452 125.064 33.3485Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M125.275 35.6376C117.911 36.3584 110.547 37.0595 103.182 37.7409L96.6356 38.3659L91.1589 38.8727C91.1171 38.8809 91.0742 38.8809 91.0325 38.8727V38.7545H91.1841L96.6356 38.2477L103.182 37.6479C110.555 36.9637 117.902 36.2795 125.275 35.6376Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M125.486 37.9098C118.121 38.625 110.757 39.3317 103.393 40.03L96.8462 40.6466L90.9903 41.1956C90.9814 41.1539 90.9814 41.1107 90.9903 41.0689L96.8209 40.5283L103.368 39.9202C110.749 39.2444 118.138 38.5602 125.486 37.9098Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M125.721 40.199C118.357 40.9254 110.996 41.6293 103.637 42.3107L97.0906 42.9358L91.4791 43.4595L90.9988 43.5017V43.375H91.4706L97.0738 42.8598L103.621 42.26C110.968 41.5336 118.335 40.8466 125.721 40.199Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M125.907 42.4712C118.543 43.2089 111.179 43.9128 103.814 44.5829L97.2675 45.1995L91.656 45.7233C91.4706 45.7233 91.2852 45.7401 91.0999 45.7739V45.6641L91.6644 45.6134L97.2675 45.0897C99.4526 44.8814 101.638 44.6787 103.823 44.4816C111.17 43.8058 118.543 43.1216 125.907 42.4712Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M126.126 44.7518C118.756 45.467 111.392 46.1709 104.033 46.8636L97.4866 47.4886L91.3947 48.0546C91.387 48.0155 91.387 47.9754 91.3947 47.9363L97.495 47.3619L104.042 46.7622C111.384 46.0808 118.745 45.4107 126.126 44.7518Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M126.337 47.024C118.972 47.7505 111.6 48.4431 104.244 49.1442L97.6972 49.7608L92.0941 50.2846C92.0044 50.2929 91.9141 50.2929 91.8245 50.2846V50.1747C91.917 50.1668 92.01 50.1668 92.1025 50.1747L97.7141 49.651C99.8879 49.4427 102.07 49.24 104.261 49.0429C111.597 48.3615 118.956 47.6885 126.337 47.024Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M126.564 49.3132L116.622 50.2677L110.075 50.8844C108.21 51.0702 106.342 51.2476 104.472 51.4165L97.9164 52.0247L92.4228 52.5315C92.3867 52.5395 92.3493 52.5395 92.3132 52.5315V52.4133H92.3891L97.9164 51.898L104.463 51.2983L110.066 50.7745L116.613 50.1748L126.564 49.3132Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M126.758 51.5854L116.815 52.5484L110.268 53.1735L104.657 53.7141L98.11 54.3307L92.5068 54.8544V54.7361L98.11 54.2124L104.657 53.6043L110.26 53.089L116.815 52.4893L126.758 51.5854Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M126.968 53.8661L117.034 54.829L110.488 55.4457C108.617 55.6315 106.746 55.8089 104.876 55.9778L98.3291 56.6029L94.1162 56.9999C94.0975 56.9642 94.0806 56.9275 94.0657 56.8901L98.3544 56.4846L104.901 55.8849L110.513 55.3612L117.06 54.7615C120.351 54.4574 123.654 54.1589 126.968 53.8661Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M127.179 56.1467L117.245 57.0928L110.698 57.7094L105.095 58.2416L98.5483 58.8582L95.178 59.1707L95.1274 59.0609L98.4978 58.7484C100.683 58.54 102.865 58.3373 105.045 58.1402L110.656 57.6249C112.83 57.4222 115.021 57.2279 117.203 57.0168L127.179 56.1467Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M103.105 36.8601L96.5527 37.4718L98.7831 61.4839L105.335 60.8722L103.105 36.8601Z\",\n fill: \"#006661\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M116.516 49.3361L109.964 49.9478L110.93 60.3516L117.483 59.7399L116.516 49.3361Z\",\n fill: \"#00ACCA\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M127.407 58.7822L106.409 60.9024L96.7619 61.8485C96.6692 61.7218 96.585 61.5866 96.5007 61.4515L98.7588 61.3163L105.306 60.725L106.393 60.6321L110.917 60.252L117.473 59.6945L127.407 58.7822Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M105.51 62.7863L98.9578 63.3979L98.9937 63.7848L105.546 63.1732L105.51 62.7863Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M117.663 61.6533L111.111 62.265L111.147 62.6519L117.699 62.0402L117.663 61.6533Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M121.677 83.1853C113.665 82.3634 106.076 79.1783 99.8702 74.0328C93.664 68.8874 89.1191 62.0125 86.8101 54.2776C84.5011 46.5428 84.5318 38.2952 86.8982 30.5778C89.2647 22.8604 93.8606 16.0197 100.105 10.9208C106.349 5.82184 113.962 2.69361 121.979 1.93163C129.997 1.16965 138.06 2.80815 145.149 6.63994C152.238 10.4717 158.034 16.3247 161.805 23.4589C165.576 30.593 167.152 38.6879 166.334 46.7199C165.224 57.4873 159.899 67.3735 151.527 74.2098C143.155 81.046 132.42 84.2739 121.677 83.1853ZM122.149 78.531C129.243 79.2575 136.392 77.8588 142.693 74.5118C148.994 71.1649 154.163 66.0201 157.547 59.7279C160.931 53.4357 162.379 46.2788 161.706 39.1622C161.032 32.0455 158.27 25.2888 153.766 19.7463C149.263 14.2038 143.221 10.1246 136.405 8.02443C129.589 5.92425 122.305 5.89744 115.474 7.9474C108.642 9.99735 102.571 14.032 98.0269 19.5412C93.483 25.0503 90.6706 31.7866 89.9455 38.8981C88.9867 48.4322 91.8384 57.9584 97.8752 65.388C103.912 72.8175 112.641 77.544 122.149 78.531Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M161.025 30.3245C158.021 21.6189 151.917 14.3316 143.883 9.86052C135.849 5.38942 126.451 4.04924 117.492 6.09704C108.533 8.14484 100.644 13.4364 95.3373 20.9569C90.0307 28.4773 87.6804 37.6971 88.7373 46.8478C89.7942 55.9986 94.1839 64.436 101.064 70.5418C107.945 76.6475 116.832 79.9918 126.02 79.933C135.209 79.8742 144.053 76.4166 150.855 70.2233C157.657 64.03 161.939 55.5372 162.879 46.3736C163.45 40.9523 162.817 35.4716 161.025 30.3245ZM160.469 46.1118C159.657 54.1606 156.085 61.6778 150.363 67.3822C144.64 73.0865 137.122 76.6249 129.089 77.3942C121.056 78.1636 113.005 76.1163 106.309 71.6013C99.6129 67.0863 94.6859 60.383 92.3678 52.6341C90.0497 44.8851 90.4839 36.57 93.5964 29.106C96.709 21.642 102.307 15.4911 109.437 11.7017C116.567 7.9123 124.787 6.71891 132.696 8.32494C140.605 9.93098 147.714 14.237 152.81 20.5092C158.645 27.6895 161.4 36.8975 160.469 46.1118ZM161.025 30.316C158.021 21.6104 151.917 14.3232 143.883 9.85208C135.849 5.38098 126.451 4.0408 117.492 6.0886C108.533 8.13639 100.644 13.428 95.3373 20.9484C90.0307 28.4689 87.6804 37.6887 88.7373 46.8394C89.7942 55.9901 94.1839 64.4276 101.064 70.5333C107.945 76.6391 116.832 79.9833 126.02 79.9245C135.209 79.8658 144.053 76.4081 150.855 70.2149C157.657 64.0216 161.939 55.5287 162.879 46.3652C163.449 40.9467 162.816 35.469 161.025 30.3245V30.316ZM160.469 46.1118C159.657 54.1606 156.085 61.6778 150.363 67.3822C144.64 73.0865 137.122 76.6249 129.089 77.3942C121.056 78.1636 113.005 76.1163 106.309 71.6013C99.6129 67.0863 94.6859 60.383 92.3678 52.6341C90.0497 44.8851 90.4839 36.57 93.5964 29.106C96.709 21.642 102.307 15.4911 109.437 11.7017C116.567 7.9123 124.787 6.71891 132.696 8.32494C140.605 9.93098 147.714 14.237 152.81 20.5092C158.645 27.6895 161.4 36.8975 160.469 46.1118ZM165.441 28.7871C162.06 19.003 155.196 10.8144 146.164 5.79187C137.132 0.769345 126.568 -0.733475 116.499 1.57165C106.43 3.87677 97.5636 9.82755 91.6015 18.2826C85.6395 26.7377 83.001 37.1018 84.1922 47.3871C85.3834 57.6723 90.3203 67.1547 98.0562 74.0154C105.792 80.8761 115.782 84.6321 126.11 84.563C136.439 84.4939 146.378 80.6047 154.022 73.6411C161.666 66.6776 166.476 57.1301 167.53 46.8298C168.153 40.7376 167.44 34.5825 165.441 28.7956V28.7871ZM165.12 46.5933C164.133 56.3066 159.604 65.3127 152.401 71.884C145.198 78.4554 135.828 82.1293 126.089 82.201C116.35 82.2728 106.928 78.7373 99.6288 72.2728C92.33 65.8083 87.669 56.8699 86.5397 47.1722C85.4104 37.4744 87.8924 27.7 93.5095 19.724C99.1266 11.7479 107.483 6.13165 116.977 3.95254C126.471 1.77343 136.432 3.18488 144.952 7.91614C153.471 12.6474 159.948 20.3654 163.14 29.5896C165.037 35.046 165.713 40.8541 165.12 46.6017V46.5933ZM154.698 18.9887C151.214 14.7197 146.83 11.2774 141.861 8.90912C136.892 6.54083 131.462 5.30538 125.96 5.29156C120.458 5.27773 115.022 6.48587 110.041 8.82916C105.06 11.1725 100.659 14.5927 97.1543 18.8441C93.6491 23.0955 91.1269 28.0726 89.7688 33.4175C88.4108 38.7625 88.2507 44.3427 89.2999 49.7571C90.3492 55.1715 92.5818 60.2857 95.8373 64.7321C99.0928 69.1785 103.29 72.8468 108.128 75.4733C113.525 78.3844 119.555 79.9172 125.684 79.9361C131.812 79.9549 137.851 78.4593 143.266 75.5814C148.681 72.7035 153.305 68.5322 156.728 63.4363C160.152 58.3404 162.271 52.4772 162.896 46.3652C163.467 40.9439 162.834 35.4632 161.042 30.316C159.602 26.1984 157.455 22.3649 154.698 18.9887ZM160.469 46.1118C159.657 54.1606 156.085 61.6778 150.363 67.3822C144.64 73.0865 137.122 76.6249 129.089 77.3942C121.056 78.1636 113.005 76.1163 106.309 71.6013C99.6129 67.0863 94.6859 60.383 92.3678 52.6341C90.0497 44.8851 90.4839 36.57 93.5964 29.106C96.709 21.642 102.307 15.4911 109.437 11.7017C116.567 7.9123 124.787 6.71891 132.696 8.32494C140.605 9.93098 147.714 14.237 152.81 20.5092C158.645 27.6895 161.4 36.8975 160.469 46.1118Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M102.542 59.6268C100.279 56.6507 98.6632 53.2323 97.7983 49.5919C97.3305 47.7468 97.0483 45.8593 96.9557 43.9578C96.8774 42.0345 96.9846 40.1081 97.2759 38.2054C97.9192 34.3717 99.3542 30.715 101.489 27.4694C103.582 24.2777 106.244 21.5002 109.342 19.2759C106.955 22.0911 104.854 25.1387 103.073 28.3732C102.233 29.967 101.52 31.625 100.941 33.3316C100.347 35.0128 99.9126 36.7464 99.6435 38.5095C99.0957 42.0388 99.0957 45.6318 99.6435 49.1611C100.185 52.7541 101.158 56.2682 102.542 59.6268Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M182.107 183.543C183.109 201.729 183.834 220.448 182.048 238.583C180.657 252.715 174.734 264.346 160.082 267.818C146.491 271.028 127.137 270.783 115.644 261.753C110.285 257.53 108.423 251.617 108.785 244.944C109.274 235.652 116.596 184.971 118.778 169.183C120.093 159.554 121.382 149.798 124.398 140.464C130.718 120.943 140.407 120.58 141.772 120.191C142.927 119.448 150.198 116.669 160.756 120.031C163.505 120.905 166.039 122.351 168.194 124.274C170.348 126.197 172.074 128.553 173.259 131.189C180.826 146.884 181.154 166.523 182.107 183.543Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M138.68 123.443C127.095 128.875 124.356 141.554 121.525 152.923C117.624 168.753 113.942 184.65 111.119 200.699C109.738 208.419 108.533 216.165 107.555 223.945C106.628 231.395 105.179 239.335 105.676 246.861C106.519 259.304 117.852 264.955 128.856 266.729C128.967 266.75 129.083 266.726 129.177 266.662C129.271 266.597 129.336 266.498 129.357 266.386C129.378 266.274 129.354 266.159 129.29 266.064C129.226 265.97 129.127 265.905 129.016 265.884C122.747 264.634 116.377 262.894 111.692 258.231C105.718 252.259 106.409 244.462 107.117 236.7C108.322 223.48 110.268 210.345 112.695 197.303C115.122 184.261 118.003 171.27 121.121 158.354C124.061 146.056 126.176 129.871 138.815 123.621C138.874 123.578 138.807 123.384 138.68 123.443Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M178.593 144.493C176.394 134.99 171.465 125.724 161.48 122.962C174.38 127.084 177.489 141.224 179.242 153.033C181.056 165.455 182.401 177.934 183.278 190.47C184.12 202.515 184.752 214.662 184.525 226.741C184.272 239.783 181.913 251.997 174.228 262.741C174.203 262.786 174.195 262.838 174.203 262.888C174.212 262.939 174.239 262.984 174.278 263.017C174.317 263.05 174.366 263.069 174.417 263.069C174.468 263.07 174.517 263.052 174.557 263.02C182.14 254.328 184.668 242.351 185.233 231.142C186.033 216.376 185.081 201.358 183.927 186.635C182.831 172.68 181.761 158.185 178.593 144.493Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M30.6952 360.151C31.4619 357.077 79.43 283.132 82.9351 281.527C83.3395 281.316 108.212 296.512 108.212 296.512C109.283 297.746 153.602 284.991 153.602 284.991L157.925 339.38L75.8321 343.503C75.8321 343.503 65.2241 350.826 55.4754 356.866C49.4763 360.608 44.1512 363.775 42.6092 364.299C38.5649 365.659 29.8947 363.201 30.6952 360.151Z\",\n fill: \"#FFF4E5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M42.5924 364.307C44.1428 363.784 49.4594 360.616 55.4502 356.874C55.4502 356.874 55.4502 356.874 55.4923 356.874C65.2325 350.834 75.8406 343.511 75.8406 343.511L94.1162 342.599L119.394 294.35C113.201 295.913 108.575 296.884 108.229 296.512C108.229 296.512 83.3648 281.308 82.952 281.536C79.43 283.141 31.4704 357.085 30.712 360.151C29.9537 363.218 38.5649 365.659 42.5924 364.307Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M30.2149 360.278C31.0575 357.127 79.2362 283.208 82.8509 281.553C84.2243 280.919 96.3322 287.263 108.229 296.512L77.0539 344.128C77.0539 344.128 46.561 363.235 42.3986 364.62C38.2363 366.005 29.3892 363.42 30.2149 360.278Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M33.8801 361.182C42.3059 348.993 74.9306 299.021 82.2948 286.325C82.3538 286.224 82.2948 286.182 82.2189 286.275C73.6415 298.185 41.3791 348.419 33.6779 361.047C33.4926 361.283 33.6779 361.41 33.8801 361.182Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M48.204 361.604C49.1363 360.249 49.7786 358.714 50.0904 357.098C50.4021 355.481 50.3767 353.818 50.0155 352.211C49.3415 349.576 47.8417 346.712 45.2213 345.116C45.1454 345.074 45.0527 345.209 45.1286 345.268C49.5016 349.145 50.875 356.342 48.0439 361.503C48.0305 361.524 48.0261 361.55 48.0316 361.575C48.0371 361.599 48.0522 361.62 48.0734 361.634C48.0946 361.647 48.1203 361.652 48.1448 361.646C48.1693 361.641 48.1906 361.626 48.204 361.604Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M73.3211 347.202C76.624 342.295 78.621 335.377 76.5903 329.666C76.5061 329.438 76.1943 329.557 76.1775 329.751C75.6074 335.574 74.4212 341.319 72.6386 346.89C72.6182 346.935 72.6067 346.983 72.605 347.033C72.6032 347.082 72.6112 347.131 72.6284 347.177C72.6456 347.224 72.6717 347.266 72.7053 347.302C72.7389 347.338 72.7792 347.368 72.824 347.388C72.8688 347.409 72.9172 347.42 72.9665 347.422C73.0157 347.424 73.0648 347.416 73.111 347.398C73.1571 347.381 73.1994 347.355 73.2355 347.321C73.2716 347.288 73.3007 347.247 73.3211 347.202Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M69.3357 350.057C72.6386 345.141 74.6355 338.232 72.6049 332.513C72.5207 332.294 72.2089 332.412 72.192 332.606C71.6275 338.428 70.4469 344.173 68.6701 349.745C68.643 349.831 68.648 349.924 68.6841 350.006C68.7202 350.089 68.7849 350.155 68.8663 350.193C68.9477 350.232 69.0402 350.239 69.1265 350.214C69.2129 350.189 69.2872 350.133 69.3357 350.057Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M65.3504 352.912C68.6533 347.996 70.6502 341.087 68.6196 335.368C68.5353 335.149 68.2236 335.267 68.2067 335.461C67.6413 341.283 66.4606 347.028 64.6847 352.6C64.6576 352.686 64.6626 352.779 64.6987 352.861C64.7348 352.944 64.7996 353.01 64.881 353.048C64.9624 353.087 65.0548 353.094 65.1412 353.069C65.2275 353.044 65.3019 352.988 65.3504 352.912Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M61.365 355.767C64.6679 350.851 66.6648 343.942 64.6342 338.223C64.5499 338.004 64.2382 338.113 64.2213 338.316C63.6551 344.138 62.4745 349.883 60.6994 355.455C60.6723 355.541 60.6772 355.634 60.7134 355.716C60.7495 355.799 60.8142 355.865 60.8956 355.903C60.977 355.942 61.0695 355.949 61.1558 355.924C61.2422 355.899 61.3165 355.843 61.365 355.767Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M91.9507 297.146C95.5653 291.571 86.8952 285.928 83.3058 291.52C79.7164 297.112 88.3276 302.729 91.9507 297.146Z\",\n fill: \"#333333\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M83.0278 361.182C86.7352 360.033 86.7689 355.539 85.623 352.583C83.5643 347.535 80.2131 343.12 75.908 339.786C75.8897 339.771 75.8682 339.76 75.8452 339.755C75.8221 339.75 75.7982 339.75 75.7753 339.756C75.7524 339.762 75.7311 339.773 75.7132 339.788C75.6953 339.804 75.6812 339.823 75.6721 339.845C75.5657 339.804 75.4511 339.788 75.3375 339.799C75.2239 339.811 75.1146 339.849 75.0185 339.911C74.9225 339.972 74.8423 340.056 74.7845 340.155C74.7268 340.253 74.6931 340.364 74.6863 340.479C74.8211 345.606 74.3324 351.105 76.0344 356.038C77.0202 358.952 79.5143 362.305 83.0278 361.182ZM76.481 348.207C76.3546 345.673 76.3462 343.139 76.1271 340.664C78.0897 343.104 79.9289 345.642 81.6376 348.267C82.4454 349.551 83.166 350.889 83.7946 352.27C84.7214 354.416 85.682 361.993 79.9777 358.96C76.8517 357.313 76.6326 351.248 76.481 348.241V348.207Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M82.1093 326.296C78.6379 330.173 76.9611 335.436 74.8463 340.107C74.8074 340.214 74.7946 340.329 74.8089 340.442C74.8232 340.555 74.8641 340.663 74.9283 340.757C74.9926 340.852 75.0782 340.929 75.1783 340.983C75.2783 341.038 75.3897 341.067 75.5035 341.07C75.5035 341.171 75.5877 341.256 75.7057 341.222C80.9617 339.819 85.7584 337.058 89.6167 333.214C91.8158 330.934 93.5262 326.778 90.5519 324.269C87.7377 321.904 84.1399 324.016 82.1093 326.296ZM86.8783 325.147C93.3156 324.565 89.4903 331.179 87.8051 332.792C86.6906 333.819 85.5084 334.77 84.2663 335.638C81.7386 337.48 78.9496 338.924 76.2449 340.495C77.4246 338.265 78.402 335.951 79.4889 333.679C80.7949 330.967 83.331 325.46 86.8783 325.147Z\",\n fill: \"#333333\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M139.843 273.511C139.843 273.511 208.682 241.362 239.478 241.531C276.122 241.734 304.879 285.16 260.155 316.886C220.621 344.93 95.439 343.705 95.439 343.705L124.356 290.853C124.356 290.853 158.843 277.194 204.115 275.479L141.014 288.75L139.843 273.511Z\",\n fill: \"#333333\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M141.183 284.002C146.592 282.583 152.136 281.62 157.588 280.624C163.039 279.627 168.676 278.664 174.237 277.794C185.336 276.024 196.517 274.817 207.738 274.179C208.791 274.12 209.844 274.086 210.898 274.052C211.117 273.965 211.343 273.892 211.572 273.832C212.102 273.663 212.625 273.486 213.164 273.342C214.158 273.081 215.169 272.861 216.172 272.624C218.27 272.151 220.385 271.78 222.458 271.231C222.584 271.231 222.652 271.383 222.525 271.425C220.436 272.05 218.397 272.81 216.307 273.427L214.495 273.951C218.624 273.866 222.744 273.891 226.873 273.951C226.999 273.951 227.016 274.153 226.873 274.153C221.27 274.221 215.641 274.584 210.063 275.083C204.486 275.581 198.992 276.088 193.473 276.772C182.309 278.216 171.187 280.024 160.107 282.001C153.889 283.107 147.662 284.332 141.393 285.05C140.803 285.16 140.576 284.155 141.183 284.002Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.153 341.23C109.923 337.851 111.389 334.321 112.99 330.874C114.591 327.428 116.192 323.956 117.809 320.502C121.02 313.617 132.647 290.38 133.818 288.724C133.894 288.623 134.071 288.724 134.037 288.842C133.54 290.608 126.336 305.956 124.676 309.385C121.306 316.236 117.809 322.976 114.338 329.751C113.352 331.694 112.316 333.603 111.305 335.529C110.294 337.454 109.215 339.355 108.305 341.323C108.304 341.341 108.299 341.358 108.289 341.373C108.28 341.387 108.267 341.399 108.251 341.408C108.236 341.416 108.218 341.42 108.201 341.419C108.183 341.419 108.166 341.414 108.151 341.404C108.136 341.395 108.124 341.382 108.116 341.367C108.107 341.352 108.103 341.334 108.103 341.317C108.103 341.299 108.108 341.282 108.117 341.267C108.126 341.252 108.138 341.239 108.153 341.23Z\",\n fill: \"#333333\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M271.285 358.437C270.367 355.413 218.944 283.842 215.346 282.414C214.934 282.22 190.811 298.59 190.811 298.59C189.799 299.874 144.924 289.256 144.924 289.256L143.188 343.79L225.39 343.984C225.39 343.984 236.344 350.784 246.362 356.35C252.53 359.797 257.989 362.711 259.557 363.159C263.677 364.316 272.229 361.452 271.285 358.437Z\",\n fill: \"#FFF4E5\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M259.599 363.159C258.023 362.719 252.563 359.78 246.395 356.35C236.377 350.784 225.424 343.967 225.424 343.967H207.131L179.562 296.985C185.822 298.252 190.516 299.03 190.81 298.616C190.81 298.616 214.933 282.254 215.346 282.448C218.936 283.884 270.358 355.447 271.285 358.471C272.212 361.495 263.677 364.324 259.599 363.159Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M271.766 358.547C270.797 355.438 219.13 283.91 215.439 282.423C214.049 281.857 202.27 288.767 190.811 298.582L224.177 344.66C224.177 344.66 255.546 362.28 259.759 363.471C263.972 364.662 272.743 361.647 271.766 358.547Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M268.176 359.585C259.22 347.81 224.21 299.46 216.256 287.136C216.189 287.035 216.256 286.984 216.324 287.077C225.457 298.556 260.071 347.194 268.37 359.45C268.547 359.704 268.362 359.839 268.176 359.585Z\",\n fill: \"#333333\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M253.869 360.726C252.873 359.418 252.158 357.916 251.769 356.317C251.38 354.718 251.327 353.055 251.611 351.434C252.159 348.765 253.524 345.834 256.06 344.119C256.136 344.069 256.237 344.204 256.169 344.263C251.957 348.351 250.954 355.599 254.021 360.624C254.03 360.634 254.038 360.646 254.042 360.659C254.046 360.672 254.048 360.685 254.047 360.699C254.045 360.713 254.041 360.726 254.034 360.737C254.027 360.749 254.017 360.759 254.006 360.767C253.994 360.774 253.982 360.779 253.968 360.781C253.955 360.783 253.941 360.782 253.928 360.778C253.915 360.774 253.903 360.768 253.893 360.759C253.883 360.75 253.875 360.738 253.869 360.726Z\",\n fill: \"#333333\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M228.086 347.549C224.556 342.801 222.23 336.01 223.991 330.182C224.059 329.954 224.379 330.055 224.404 330.249C225.241 336.04 226.695 341.723 228.743 347.202C228.767 347.286 228.762 347.376 228.728 347.456C228.693 347.537 228.632 347.603 228.555 347.643C228.478 347.684 228.389 347.697 228.304 347.68C228.219 347.662 228.142 347.616 228.086 347.549Z\",\n fill: \"#333333\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M232.206 350.201C228.676 345.445 226.308 338.654 228.103 332.834C228.179 332.606 228.491 332.707 228.524 332.902C229.358 338.692 230.81 344.375 232.855 349.855C232.887 349.939 232.886 350.032 232.855 350.116C232.823 350.201 232.762 350.27 232.682 350.313C232.603 350.355 232.511 350.367 232.423 350.346C232.336 350.326 232.259 350.274 232.206 350.201Z\",\n fill: \"#333333\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M236.327 352.87C232.788 348.115 230.429 341.323 232.223 335.503C232.291 335.275 232.611 335.377 232.636 335.571C233.467 341.359 234.91 347.042 236.942 352.524C236.957 352.601 236.948 352.681 236.915 352.752C236.883 352.824 236.828 352.883 236.76 352.921C236.692 352.96 236.613 352.976 236.535 352.966C236.457 352.957 236.384 352.923 236.327 352.87Z\",\n fill: \"#333333\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M240.438 355.531C236.908 350.775 234.583 343.984 236.344 338.164C236.411 337.936 236.731 338.037 236.756 338.232C237.592 344.021 239.044 349.705 241.087 355.185C241.119 355.269 241.119 355.362 241.087 355.446C241.055 355.531 240.994 355.6 240.914 355.643C240.835 355.685 240.743 355.697 240.655 355.676C240.568 355.656 240.491 355.604 240.438 355.531Z\",\n fill: \"#333333\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M207.098 298.438C203.222 293.041 211.58 286.993 215.465 292.399C219.349 297.805 210.982 303.844 207.098 298.438Z\",\n fill: \"#333333\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M216.72 354.298C220.933 351.206 223.629 346.4 226.645 342.252C226.704 342.156 226.74 342.046 226.748 341.933C226.757 341.82 226.739 341.706 226.695 341.602C226.651 341.497 226.584 341.404 226.498 341.331C226.411 341.258 226.309 341.206 226.199 341.18C226.204 341.155 226.204 341.13 226.198 341.106C226.191 341.081 226.18 341.059 226.163 341.04C226.147 341.021 226.126 341.006 226.103 340.997C226.08 340.987 226.055 340.983 226.03 340.985C220.613 341.287 215.369 343.009 210.822 345.977C208.201 347.76 205.682 351.476 208.083 354.543C210.35 357.44 214.302 356.114 216.72 354.298ZM211.824 354.441C205.404 353.689 210.493 348.005 212.482 346.763C213.78 345.988 215.128 345.299 216.518 344.702C219.391 343.418 222.416 342.573 225.356 341.585C223.755 343.536 222.323 345.597 220.789 347.599C218.995 349.981 215.38 354.864 211.85 354.424L211.824 354.441Z\",\n fill: \"#333333\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M209.785 325.468C206.929 328.112 208.833 332.175 211.15 334.354C215.186 338.009 220.108 340.537 225.424 341.686C225.447 341.692 225.471 341.692 225.494 341.686C225.518 341.68 225.539 341.669 225.557 341.653C225.575 341.638 225.589 341.618 225.598 341.596C225.607 341.574 225.611 341.55 225.609 341.526C225.723 341.517 225.832 341.481 225.93 341.422C226.027 341.363 226.109 341.281 226.169 341.184C226.229 341.087 226.265 340.977 226.274 340.863C226.284 340.749 226.267 340.635 226.224 340.529C223.899 335.968 222.011 330.79 218.312 327.082C216.172 324.911 212.507 322.96 209.785 325.468ZM221.278 334.329C222.483 336.551 223.562 338.814 224.851 340.985C222.027 339.638 219.274 338.147 216.602 336.517C215.321 335.712 214.097 334.82 212.937 333.848C211.176 332.31 207.039 325.891 213.493 326.161C217.048 326.305 219.846 331.685 221.278 334.329Z\",\n fill: \"#333333\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M142.834 272.489C142.834 272.489 73.2117 251.448 36.0708 255.891C-0.320231 260.241 -15.2507 305.99 20.2303 330.773C58.9889 357.845 204.848 348.368 204.848 348.368L173.672 292.466C173.672 292.466 124.036 280.75 78.7222 281.198L142.387 291.444L142.834 272.489Z\",\n fill: \"#333333\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M175.779 296.073C175.745 295.981 175.722 295.884 175.712 295.786L175.661 295.558C175.661 295.372 175.577 295.195 175.535 295.017C175.437 294.648 175.319 294.284 175.181 293.928C175.054 293.573 174.903 293.218 174.751 292.872C174.58 292.529 174.386 292.199 174.17 291.883C174.17 291.883 174.111 291.883 174.085 291.816L174.026 291.774H173.942H173.866C168.398 290.616 131.223 284.383 125.688 283.622C120.152 282.862 114.515 282.195 108.92 281.587C97.7491 280.351 86.5229 279.68 75.2845 279.576C74.2312 279.576 73.1864 279.576 72.1332 279.576C71.9065 279.502 71.6759 279.439 71.4423 279.39C70.9115 279.247 70.3722 279.095 69.833 278.977C68.8219 278.757 67.8108 278.588 66.7913 278.411C64.6764 278.031 62.5784 277.752 60.4466 277.312C60.3203 277.312 60.2613 277.473 60.3877 277.507C62.5025 278.03 64.6006 278.698 66.6986 279.196C67.3052 279.34 67.9119 279.492 68.527 279.627C64.4068 279.745 60.2865 279.965 56.1663 280.244C56.0399 280.244 56.0315 280.455 56.1663 280.446C61.7611 280.252 67.3979 280.345 73.0179 280.573C78.6379 280.801 84.1316 281.055 89.6757 281.502C100.89 282.414 112.097 283.69 123.253 285.126C129.513 285.971 167.412 292.399 173.715 292.813H173.748C173.797 292.959 173.853 293.103 173.917 293.243C174.077 293.598 174.245 293.936 174.422 294.282C174.599 294.629 174.768 294.933 174.962 295.245L175.265 295.71L175.417 295.938C175.478 296.012 175.529 296.095 175.568 296.183C175.627 296.293 175.846 296.2 175.779 296.073Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M193.229 344.744C191.291 341.467 189.656 337.987 187.895 334.608C186.134 331.229 184.365 327.85 182.595 324.472C179.057 317.714 166.334 295.093 165.061 293.497C164.977 293.395 164.809 293.497 164.842 293.624C165.432 295.372 173.352 310.357 175.181 313.693C178.829 320.383 182.68 326.938 186.471 333.552C187.55 335.436 188.679 337.294 189.774 339.178C190.87 341.061 192.041 342.894 193.052 344.82C193.128 344.964 193.296 344.854 193.229 344.744Z\",\n fill: \"#333333\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M133.894 195.166C143.752 220.912 160.857 251.009 166.991 255.418C174.726 261.001 215.987 264.617 218.27 264.541C223.915 264.313 227.151 226.301 221.101 226.285C211.892 226.285 186.555 227.374 184.323 225.626C182.09 223.877 165.668 208.293 148.631 190.503C136.869 178.23 127.786 179.201 133.894 195.166Z\",\n fill: \"#FDECEA\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M216.105 264.608C216.779 264.845 226.359 268.08 232.114 268.899C236.411 269.516 248.822 270.943 249.959 266.272C250.743 263.088 243.547 261.382 238.484 260.064C235.813 259.371 232.333 257.167 232.847 255.435C233.748 252.411 240.632 254.345 245.249 256.22C254.181 259.853 266.39 266.948 270.83 262.032C272.515 260.174 269.895 257.606 266.255 255.232C271.976 257.766 277.958 259.701 279.896 257.707C281.017 256.575 280.891 255.258 279.981 253.855C281.666 254.159 283.098 253.855 283.941 252.647C285.398 250.62 284.193 248.095 281.944 245.645C282.259 245.567 282.552 245.414 282.797 245.199C283.041 244.985 283.231 244.715 283.351 244.412C286.182 238.372 265.859 225.085 259.388 224.485C240.371 222.712 221.093 226.285 221.093 226.285C214.689 233.101 216.088 264.6 216.105 264.608Z\",\n fill: \"#FFE1CC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M240.767 243.77C245.244 243.832 249.656 244.851 253.709 246.76C258.815 249.184 262.421 252.36 266.845 255.443C266.963 255.519 266.845 255.705 266.727 255.629C264.612 254.159 255.967 248.753 253.76 247.562C249.764 245.348 245.318 244.077 240.759 243.846C240.708 243.863 240.716 243.77 240.767 243.77Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M243.092 235.466C248.148 236.108 253.262 236.742 258.073 238.398C263.34 240.214 267.763 243.761 272.102 247.157C274.703 249.201 277.259 251.302 279.77 253.458C279.879 253.551 279.77 253.729 279.652 253.644C275.237 250.119 270.723 246.74 266.112 243.508C261.844 240.471 257.023 238.304 251.923 237.13C249.007 236.463 246.025 236.032 243.084 235.593C243.067 235.592 243.052 235.584 243.041 235.572C243.03 235.559 243.024 235.542 243.025 235.526C243.026 235.509 243.034 235.493 243.047 235.482C243.059 235.471 243.076 235.465 243.092 235.466Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M247.289 227.89C252.125 228.194 256.338 228.439 260.863 230.364C266.837 232.899 272.954 237.806 275.102 239.538C277.478 241.447 279.779 243.44 282.053 245.451C282.155 245.527 282.011 245.696 281.91 245.611C276.737 241.203 271.285 237.135 265.589 233.431C262.899 231.624 259.946 230.245 256.835 229.342C253.707 228.6 250.522 228.125 247.314 227.923C247.314 227.923 247.272 227.89 247.289 227.89Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M220.933 223.446L213.291 269.431C213.291 269.431 174.245 264.017 166.342 257.606C158.439 251.195 140.374 214.679 134.029 196.653C127.685 178.627 137.105 177.757 147.359 188.206C157.613 198.655 183.034 223.995 184.323 224.443C185.612 224.891 220.933 223.446 220.933 223.446Z\",\n fill: \"#006661\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M206.904 250.384C207.848 244.961 208.833 239.538 209.583 234.073C210.005 230.964 210.426 227.864 210.839 224.781C210.839 224.663 210.653 224.621 210.628 224.739C209.465 230.153 208.311 235.576 207.393 241.041C206.474 246.507 205.522 251.904 204.679 257.352C204.199 260.452 203.837 263.552 203.525 266.644C203.525 266.703 203.618 266.728 203.635 266.644C204.983 261.297 205.952 255.849 206.904 250.384Z\",\n fill: \"#333333\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.1,\n d: \"M214.032 264.887L213.265 269.465C213.265 269.465 174.22 264.051 166.317 257.64C158.413 251.228 140.34 214.712 133.995 196.678C129.361 183.501 133.153 179.48 139.531 182.378C158.262 202.684 193.608 241.32 214.032 264.887Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M82.2356 272.118L172.788 273.638L168.28 244.614C168.28 244.614 175.636 238.229 171.347 226.082C168.541 218.142 155.843 199.525 149.44 191.787C133.785 172.917 122.941 183.45 118.601 188.307C102.003 206.823 82.2356 272.118 82.2356 272.118Z\",\n fill: \"#006661\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M140.888 244.353C144.826 243.994 148.786 243.926 152.734 244.15C154.698 244.293 156.635 244.521 158.582 244.792C159.559 244.927 160.528 245.037 161.497 245.13C162.516 245.252 163.545 245.252 164.564 245.13C164.582 245.13 164.599 245.137 164.612 245.149C164.624 245.162 164.632 245.179 164.632 245.197C164.632 245.215 164.624 245.232 164.612 245.245C164.599 245.258 164.582 245.265 164.564 245.265C163.621 245.487 162.664 245.643 161.699 245.729C160.762 245.797 159.822 245.797 158.885 245.729C156.897 245.611 154.908 245.392 152.92 245.248C148.909 244.961 144.898 244.674 140.871 244.674C140.744 244.682 140.736 244.369 140.888 244.353Z\",\n fill: \"#333333\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M131.965 249.539C135.097 248.62 138.278 247.881 141.494 247.326C143.104 247.047 144.713 246.87 146.348 246.735L148.673 246.583C149.516 246.532 150.358 246.583 151.251 246.583C151.344 246.583 151.369 246.709 151.251 246.718C150.409 246.794 149.65 247.013 148.85 247.14L146.44 247.512C144.831 247.765 143.23 248.035 141.621 248.272C138.394 248.745 135.183 249.252 131.982 249.835C131.83 249.835 131.805 249.581 131.965 249.539Z\",\n fill: \"#333333\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M129.546 184.109C129.487 185.798 134.366 198.384 141.831 200.023C144.258 200.547 147.729 187.353 147.729 187.353L148.21 186.44L154.891 173.66L141.73 159.123L139.792 157.146C139.792 157.146 138.191 160.77 136.245 165.298C136.152 165.5 136.06 165.712 135.967 165.94C135.874 166.168 135.739 166.43 135.638 166.675C135.343 167.342 135.04 168.035 134.796 168.727C134.577 169.251 134.358 169.758 134.147 170.324C133.936 170.89 133.709 171.422 133.481 172.013C131.896 175.95 130.581 179.992 129.546 184.109Z\",\n fill: \"#FFE1CC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M136.211 165.298C136.558 169.488 137.811 173.552 139.883 177.208C141.955 180.863 144.796 184.023 148.21 186.466L154.891 173.66L141.73 159.123L139.792 157.146C139.792 157.146 138.158 160.77 136.211 165.298Z\",\n fill: \"#333333\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M179.646 156.657C176.807 181.837 161.438 182.977 156.054 182.361C151.133 181.795 134.467 179.261 134.695 153.92C134.922 128.579 147.493 121.94 158.809 122.666C170.125 123.393 182.452 131.476 179.646 156.657Z\",\n fill: \"#FFE1CC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M176.563 151.909C176.005 151.744 175.457 151.55 174.919 151.327C174.313 151.2 173.765 150.876 173.361 150.406C173.26 150.234 173.22 150.034 173.246 149.836C173.272 149.639 173.363 149.456 173.504 149.316C173.825 149.082 174.203 148.937 174.598 148.897C174.993 148.857 175.392 148.923 175.754 149.088C176.536 149.312 177.206 149.822 177.633 150.516C177.721 150.679 177.76 150.865 177.745 151.051C177.73 151.236 177.662 151.413 177.549 151.561C177.435 151.708 177.282 151.819 177.107 151.881C176.932 151.943 176.743 151.953 176.563 151.909Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M159.424 148.759C160.008 148.75 160.59 148.708 161.168 148.632C161.788 148.673 162.403 148.51 162.921 148.167C163.063 148.026 163.154 147.842 163.18 147.643C163.206 147.444 163.165 147.242 163.064 147.069C162.82 146.753 162.496 146.507 162.126 146.359C161.756 146.21 161.352 146.164 160.958 146.225C160.149 146.225 159.368 146.526 158.767 147.069C158.612 147.197 158.502 147.371 158.452 147.565C158.401 147.76 158.413 147.965 158.486 148.152C158.559 148.34 158.689 148.499 158.857 148.608C159.026 148.717 159.224 148.77 159.424 148.759Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M162.534 156.226C162.534 156.158 162.391 156.293 162.383 156.361C162.248 158.05 161.801 160.035 160.191 160.432C160.141 160.432 160.132 160.525 160.191 160.525C162.113 160.475 162.678 157.881 162.534 156.226Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M161.203 154.232C158.472 153.717 157.646 159.224 160.175 159.706C162.703 160.187 163.495 154.697 161.203 154.232Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M160.083 154.393C159.552 154.629 159.004 155.111 158.397 155.077C157.79 155.043 157.301 154.393 156.947 153.768C156.947 153.709 156.855 153.768 156.846 153.818C156.669 154.874 156.905 156.015 158.018 156.353C159.13 156.69 159.906 155.829 160.327 154.815C160.42 154.612 160.268 154.3 160.083 154.393Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M172.063 157.307C172.063 157.239 172.181 157.408 172.173 157.476C171.844 159.165 171.76 161.167 173.209 161.978C173.252 161.978 173.209 162.088 173.209 162.071C171.322 161.505 171.465 158.861 172.063 157.307Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M173.85 155.77C176.614 155.998 175.957 161.522 173.395 161.311C170.833 161.1 171.524 155.575 173.85 155.77Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M174.953 156.268C175.358 156.614 175.72 157.197 176.243 157.299C176.765 157.4 177.355 156.859 177.811 156.336C177.861 156.277 177.895 156.336 177.886 156.403C177.794 157.468 177.313 158.523 176.277 158.608C175.24 158.692 174.76 157.696 174.633 156.606C174.591 156.412 174.793 156.133 174.953 156.268Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M160.267 170.205C160.587 170.678 160.882 171.304 161.489 171.481C162.119 171.589 162.765 171.566 163.385 171.413C163.399 171.408 163.414 171.407 163.427 171.412C163.441 171.416 163.452 171.425 163.46 171.438C163.467 171.45 163.469 171.465 163.467 171.479C163.464 171.493 163.456 171.506 163.444 171.515C163.133 171.795 162.751 171.985 162.34 172.066C161.929 172.146 161.504 172.113 161.11 171.971C160.784 171.813 160.513 171.561 160.33 171.249C160.147 170.936 160.06 170.576 160.082 170.214C160.04 170.146 160.174 170.129 160.267 170.205Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M168.204 165.019C168.204 165.019 168.204 167.621 168.036 168.829C168.036 168.938 167.724 168.955 167.311 168.922C167.311 168.922 167.311 168.922 167.269 168.922C166.211 168.967 165.162 168.719 164.235 168.205C163.309 167.69 162.543 166.93 162.02 166.007C161.952 165.881 162.121 165.779 162.222 165.872C163.607 167.135 165.363 167.914 167.227 168.094C167.353 167.773 167.084 163.634 167.277 163.651C168.196 163.866 169.083 164.201 169.915 164.647C170.075 159.233 169.375 153.827 169.62 148.438C169.62 148.395 169.637 148.354 169.667 148.324C169.697 148.294 169.737 148.277 169.78 148.277C169.822 148.277 169.863 148.294 169.893 148.324C169.923 148.354 169.94 148.395 169.94 148.438C171.077 154.046 171.027 160.263 171.002 165.889C171.01 166.539 168.693 165.289 168.204 165.019Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M167.218 168.313C166.424 169.223 165.408 169.91 164.269 170.307C163.645 170.51 162.973 170.51 162.348 170.307C160.992 169.851 161.042 168.575 161.362 167.502C161.544 166.935 161.79 166.391 162.096 165.881C163.501 167.219 165.296 168.071 167.218 168.313Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M164.27 170.281C163.646 170.484 162.973 170.484 162.349 170.281C160.992 169.825 161.042 168.55 161.363 167.477C162.837 167.747 164.245 168.854 164.27 170.281Z\",\n fill: \"#FF9BBC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M134.712 156.994C136.457 156.494 138.043 155.547 139.313 154.247C140.583 152.947 141.495 151.338 141.958 149.578C146.67 148.418 150.991 146.025 154.479 142.643C154.217 143.125 152.355 146.655 151.353 148.421C167.766 148.227 174.81 136.891 174.81 136.891C179.065 142.947 179.52 146.427 179.975 148.201C179.975 148.201 181.795 138.445 177.919 131.029C173.184 121.94 164.547 121.999 164.547 121.999C160.787 120.359 156.656 119.765 152.587 120.279C148.519 120.794 144.664 122.397 141.427 124.921C129.142 134.391 134.712 156.994 134.712 156.994Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M163.89 147.897C161.09 148.847 158.166 149.376 155.211 149.468C159.895 149.015 164.36 147.26 168.103 144.4C169.7 143.179 171.135 141.76 172.375 140.177C173.796 138.504 174.873 136.567 175.543 134.475C175.552 134.442 175.573 134.415 175.602 134.398C175.632 134.382 175.666 134.377 175.699 134.386C175.731 134.395 175.759 134.417 175.775 134.446C175.792 134.475 175.796 134.51 175.787 134.543C175.343 136.679 174.546 138.726 173.428 140.599C172.241 142.41 170.733 143.987 168.979 145.253C167.426 146.363 165.724 147.247 163.924 147.88L163.89 147.897Z\",\n fill: \"#333333\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M133.144 162.468C133.487 162.683 133.852 162.861 134.231 163C134.603 163.147 134.995 163.235 135.394 163.262C135.909 163.318 136.429 163.26 136.919 163.093C137.302 162.965 137.665 162.783 137.998 162.553C138.471 162.226 138.884 161.82 139.219 161.353L139.177 154.435C139.177 154.435 135.327 145.591 131.434 146.833C127.541 148.075 129.328 160.145 133.144 162.468Z\",\n fill: \"#FFE1CC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M132.032 150.254C131.965 150.254 131.94 150.321 131.99 150.364C134.644 152.121 135.622 155.111 136.127 158.109C135.487 156.868 134.442 156.04 132.757 156.775C132.673 156.817 132.757 156.952 132.807 156.944C133.357 156.881 133.912 156.994 134.395 157.265C134.877 157.537 135.262 157.953 135.495 158.456C135.884 159.266 136.183 160.115 136.388 160.99C136.473 161.277 136.97 161.235 136.928 160.914C136.928 160.914 136.928 160.863 136.928 160.838C137.736 157.172 135.916 151.428 132.032 150.254Z\",\n fill: \"#333333\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M116.723 192.978C106.114 209.872 84.0642 270.403 96.2394 278.343C108.415 286.283 162.955 261.998 177.532 251.262C181.871 248.069 158.051 221.698 152.313 222.112C147.536 222.424 125.763 237.941 124.811 236.7C123.733 235.297 125.334 223.083 127.112 201.223C129.159 175.966 121.407 185.528 116.723 192.978Z\",\n fill: \"#FFE1CC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M167.623 209.61C178.147 204.002 181.702 204.179 188.072 194.718C192.285 188.501 198.006 188.518 197.147 196.256C195.757 208.926 183.666 219.062 178.517 221.318L167.623 209.61Z\",\n fill: \"#FFE1CC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M217.849 191.492C251.114 197.481 242.326 246.887 209.002 240.898C175.678 234.909 184.516 185.486 217.849 191.492Z\",\n fill: \"#FF8833\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M217.849 191.492C251.114 197.481 242.326 246.887 209.002 240.898C175.678 234.909 184.516 185.486 217.849 191.492Z\",\n fill: \"#999999\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M214.723 190.934C246.429 196.636 237.641 246.05 205.876 240.332C174.111 234.613 182.958 185.216 214.723 190.934Z\",\n fill: \"#CCCCCC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.1,\n d: \"M190.187 216.799C190.364 225.6 195.47 234.132 206.634 236.134C232.99 240.872 240.287 199.863 213.973 195.132L213.459 195.048C238.13 200.006 231.061 238.811 205.926 234.292C195.655 232.442 190.735 224.849 190.187 216.799Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.1\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M206.685 199.525C206.903 199.493 207.126 199.549 207.304 199.68C207.482 199.811 207.602 200.007 207.637 200.226L207.847 201.611C210.112 201.446 212.375 201.963 214.344 203.098C214.496 203.158 214.632 203.254 214.738 203.38C214.844 203.505 214.917 203.655 214.95 203.816C214.979 204.051 214.915 204.287 214.772 204.475C214.628 204.663 214.417 204.787 214.184 204.821C213.953 204.859 213.717 204.805 213.526 204.669C211.871 203.654 209.956 203.147 208.016 203.208L209.474 212.879C214.875 213.192 217.377 214.831 217.899 218.218C218.447 221.875 215.776 224.933 211.487 225.719L211.892 228.413C211.925 228.637 211.869 228.865 211.734 229.048C211.6 229.23 211.399 229.351 211.176 229.385C210.952 229.418 210.725 229.361 210.543 229.227C210.361 229.092 210.24 228.891 210.207 228.667L209.794 225.938C206.876 226.157 203.969 225.39 201.537 223.759C201.405 223.699 201.291 223.606 201.205 223.489C201.119 223.373 201.065 223.236 201.048 223.092C201.023 222.864 201.084 222.634 201.22 222.45C201.356 222.265 201.556 222.138 201.781 222.095C202.011 222.062 202.246 222.116 202.438 222.247C204.521 223.758 207.057 224.509 209.625 224.376L208.142 214.527C202.8 214.172 200.382 212.592 199.86 209.137C199.337 205.683 201.966 202.532 206.154 201.789L205.96 200.479C205.945 200.369 205.951 200.256 205.979 200.149C206.008 200.041 206.057 199.939 206.124 199.851C206.191 199.762 206.276 199.687 206.372 199.632C206.468 199.576 206.574 199.539 206.685 199.525ZM207.906 212.761L206.483 203.334C203.112 203.909 201.25 206.249 201.621 208.732C201.975 211.08 203.298 212.364 207.906 212.761ZM209.735 214.645L211.176 224.181C214.613 223.59 216.551 221.242 216.155 218.615C215.793 216.233 214.369 214.966 209.735 214.645Z\",\n fill: \"#231F20\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M142.084 231.099C142.084 231.099 152.01 219.595 162.626 212.516C169.974 207.608 187.137 198.722 210.856 210.21C216.484 212.938 222.567 220.819 211.774 219.713C204.098 218.927 199.472 216.106 194.922 216.469C194.922 216.469 201.478 227.45 198.537 232.958C195.964 237.805 193.049 242.463 189.816 246.895C188.873 246.485 187.956 246.016 187.07 245.493C187.07 245.493 183.834 250.409 175.189 252.673L142.084 231.099Z\",\n fill: \"#FFE1CC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M170.378 208.951C174.962 209.56 184.66 210.996 192.184 214.932C200.551 219.316 215.473 230.01 212.187 236.159C209.777 240.67 203.719 237.097 203.719 237.097C203.719 237.097 208.96 242.815 205.893 246.388C203.096 249.666 198.579 246.616 198.579 246.616C198.579 246.616 201.158 250.637 197.863 253.272C193.895 256.448 189.126 247.503 182.343 247.233C180.826 247.199 170.378 208.951 170.378 208.951Z\",\n fill: \"#FFE1CC\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M186.109 223.016C190.322 224.291 199.177 229.655 203.719 236.894C203.828 237.063 203.761 237.223 203.634 237.097C198.367 231.734 192.467 227.034 186.067 223.1C186.025 223.075 186.058 223.007 186.109 223.016Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M181.946 231.606C185.468 233.084 194.341 239.014 198.697 246.515C198.798 246.684 198.697 246.844 198.596 246.709C193.617 241.081 188.014 236.039 181.896 231.682C181.854 231.657 181.896 231.589 181.946 231.606Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M194.897 216.393C198.899 216.131 201.899 217.052 205.724 218.083C207.609 218.609 209.522 219.026 211.454 219.333C213.215 219.595 215.827 220 216.939 218.176C217.554 217.162 217.082 215.903 216.526 214.974C215.548 213.671 214.371 212.53 213.038 211.595C212.987 211.553 213.038 211.469 213.097 211.502C214.36 212.337 215.535 213.299 216.602 214.374C217.323 215.117 217.799 216.063 217.967 217.086C218.161 219.274 215.911 220.397 214.04 220.465C212.908 220.468 211.779 220.355 210.67 220.127C209.609 219.949 208.564 219.713 207.519 219.451C205.379 218.919 203.306 218.26 201.132 217.702C199.067 217.201 196.974 216.825 194.863 216.579C194.813 216.52 194.813 216.393 194.897 216.393Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M207.114 226.361C205.429 224.671 197.223 217.914 194.855 216.503C194.849 216.5 194.843 216.495 194.839 216.49C194.835 216.484 194.831 216.478 194.83 216.472C194.828 216.465 194.827 216.458 194.828 216.451C194.828 216.444 194.831 216.437 194.834 216.431C194.837 216.425 194.842 216.42 194.847 216.415C194.852 216.411 194.859 216.408 194.865 216.406C194.872 216.404 194.879 216.403 194.886 216.404C194.893 216.405 194.899 216.407 194.905 216.41C198.697 218.049 205.817 223.497 207.704 225.389C209.592 227.281 211.816 229.689 212.76 232.197C214.142 235.982 211.917 237.62 211.075 238.11C210.057 238.703 208.869 238.932 207.704 238.761C206.299 238.472 204.969 237.897 203.795 237.071C203.736 237.029 203.795 236.936 203.845 236.97C205.699 237.984 208.404 238.659 210.358 237.629C210.795 237.419 211.185 237.125 211.506 236.762C211.827 236.4 212.073 235.976 212.229 235.517C212.456 234.402 212.277 233.242 211.723 232.248C210.534 230.036 208.975 228.044 207.114 226.361Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M145.522 225.034L171.145 260.072C171.145 260.072 102.736 289.865 94.1919 278.571C85.6481 267.277 104.092 213.15 113.891 196.534C125.241 177.284 128.165 182.529 127.752 197.742C127.322 213.673 125.089 237.021 125.089 237.021L145.522 225.034Z\",\n fill: \"#006661\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M105.322 251.448C108.211 248.512 111.308 245.79 114.591 243.305C117.836 240.865 121.255 238.666 124.82 236.725C126.85 235.593 128.923 234.563 130.987 233.524C131.055 233.524 131.097 233.591 131.038 233.616C127.458 235.589 123.995 237.766 120.666 240.138C117.335 242.463 114.051 244.842 110.816 247.275C108.988 248.66 107.218 250.13 105.432 251.566C105.416 251.581 105.395 251.588 105.374 251.588C105.353 251.587 105.333 251.578 105.318 251.562C105.304 251.546 105.296 251.525 105.297 251.504C105.297 251.483 105.307 251.462 105.322 251.448Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M145.303 224.958C144.966 225.127 126.657 235.34 126.067 235.762C126.067 235.45 127.609 224.359 127.845 222.737C127.845 222.576 127.845 222.407 127.912 222.247C128.131 221.504 128.367 220.752 128.561 219.992C128.814 219.02 129.058 218.049 129.302 217.077H129.26C128.974 218.04 128.679 218.995 128.418 219.958C128.283 220.397 128.173 220.803 128.055 221.301C128.19 220.152 128.316 219.012 128.443 217.863C128.637 216.03 128.771 214.197 128.906 212.364C128.906 212.305 128.822 212.297 128.814 212.364C128.359 215.599 127.803 218.826 127.331 222.061C126.859 225.296 124.98 237.266 125.005 237.266C125.03 237.266 145.101 225.465 145.438 225.187C145.455 225.164 145.464 225.137 145.466 225.108C145.467 225.08 145.461 225.052 145.446 225.027C145.432 225.003 145.41 224.983 145.385 224.971C145.359 224.959 145.331 224.955 145.303 224.958Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M151.42 249.843C148.589 245.932 145.783 241.987 142.809 238.178C141.124 236.015 139.438 233.845 137.753 231.691C137.686 231.615 137.534 231.691 137.593 231.8C140.281 235.838 142.986 239.893 145.859 243.803C148.732 247.714 151.538 251.634 154.445 255.494C156.13 257.69 157.815 259.827 159.601 261.922C159.61 261.928 159.621 261.931 159.631 261.931C159.642 261.93 159.652 261.927 159.661 261.92C159.669 261.914 159.675 261.904 159.678 261.894C159.681 261.884 159.681 261.873 159.677 261.863C157.099 257.732 154.268 253.788 151.42 249.843Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M172.181 260.495C171.237 259.447 170.007 257.91 169.021 256.905C168.76 256.634 168.541 256.744 168.76 257.031C169.51 258.003 170.193 259.126 170.942 260.131C169.982 260.52 169.004 260.892 168.044 261.297L164.674 262.699C162.489 263.6 160.298 264.482 158.102 265.343C153.653 267.083 149.159 268.728 144.62 270.276C135.562 273.433 126.346 276.115 117.009 278.309C114.397 278.909 111.768 279.466 109.131 279.931C106.536 280.435 103.918 280.807 101.286 281.046C101.273 281.051 101.262 281.059 101.254 281.071C101.247 281.082 101.242 281.095 101.242 281.109C101.242 281.123 101.247 281.137 101.254 281.148C101.262 281.159 101.273 281.168 101.286 281.173C103.605 281.217 105.924 281.078 108.221 280.759C110.622 280.421 113.024 280.015 115.4 279.534C120.143 278.563 124.828 277.346 129.479 276.003C138.691 273.34 147.783 270.29 156.753 266.855C159.281 265.901 161.767 264.912 164.261 263.899C165.516 263.383 166.789 262.868 168.01 262.328C169.232 261.787 172.341 260.664 172.181 260.495Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M161.817 278.478C162.095 277.051 162.264 275.775 162.407 274.407C162.543 273.048 162.61 271.684 162.609 270.318C162.615 268.902 162.491 267.488 162.239 266.095C161.98 264.468 161.329 262.928 160.343 261.61C159.73 260.844 158.937 260.243 158.034 259.861C157.588 259.676 157.121 259.546 156.644 259.473C156.203 259.411 155.757 259.391 155.313 259.413C153.656 259.541 152.079 260.178 150.796 261.238C149.648 262.164 148.67 263.285 147.906 264.549C147.12 265.802 146.582 267.196 146.322 268.654C146.157 269.524 146.227 270.422 146.525 271.256C146.732 271.793 147.096 272.256 147.569 272.582C148.021 272.883 148.545 273.057 149.086 273.089C149.643 273.118 150.197 272.983 150.679 272.7C151.093 272.44 151.444 272.091 151.706 271.678C152.129 271.015 152.416 270.274 152.549 269.499C152.789 268.127 152.789 266.724 152.549 265.352C152.304 263.977 151.776 262.668 150.999 261.508C150.595 260.892 150.049 260.382 149.406 260.022C148.743 259.66 147.977 259.532 147.232 259.658C145.894 259.958 144.683 260.67 143.769 261.694C142.032 263.608 140.649 265.816 139.683 268.215C140.815 265.939 142.341 263.882 144.191 262.142C145.052 261.309 146.15 260.765 147.333 260.588C147.867 260.577 148.392 260.726 148.842 261.015C149.292 261.303 149.647 261.719 149.861 262.209C150.394 263.26 150.701 264.411 150.763 265.588C150.869 266.753 150.772 267.928 150.476 269.06C150.352 269.543 150.137 269.999 149.844 270.403C149.752 270.526 149.63 270.625 149.49 270.69C149.411 270.715 149.326 270.715 149.246 270.69C149.145 270.676 149.051 270.632 148.977 270.563C148.941 270.503 148.916 270.437 148.901 270.369C148.842 269.976 148.874 269.574 148.993 269.195C149.64 267.106 150.981 265.303 152.793 264.085C153.533 263.563 154.417 263.286 155.321 263.291C155.512 263.301 155.701 263.329 155.886 263.375C156.038 263.416 156.186 263.475 156.324 263.552C156.586 263.704 156.806 263.919 156.964 264.177C157.408 264.986 157.667 265.883 157.722 266.804C157.823 267.928 157.823 269.059 157.722 270.183C157.623 271.371 157.463 272.552 157.242 273.722C157.023 274.888 156.745 276.13 156.4 277.194L161.817 278.478Z\",\n fill: \"#FDD25F\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M167.277 339.794C170.968 345.032 170.218 361.005 172.451 363.243C174.684 365.482 197.61 365.253 199.161 363.936C200.711 362.618 200.003 356.967 201.688 356.038C202.396 355.675 167.277 339.794 167.277 339.794Z\",\n fill: \"#FDD25F\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.1,\n d: \"M201.705 356.046C201.437 356.248 201.212 356.502 201.043 356.792C200.874 357.082 200.764 357.403 200.719 357.736C190.136 356.497 179.791 353.708 170.016 349.458C169.493 345.564 168.727 341.855 167.277 339.794C167.277 339.803 202.396 355.683 201.705 356.046Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M277.15 340.065C272.541 346.746 275.035 361.022 272.794 363.26C270.552 365.498 247.634 365.27 246.092 363.953C244.55 362.635 245.25 356.68 244.34 355.548C243.859 354.931 277.15 340.065 277.15 340.065Z\",\n fill: \"#FDD25F\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.1,\n d: \"M277.15 340.065C275.465 342.557 274.698 346.113 274.344 349.694C264.967 353.855 255.03 356.61 244.854 357.871C244.866 357.067 244.69 356.271 244.34 355.548C243.859 354.931 277.15 340.065 277.15 340.065Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M220.933 244.285C169.443 244.285 149.735 280.472 149.735 301.648C149.735 322.546 164.699 358.057 220.933 358.057C277.167 358.057 295.821 327.977 295.821 301.167C295.821 274.356 272.928 244.285 220.933 244.285Z\",\n fill: \"#FDD25F\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M239.823 246.904C239.823 246.904 260.888 230.702 283.697 232.637C291.549 233.304 278.506 250.375 278.27 263.688L239.823 246.904Z\",\n fill: \"#FDD25F\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.1,\n d: \"M269.474 257.167C269.339 258.011 276.61 261.128 277.36 260.655C278.11 260.182 278.869 249.674 284.8 238.49C285.677 236.843 270.881 248.145 269.474 257.167Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.3,\n d: \"M274.015 298.751C274.718 298.643 275.375 298.337 275.91 297.869C276.446 297.401 276.838 296.79 277.04 296.107C276.978 296.951 276.724 297.77 276.3 298.502C275.875 299.234 275.29 299.859 274.588 300.33C274.487 300.398 274.538 300.592 274.673 300.55C278.7 299.03 278.262 293.328 276.846 289.696C276.771 289.493 276.695 289.29 276.602 289.096C275.7 286.984 274.125 285.455 272.145 285.717C265.665 286.655 268.008 299.629 274.015 298.751Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M289.561 280.277C290.563 283.31 299.714 280.843 302.014 282.769C305.646 285.785 304.643 323.238 301.323 326.254C299.461 327.943 289.089 326.161 286.157 328.222C283.225 330.283 289.561 280.277 289.561 280.277Z\",\n fill: \"#FDD25F\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.1,\n d: \"M302.504 303.599C302.504 312.722 301.745 320.113 300.818 320.113C299.891 320.113 299.133 312.722 299.133 303.599C299.133 294.477 299.891 287.086 300.818 287.086C301.745 287.086 302.504 294.451 302.504 303.599Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.3,\n d: \"M196.035 256.998C196.271 256.939 219.787 250.739 241.686 255.587L243.868 249.125C219.5 243.736 194.476 250.358 193.423 250.646L196.043 256.998L194.729 253.822L196.035 256.998Z\",\n fill: \"#231F20\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M174.009 335.841C153.24 311.92 165.954 284.129 166.527 282.938C166.926 282.123 166.986 281.182 166.693 280.322C166.399 279.463 165.778 278.756 164.964 278.356C164.151 277.956 163.212 277.896 162.355 278.19C161.498 278.484 160.792 279.107 160.393 279.923C157.588 286.227 155.93 292.984 155.498 299.874C154.495 315.079 159.517 329.067 171.397 338.578C174.987 341.408 176.68 338.874 174.009 335.841Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M164.977 272.278C164.977 273.015 165.195 273.736 165.604 274.349C166.013 274.961 166.593 275.439 167.273 275.72C167.952 276.002 168.7 276.075 169.421 275.931C170.142 275.787 170.804 275.431 171.323 274.909C171.843 274.387 172.196 273.723 172.338 273C172.481 272.276 172.406 271.527 172.123 270.847C171.841 270.166 171.363 269.585 170.751 269.177C170.139 268.768 169.42 268.551 168.684 268.553C167.7 268.555 166.757 268.949 166.062 269.647C165.367 270.345 164.977 271.292 164.977 272.278Z\",\n fill: \"white\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_181_18308\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 339.45,\n height: 365,\n fill: \"white\"\n })))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDeductionImg);\nexport default __webpack_public_path__ + \"static/media/deductionImg.5c5a3a1f23e8947951774ef1b87e241f.svg\";\nexport { ForwardRef as ReactComponent };","type props = {\n imgUrl: string,\n title: string,\n des: string,\n}\nconst DeductionCard: React.FC = (props) => {\n const { imgUrl, title, des } = props;\n return (\n
\n
\n {title}\n
\n
{title}
\n

{des}

\n
\n )\n}\n\nexport default DeductionCard;","import Container from \"components/_common/Container\";\nimport deductionImg from \"assets/imgs/deductionImg.svg\";\nimport deductionCardImg1 from \"assets/imgs/deductionCardImg1.png\";\nimport deductionCardImg2 from \"assets/imgs/deductionCardImg2.png\";\nimport deductionCardImg3 from \"assets/imgs/deductionCardImg3.png\";\nimport DeductionCard from \"./components/DeductionCard\";\n\n\nconst Deduction: React.FC = () => {\n\n\n\n\n\n return (\n
\n \n\n
\n

\n Income tax deductions and exemptions\n

\n

\n You have the opportunity to save on your taxes by taking advantage of deductions and credits. Let's take a look at what exemptions you can use to minimize your tax burden.\n

\n\n

\n Tax Deductions under Section 80G\n

\n\n

\n As an Indian taxpayer, Are you aware that you can save on your taxes while making a positive impact on a child's life by donating to charitable organizations? That's right! By making donations to certain organizations and institutions, you can claim deductions under Section 80G of the Income Tax Act. Whether you're an individual or a corporate taxpayer, this is a great opportunity to reduce your tax bill.\n

\n
\n\n
\n \n
\n\n
\n \n \n \n
\n\n\n
\n
\n )\n}\n\nexport default Deduction;","import Button from \"components/_common/Button\";\nimport Container from \"components/_common/Container\";\n\n\nconst SaveOnTax: React.FC = () => {\n\n return (\n
\n \n
\n

\n Save on Tax\n

\n

\n Your kindness and valuable donations will ensure a vulnerable child goes to school regularly, enjoys good health, empowered and protected and also help you gain a 50% tax exemption under Section 80G.\n

\n
\n\n \n \n \n
\n
\n )\n\n}\n\nexport default SaveOnTax;","\nimport './PromoVideo.css';\n\nconst PromoVideo: React.FC = () => {\n\n\n return (\n
\n
\n
\n\n\n \n \n
\n\n
\n
\n )\n}\n\nexport default PromoVideo;\n","import Container from \"components/_common/Container\";\nimport './TaxDetails.css';\n\nconst TaxDetails: React.FC = () => {\n return (\n
\n \n\n {\n [\n {\n title: \"Tax deduction under section 80C\",\n des: \"Section 80C of the Indian Income Tax Act allows you to save on taxes by claiming deductions on your eligible investments and expenditures, up to a limit of Rs. 1.5 Lakhs. The eligible investments and expenditures include Life insurance premium, PPF, home loan principal repayment, National Pension System (NPS), 5-year fixed deposits with banks, and ELSS mutual funds, Tuition fees for children and National Savings Certificate (NSC).\"\n },\n {\n title: \"Tax deduction under section 80D\",\n des: \"Under Section 80D of the Indian Income Tax Act, you can claim a tax deduction for medical insurance premiums paid for yourself, spouse, children, and parents. If you and your family members fall in the below-60 age group, the max deduction is Rs.25,000. Your parents are aged above 60 years, max deduction is Rs.50,000.\"\n },\n {\n title: \"Tax deduction under section 80E\",\n des: \"Section 80E allows you to claim the interest paid on education loans for higher studies. Whether you're an individual or a parent supporting a dependent, you can benefit from this provision for up to 8 years or until the loan is fully paid off. The loan must be taken from a bank or NBFC solely for education purposes.\"\n },\n {\n title: \"Tax deduction under section 80CCD(1B)\",\n des: \"Section 80CCD(1B) allows deductions on contributions made to the National Pension System (NPS) by you or your employer. You can now claim a deduction of Rs. 2.00 Lakhs, i.e. Rs. 1.50 Lakhs under Sec 80C and an Additional Rs. 50,000/- under Section 80CCD(1B).\"\n },\n {\n title: \"Tax deduction under section 80TTA/80TTB\",\n des: \"Section 80TTA and 80TTB in the Income Tax Act allow for tax deductions on interest earned from savings accounts in India. 80TTA lets you deduct up to Rs. 10,000 from interest earned in a bank or cooperative society savings account. If you're a senior citizen (60+), 80TTB allows for a higher deduction of up to Rs. 50,000.\"\n },\n {\n title: \"Tax deduction under section 80EEA\",\n des: \"Section 80EEA lets you claim an extra deduction of up to Rs. 1.5 lakh for interest paid on a home loan (first - time home buyers) for a self- occupied property.Just make sure the loan was sanctioned between April 2019 and March 2020 and the property value is under Rs. 45 lakh.Bonus: it's in addition to the existing Rs. 2 lakh deduction under Section 24.\"\n }\n ].map((data, i) => (\n
\n
\n {data.title}\n
\n
\n {data.des}\n
\n
\n ))\n }\n\n\n\n\n\n
\n
\n )\n}\n\nexport default TaxDetails;","import { useEffect, useRef } from 'react';\nimport './Accordian.css';\n\nexport type AccordianProps = {\n className?: string,\n isActive: boolean,\n title: string,\n des: string,\n onClick?: () => void,\n}\n\nconst Accordian: React.FC = (props) => {\n const { className = \"\", isActive, title, des, onClick } = props;\n const accordianDesRef = useRef(null);\n\n useEffect(() => {\n accordianDesRef.current\n && accordianDesRef.current?.style.setProperty(\"--scroll-height\", accordianDesRef.current.scrollHeight + \"px\");\n }, []);\n\n\n return (\n
\n\n
{\n onClick && onClick();\n }} className=\"accordian__title relative cursor-pointer text-14 text-primary-black pr-[34px] lg:text-20\">\n {title}\n
\n\n
\n {des}\n
\n\n
\n )\n}\n\nexport default Accordian;","import { useState } from \"react\"\nimport Accordian from \"./Accordian\"\n\n\n\ntype props = {\n accordians: Array<{\n title: string,\n des: string\n }>,\n className?: string,\n}\n\nconst AccordianList: React.FC = (props) => {\n const { className, accordians } = props\n const [activeItem, setActiveItem] = useState(null);\n\n\n\n\n return (\n
\n {\n accordians.map((accordian, i) => (\n {\n setActiveItem((prev) => prev === i ? null : i)\n }}\n />\n ))\n }\n
\n )\n}\n\nexport default AccordianList;","import AccordianList from \"components/_common/AccordianList\";\nimport Container from \"components/_common/Container\"\n\n\n\nconst faqs = [\n {\n title: \"What is Section 80G of the income tax act?\",\n des: \"The deductions under Section 80G are the contributions that you have made to some charitable organizations or institutions.\"\n },\n {\n title: \"What Tax exemption benefit do I get under section 80G of Income Tax?\",\n des: \"By contributing to World Vision India, you will help to feed school children by providing Meal-Kits or access to safe drinking water, sanitation, and toilets at the same time helping yourselves with tax deduction benefits. All donations to World Vision  India are tax exempted under section 80G of the Income Tax Act.The tax rebate is 50% of your contribution to World Vision.\"\n },\n {\n title: \"How can I donate to World Vision India?\",\n des: \"You can donate through World Vision India Website, Cheque, Paytm, Online Transfer (IMPS, UPI, NEFT & RTGS)\"\n },\n {\n title: \"What is the minimum amount that needs to be donated to get a tax exemption?\",\n des: \"You will get Tax Benefits Under Sec 80G by donating any amount of contribution.\"\n },\n {\n title: \"How long does Tax receipts take to reach us?\",\n des: \"Within 10 business days from the date of the contribution made through online/offline donations along with the 80G Certificate\"\n },\n {\n title: \"Are there tax exemptions on cash donations as well?\",\n des: \"From Financial Year 2017-18 onwards: Any donations made in cash exceeding Rs 2,000 will not be allowed as deduction.The donations above Rs 2, 000 should be made in any mode other than cash to qualify as a deduction under section 80G.\"\n }\n]\n\n\nconst Faq: React.FC = () => {\n return (\n
\n \n\n

\n Frequently Asked Questions\n

\n\n
\n \n
\n\n {/*

\n Read more\n

*/}\n\n
\n
\n )\n}\n\nexport default Faq;","import React from \"react\";\n\nfunction FacebookIcon() {\n return (\n \n \n \n );\n}\n\nexport default FacebookIcon;\n","import React from \"react\";\n\nfunction InstaIcon() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default InstaIcon;\n","import React from \"react\";\n\nfunction TwitterIcon() {\n return (\n \n \n \n );\n}\n\nexport default TwitterIcon;","import React from \"react\";\n\nfunction YoutubeIcon() {\n return (\n \n \n \n );\n}\n\nexport default YoutubeIcon;\n","import FacebookIcon from \"components/icons/FacebookIcon\";\nimport InstaIcon from \"components/icons/InstaIcon\";\nimport TwitterIcon from \"components/icons/TwitterIcon\";\nimport YoutubeIcon from \"components/icons/YoutubeIcon\";\nimport Container from \"components/_common/Container\";\n\nconst Footer: React.FC = () => {\n return (\n \n )\n}\n\nexport default Footer;","import Container from \"components/_common/Container\"\n\nconst Copywrite: React.FC = () => {\n return (\n
\n \n

\n © World Vision India, No. 16, VOC Main Road, Kodambakkam, Chennai-600024.\n Toll free (India): +1-800-425-4550\n Tel: +91-44-24807070, 42287070\n

\n
\n
\n )\n}\n\nexport default Copywrite;","import { useEffect, useState } from \"react\";\nimport './GoToTopBtn.css';\n\nconst GoToTopBtn: React.FC = () => {\n const [isScrolled, setIsScrolled] = useState(false);\n\n\n useEffect(() => {\n const onScroll = (e: any) => {\n window.scrollY > 30 ? setIsScrolled(true) : setIsScrolled(false);\n }\n\n window.addEventListener(\"scroll\", onScroll);\n return () => {\n window.removeEventListener(\"scroll\", onScroll);\n }\n }, [])\n return (\n window.scrollTo(0, 0)}\n className={`goTop__btn ${isScrolled ? \"active\" : \"\"}`}>\n \n \n \n \n )\n}\n\nexport default GoToTopBtn","import Container from \"components/_common/Container\";\n\nconst Banner: React.FC = () => {\n return (\n
\n \n\n

\n Are you ready to test your tax-saving knowledge?\n

\n\n

\n Choose the below character you think is best for tax saving and let's explore how you can reduce your tax bill.\n

\n
\n
\n )\n}\nexport default Banner;","import { useEffect, useState } from \"react\";\n\nconst useWindowResize = () => {\n const [windowWidth, setWindowWidth] = useState(window.innerWidth\n || document.documentElement.clientWidth\n || document.body.clientWidth);\n\n\n\n useEffect(() => {\n const onResize = () => {\n setWindowWidth(window.innerWidth\n || document.documentElement.clientWidth\n || document.body.clientWidth);\n }\n window.addEventListener(\"resize\", onResize);\n return () => {\n window.removeEventListener(\"resize\", onResize);\n }\n }, [])\n\n\n return {\n windowWidth\n }\n}\n\nexport default useWindowResize;","import useWindowResize from \"hooks/useWindowResize\";\n\n\nconst PigAnimGrid: React.FC = () => {\n const { windowWidth } = useWindowResize();\n\n return (\n
\n {\n Array(windowWidth >= 1024 ? 7 : 6).fill(null).map((val, i) => (\n
\n ))\n }\n
\n\n )\n}\nexport default PigAnimGrid;","import Lottie from \"lottie-react\";\nimport anim_common from 'assets/jsons/common_reaction.json';\ntype props = {\n isHovered: boolean,\n animData: unknown,\n isClicked: boolean\n}\nconst PigLottie: React.FC = (props) => {\n const { isHovered, animData, isClicked } = props\n return (\n isHovered || isClicked\n ? \n : \n )\n}\n\nexport default PigLottie;","import coinImgMobile from 'assets/imgs/coin-mobile.png';\nimport coin2 from 'assets/imgs/coin2png.png'\nimport './PigCoins.css';\nimport useWindowResize from \"hooks/useWindowResize\";\n\n\ntype props = {\n isHovered: boolean,\n coinCount: number,\n isClicked: boolean,\n onAnimEnd: () => void\n}\nconst PigCoins: React.FC = (props) => {\n const { isHovered, coinCount, isClicked, onAnimEnd } = props;\n\n const { windowWidth } = useWindowResize();\n\n return (\n windowWidth >= 1024\n ?
\n {\n Array(coinCount).fill(null).map((val, i) => (\n \n \n
\n ))\n }\n \n :
\n {\n Array(coinCount).fill(null).map((val, i) => (\n {\n onAnimEnd()\n }}\n className={`coinWrap ${isClicked ? \"active\" : \"\"}`}>\n \n
\n ))\n }\n \n )\n}\n\nexport default PigCoins;","import whatsAppIcon from \"assets/imgs/whatsappIcon.svg\";\nimport facebookIcon from \"assets/imgs/facebookIcon.svg\";\nimport twitterIcon from \"assets/imgs/twitterIcon.svg\";\nimport linkednInIcon from \"assets/imgs/linkedInIcon.svg\";\n\n\ntype props = {\n coinCount: number,\n}\nconst ModalShareIcons: React.FC = (props) => {\n const { coinCount } = props;\n return (\n
    \n\n
  • \n \n
    \n \"whatsapp\"\n
    \n \n
  • \n\n
  • \n \n
    \n \"facebook\"\n
    \n \n
  • \n\n
  • \n \n
    \n \"twitter\"\n
    \n \n
  • \n\n
  • \n \n
    \n \"linkedin\"\n
    \n \n
  • \n\n
\n )\n}\n\nexport default ModalShareIcons;","import Lottie from \"lottie-react\";\nimport closeIcon from 'assets/imgs/closeIcon.png';\nimport Button from \"components/_common/Button\";\nimport coinImgDesk from 'assets/imgs/coin2png.png';\nimport ModalShareIcons from \"./components/ModalShareIcons\";\n\nimport './Modal.css';\nimport useWindowResize from \"hooks/useWindowResize\";\n\n\ntype props = {\n showModal: boolean,\n onModalClose: () => void,\n title: string,\n des: string,\n animData: unknown,\n coinCount: number,\n}\nconst Modal: React.FC = (props) => {\n const {\n coinCount,\n showModal,\n onModalClose,\n title,\n des,\n animData\n } = props;\n\n const { windowWidth } = useWindowResize();\n\n return (\n
{ e.preventDefault(); return false; }}>\n
onModalClose()}>
\n
\n\n
\n

\n {title}\n

\n \n
\n\n
\n\n

\n {des}\n

\n\n\n {coinCount !== 6 ?\n
\n

\n Recommendation to reduce your tax\n

\n

\n Donating = Saving (Section 80G)\n

\n\n

\n Under Section 80G of the Income Tax Act in India, donations are eligible for a tax deduction of up to 50% of the amount donated\n

\n
\n : null}\n\n
\n \n\n {Array(coinCount).fill(null).map((val, i) => (\n \n \n
\n ))}\n
\n\n\n\n
\n\n
\n

\n We'll Do Your Taxes For You\n

\n\n \n {\n windowWidth >= 1024\n ?
\n\n
\n

\n Share this fun tax game with your friends\n

\n \n
\n\n\n
\n
\n
\n \n )\n}\n\nexport default Modal;","import PigAnimGrid from \"./PigAnimGrid\";\n\n\nimport { useEffect, useRef, useState } from \"react\";\nimport PigLottie from \"./PigLottie\";\nimport PigCoins from \"./PigCoins\";\nimport Modal from \"./modal/Modal\";\nimport useWindowResize from \"hooks/useWindowResize\";\n\n\ntype props = {\n label: string,\n animData: unknown,\n coinCount: number,\n title: string,\n des: string,\n}\n\nconst Pig: React.FC = (props) => {\n const {\n label,\n animData,\n coinCount,\n title,\n des,\n } = props;\n\n\n\n\n const pigElemREF = useRef(null);\n const [isHovered, setIsHovered] = useState(false);\n const [showModal, setShowModal] = useState(false);\n const [isClicked, setIsClicked] = useState(false);\n\n\n const { windowWidth } = useWindowResize();\n\n\n const onCoinAnimEnd = () => {\n isClicked && setShowModal(true);\n }\n const onModalClose = () => setShowModal(false);\n useEffect(() => {\n if (!pigElemREF.current) return;\n const pigElem = pigElemREF.current;\n const onPointerEnter = () => setIsHovered(true);\n const onPointerLeave = () => setIsHovered(false);\n\n const onClick = () => {\n if (windowWidth >= 1024) return setShowModal(true);\n\n if (coinCount === 1) {\n setIsClicked(true);\n setShowModal(true);\n } else {\n !isClicked ? setIsClicked(true) : setShowModal(true);\n }\n }\n\n pigElem.addEventListener(\"click\", onClick);\n pigElem.addEventListener(\"pointerenter\", onPointerEnter);\n pigElem.addEventListener(\"pointerleave\", onPointerLeave);\n return () => {\n pigElem.removeEventListener(\"click\", onClick);\n pigElem.removeEventListener(\"pointerover\", onPointerEnter);\n pigElem.removeEventListener(\"pointerleave\", onPointerLeave);\n }\n }, [coinCount, isClicked, windowWidth]);\n\n\n\n\n return (\n <>\n
\n\n
\n

\n {label}\n

\n
\n\n\n
\n \n\n {\n windowWidth >= 1024\n ?
\n \n \n
\n :
\n \n \n
\n }\n\n
\n
\n\n\n \n \n )\n}\n\nexport default Pig;","import Container from \"components/_common/Container\";\nimport anim_80C from 'assets/jsons/80C.json';\nimport anim_80CCD from 'assets/jsons/80CCD.json';\nimport anim_80D from 'assets/jsons/80D.json';\nimport anim_80E from 'assets/jsons/80E.json';\nimport anim_80EEA from 'assets/jsons/80EEA.json';\nimport anim_80G from 'assets/jsons/80G.json';\nimport anim_80TTA from 'assets/jsons/80TTA.json';\nimport Pig from \"./components/Pig\";\n\n\nconst Pigs: React.FC = () => {\n return (\n
\n \n
\n\n {\n [\n {\n label: \"80TTA\",\n animData: anim_80TTA,\n title: \"Oh no! you have selected 80TTA.\",\n des: \"Section 80TTA in the Income Tax Act allow for tax deductions on interest earned from savings accounts in India. 80TTA lets you deduct up to Rs. 10,000 from interest earned in a bank or cooperative society savings account.\",\n },\n {\n label: \"80CCD\",\n animData: anim_80CCD,\n title: \"Dozing off! You have selected 80CCD.\",\n des: \"Section 80CCD(1B) allows deductions on contributions made to the National Pension System (NPS) by you or your employer. You can now claim a deduction of Rs. 2.00 Lakhs, i.e. Rs. 1.50 Lakhs under Sec 80C and an Additional Rs. 50,000/- under Section 80CCD(1B).\",\n },\n {\n label: \"80D\",\n animData: anim_80D,\n title: \"Smooth sailing! You have selected 80D.\",\n des: \"Under Section 80D, you can claim a tax deduction for medical insurance premiums paid for yourself, spouse, children, and parents. If you and your family members fall in the below-60 age group, the max deduction is Rs.25,000. Your parents are aged above 60 years, max deduction is Rs.50,000.\",\n },\n {\n label: \"80C\",\n animData: anim_80C,\n title: \"Feeling good! You have selected 80C.\",\n des: \"Section 80C allows deductions on your eligible investments and expenditures, up to a limit of Rs. 1.5 Lakhs. The eligible investments and expenditures include Life insurance premium, PPF, home loan principal repayment, NPS, 5-year FD with banks, ELSS, Tuition fees for children and NSC.\",\n },\n {\n label: \"80EEA\",\n animData: anim_80EEA,\n title: \"Little victory! You have selected 80EEA.\",\n des: \"Section 80EEA lets you claim an extra deduction of up to Rs. 1.5 lakh for interest paid on a home loan (first - time home buyers) for a self- occupied property for the loan was sanctioned between April 2019 and March 2020 with property value is under Rs. 45 lakh. Bonus: it's in addition to the existing Rs. 2 lakh deduction under Section 24.\",\n },\n {\n label: \"80G\",\n animData: anim_80G,\n title: \"Awesome effort! You have selected 80G\",\n des: \"By making donations to certain organizations and institutions, you can claim deductions under Section 80G of the Income Tax Act. Whether you're an individual or a corporate taxpayer, this is a great opportunity to reduce your tax bill. Your kindness and valuable donations will ensure a vulnerable child goes to school regularly, enjoys good health, empowered and protected and also help you gain a 50% tax exemption under Section 80G.\",\n },\n {\n label: \"80E\",\n animData: anim_80E,\n title: \"Delighted! You have selected 80E\",\n des: \"Section 80E allows you to claim the interest paid on education loans for higher studies. Whether you're an individual or a parent supporting a dependent, you can benefit from this provision for up to 8 years or until the loan is fully paid off. The loan must be taken from a bank or NBFC solely for education purposes.\",\n }\n\n ].map((data, i) => (\n \n ))\n }\n
\n
\n
\n )\n}\nexport default Pigs;","import Header from 'views/header/Header';\nimport Share from 'views/03-Share/Share';\nimport SaveTax from 'views/04-SaveTax/SaveTax';\nimport Deduction from 'views/05-Deduction/Deduction';\nimport SaveOnTax from 'views/06-SaveOnTax/SaveOnTax';\nimport PromoVideo from 'views/07-PromoVideo/PromoVideo';\nimport TaxDetails from 'views/08-TaxDetails/TaxDetails';\nimport Faq from 'views/08-Faq/Faq';\nimport Footer from 'views/footer/Footer';\nimport Copywrite from 'views/copywrite/Copywrite';\nimport GoToTopBtn from 'components/_common/GoToTopBtn';\nimport Banner from 'views/01-Banner/Banner';\nimport './App.css';\nimport Pigs from 'views/02-pigs/Pigs';\n\n\nfunction App() {\n return (\n
\n
\n \n \n \n \n \n \n \n \n \n
\n \n\n \n
\n );\n}\n\nexport default App;\n","import { ReportHandler } from 'web-vitals';\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport './index.css';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\n\nconst root = ReactDOM.createRoot(\n document.getElementById('root') as HTMLElement\n);\nroot.render(\n \n \n \n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"names":["useLottie","props","style","animationData","loop","autoplay","initialSegment","onComplete","onLoopComplete","onEnterFrame","onSegmentStart","onConfigReady","onDataReady","onDataFailed","onLoadedImages","onDOMLoaded","onDestroy","lottieRef","renderer","name","assetsPath","rendererSettings","rest","_objectWithoutProperties","_excluded$1","_useState2","_slicedToArray","React","useState","animationLoaded","setAnimationLoaded","animationInstanceRef","useRef","animationContainer","play","_a","current","stop","pause","setSpeed","speed","goToAndPlay","value","isFrame","goToAndStop","setDirection","direction","playSegments","segments","forceFlag","setSubframe","useSubFrames","getDuration","inFrames","destroy","undefined","loadAnimation","forcedConfigs","arguments","length","config","_objectSpread2","container","lottie__default","useEffect","onUnmount","Array","isArray","currentRawFrame","setSegment","resetSegments","listeners","handler","filter","listener","deregisterList","map","addEventListener","removeEventListener","forEach","deregister","View","React__default","createElement","ref","animationContainerRef","animationItem","getContainerVisibility","_container$getBoundin","getBoundingClientRect","top","height","window","innerHeight","getContainerCursorPosition","cursorX","cursorY","_container$getBoundin2","x","left","width","y","useInitInteractivity","_ref","wrapperRef","mode","actions","wrapper","scrollModeHandler","assignedSegment","scrollHandler","currentPercent","action","find","_ref2","visibility","type","frames","frameToGo","Math","ceil","firstFrame","isPaused","document","cursorModeHandler","handleCursor","_x","_y","pos","_ref3","position","Number","isNaN","xPercent","yPercent","mouseMoveHandler","ev","clientX","clientY","mouseOutHandler","useLottieInteractivity","_ref4","lottieObj","Lottie","_b","_c","interactivity","lottieProps","_excluded","_useLottie","factory","navigator","svgNS","locationHref","_useWebWorker","initialDefaultFrame","setWebWorker","flag","getWebWorker","setLocationHref","getLocationHref","createTag","extendPrototype","sources","destination","i","sourcePrototype","len","attr","prototype","Object","hasOwnProperty","call","getDescriptor","object","prop","getOwnPropertyDescriptor","createProxyFunction","ProxyFunction","audioControllerFactory","AudioController","audioFactory","this","audios","_volume","_isMuted","addAudio","audio","push","resume","setRate","rateValue","createAudio","assetPath","Howl","src","isPlaying","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","createTypedArray","createRegularArray","arr","Uint8ClampedArray","Float32Array","Int16Array","createSizedArray","apply","_typeof$6","obj","Symbol","iterator","constructor","subframeEnabled","expressionsPlugin","expressionsInterfaces","idPrefix$1","isSafari","test","userAgent","_shouldRoundValues","bmPow","pow","bmSqrt","sqrt","bmFloor","floor","bmMax","max","bmMin","min","BMMath","ProjectInterface$1","propertyNames","random","abs","val","absArr","defaultCurveSegments","degToRads","PI","roundCorner","roundValues","bmRnd","round","styleDiv","element","display","transformOrigin","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","currentTime","totalTime","frameMultiplier","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","totalFrames","BMDestroyEvent","target","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","createElementID","_count","HSVtoRGB","h","s","v","r","g","b","f","p","q","t","RGBtoHSV","d","addSaturationToRGB","color","offset","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","hex","colorMap","toString","setSubframeEnabled","getSubframeEnabled","setExpressionsPlugin","getExpressionsPlugin","setExpressionInterfaces","getExpressionInterfaces","setDefaultCurveSegments","getDefaultCurveSegments","setIdPrefix","getIdPrefix","createNS","createElementNS","_typeof$5","dataManager","workerFn","workerInstance","_counterId","processes","workerProxy","onmessage","postMessage","path","data","_workerSelf","setupWorker","fn","Worker","Blob","blob","url","URL","createObjectURL","createWorker","e","completeLayers","layers","comps","layerData","j","jLen","k","kLen","completed","hasMask","maskProps","masksProperties","pt","convertPathsToAbsoluteValues","ty","findCompLayers","refId","completeShapes","shapes","completeText","id","comp","findComp","__used","JSON","parse","stringify","ks","it","o","checkVersion","minimum","animVersionString","animVersion","split","checkText","minimumVersion","updateTextLayer","textLayer","documentData","iterateLayers","assets","checkChars","chars","charData","ip","op","st","sr","a","sk","sa","checkPathProperties","pathData","checkColors","iterateShapes","c","checkShapes","completeClosingShapes","closed","cl","moduleOb","__complete","completeChars","dataFunctionManager","assetLoader","formatResponse","xhr","contentTypeHeader","getResponseHeader","responseType","indexOf","response","responseText","load","fullPath","callback","errorCallback","XMLHttpRequest","err","onreadystatechange","readyState","status","open","join","error","send","completeData","payload","animation","event","process","onError","createProcess","processId","location","origin","pathname","loadData","completeAnimation","anim","ImagePreloader","proxyImage","canvas","ctx","getContext","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","getAssetsPath","assetData","originalPath","imagePath","u","testImageLoaded","img","intervalId","setInterval","getBBox","_imageLoaded","clearInterval","bind","createFootageData","ob","footageData","_footageLoaded","ImagePreloaderFactory","images","loadAssets","cb","_createImageData","setAssetsPath","setPath","loadedImages","loadedFootages","getAsset","createImgData","crossOrigin","createImageData","setAttributeNS","_elementHelper","append","appendChild","setCacheType","elementHelper","BaseEvent","triggerEvent","eventName","args","_cbs","callbacks","splice","markerParser","parsePayloadLines","line","lines","keys","keysCount","trim","Error","_markers","markers","_marker","markerData","time","tm","duration","dr","cm","_","__","ProjectInterface","registerComposition","compositions","_thisProjectFunction","nm","prepareFrame","xt","currentFrame","compInterface","renderers","registerRenderer","key","getRenderer","_typeof$4","AnimationItem","isLoaded","frameRate","frameMult","playSpeed","playDirection","playCount","animationID","timeCompleted","segmentPos","isSubframeEnabled","_idle","_completedLoop","projectInterface","imagePreloader","audioController","configAnimation","onSetupError","onSegmentComplete","drawnFrameEvent","setParams","params","animType","RendererClass","globalData","defs","setProjectInterface","parseInt","autoloadSegments","setupAnimation","lastIndexOf","substr","fileName","trigger","setData","wrapperAttributes","attributes","getNamedItem","prerender","includeLayers","newLayers","fonts","fontManager","addChars","addFonts","initExpressions","loadNextSegment","segment","shift","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","animData","fr","searchExtraCompositions","updaFrameModifier","waitForFontsLoaded","triggerConfigError","setTimeout","rendererType","initItems","gotoFrame","resize","_width","_height","updateContainerSize","renderFrame","triggerRenderFrameError","togglePause","setCurrentRawFrameValue","getMarkerData","markerName","marker","numValue","frameModifier","advanceTime","nextValue","_isComplete","checkSegments","adjustSegment","init","end","pendingFrame","setLoop","isLooping","getPath","getAssetData","hide","show","updateDocumentData","index","getElementByPath","animationManager","registeredAnimations","initTime","playingAnimationsNum","_stopped","_isFrozen","removeElement","animItem","subtractPlayingCount","registerAnimation","elem","addPlayingCount","activate","nowTime","elapsedTime","requestAnimationFrame","first","searchAnimations","standalone","animElements","concat","slice","getElementsByClassName","lenAnims","setAttribute","body","getElementsByTagName","innerText","div","freeze","unfreeze","getRegisteredAnimations","animations","BezierFactory","str","replace","beziers","bezEasing","BezierEasing","NEWTON_ITERATIONS","SUBDIVISION_PRECISION","SUBDIVISION_MAX_ITERATIONS","kSplineTableSize","kSampleStepSize","float32ArraySupported","A","aA1","aA2","B","C","calcBezier","aT","getSlope","points","_p","_mSampleValues","_precomputed","get","mX1","mY1","mX2","mY2","_precompute","_getTForX","_calcSampleValues","aX","mSampleValues","intervalStart","currentSample","lastSample","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","binarySubdivide","pooling","poolFactory","initialLength","_create","_release","_length","_maxLength","pool","newElement","release","bezierLengthPool","addedLength","percents","lengths","segmentsLengthPool","totalLength","bezFunction","math","pointOnLine2D","x1","y1","x2","y2","x3","y3","det1","getBezierLength","pt1","pt2","pt3","pt4","ptCoord","perc","ptDistance","curveSegments","point","lastPoint","lengthData","BezierData","segmentLength","PointData","partial","partialLength","buildBezierData","storedData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","dir","bezierSegmentPoints","getSegmentsLength","shapeData","segmentsLength","pathV","pathO","pathI","getNewSegment","startPerc","endPerc","t0","t1","u0","u1","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","getPointInSegment","percent","pointOnLine3D","z1","z2","z3","diffDist","dist1","dist2","dist3","bez","PropertyFactory","initFrame","mathAbs","interpolateValue","frameNum","caching","newValue","offsetTime","propType","pv","keyData","nextKeyData","keyframeMetadata","fnc","iterationIndex","lastIndex","keyframes","keyframesMetadata","endValue","nextKeyTime","keyTime","to","ti","ind","__fnct","getBezierEasing","n","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","sh","out","quat","qx","qy","qz","qw","heading","atan2","attitude","asin","bank","quaternionToEuler","omega","cosom","sinom","scale0","scale1","ax","ay","az","aw","bx","by","bz","bw","acos","sin","slerp","createQuaternion","values","c1","cos","c2","c3","s1","s2","s3","getValueAtCurrentTime","renderedFrame","endTime","_caching","renderResult","setVValue","multipliedValue","mult","_mdf","processEffectsSequence","frameId","effectsSequence","lock","_isFirstFrame","finalValue","kf","addEffect","effectFunction","addDynamicProperty","ValueProperty","vel","getValue","MultiDimensionalProperty","KeyframedValueProperty","KeyframedMultidimensionalProperty","arrLen","getProp","DynamicPropertyContainer","dynamicProperties","_isAnimated","iterateDynamicProperties","initDynamicPropertyContainer","pointPool","ShapePath","setPathData","setLength","doubleArrayLength","setXYAt","setTripleAt","vX","vY","oX","oY","iX","iY","reverse","newPath","vertices","outPoints","inPoints","cnt","shapePool","shapePath","clone","shape","cloned","ShapeCollection","addShape","releaseShapes","shapeCollectionPool","newShapeCollection","shapeCollection","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","paths","localShapeCollection","shape1","shape2","shapesEqual","ShapeProperty","reset","KeyframedShapeProperty","EllShapeProperty","cPoint","EllShapePropertyFactory","convertEllToPath","p0","p1","s0","_cw","_v","StarShapeProperty","StarShapePropertyFactory","sy","ir","is","convertToPath","convertStarToPath","convertPolygonToPath","or","os","rad","roundness","perimSegment","numPts","angle","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapeProperty","RectShapePropertyFactory","convertRectToPath","v0","v1","Matrix","_cos","_sin","_tan","tan","_rnd","rotate","mCos","mSin","_t","rotateX","rotateY","rotateZ","shear","sx","skew","skewFromAxis","scale","sz","setTransform","l","m","translate","tx","tz","transform","a2","b2","d2","e2","f2","g2","h2","i2","j2","k2","l2","m2","n2","o2","p2","_identityCalculated","a1","b1","d1","e1","f1","g1","h1","i1","j1","k1","l1","m1","n1","o1","isIdentity","_identity","equals","matr","cloneFromProps","applyToPoint","z","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","_typeof$3","lottie","setLocation","href","setSubframeRendering","setPrefix","prefix","setQuality","inBrowser","installPlugin","plugin","getFactory","checkReady","readyStateCheckInterval","getQueryVariable","variable","vars","queryString","pair","decodeURIComponent","useWebWorker","setIDPrefix","__getFactory","version","scripts","myScript","exports","define","ShapeModifiers","modifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","PuckerAndBloatModifier","initModifierProperties","addShapeToModifier","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","processShapes","shapePaths","_s","totalShapeLength","edges","newShapesData","addShapes","lastShape","pop","addPaths","newPaths","addSegment","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","amount","processPath","centerPoint","pathLength","clonedPath","TransformPropertyFactory","defaultVector","TransformProperty","pre","appliedTransformations","px","py","pz","rx","ry","rz","_isDirty","applyToMatrix","mat","forceRender","precalculateMatrix","autoOriented","v2","getValueAtTime","autoOrient","_addDynamicProperty","getTransformProperty","RepeaterModifier","RoundCornersModifier","floatEqual","floatZero","lerp","lerpPoint","quadRoots","singleRoot","delta","polynomialCoefficients","p3","singlePoint","PolynomialBezier","linearize","pointEqual","coeffx","coeffy","extrema","intersectData","t2","box","boundingBox","cx","cy","splitData","boxIntersect","intersectsImpl","depth","tolerance","intersections","maxRecursion","d1s","d2s","crossProduct","lineIntersection","start1","end1","start2","end2","v3","v4","polarOffset","pointDistance","hypot","ZigZagModifier","setPoint","outputBezier","amplitude","outAmplitude","inAmplitude","angO","angI","getPerpendicularVector","vector","rot","getProjectingAngle","cur","prevIndex","nextIndex","pVector","zigZagCorner","frequency","pointType","prevPoint","nextPoint","prevDist","nextDist","zigZagSegment","dist","normalAngle","linearOffset","offsetSegment","p1a","p1b","p2b","p2a","joinLines","seg1","seg2","lineJoin","miterLimit","angleOut","tangentAngle","angleIn","center","radius","intersection","getIntersection","intersect","pruneSegmentIntersection","outa","outb","pruneIntersections","offsetSegmentSplit","right","mid","flex","inflectionPoints","OffsetPathModifier","getFontProperties","fontData","styles","fStyle","fWeight","toLowerCase","weight","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","matrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","unshift","resetElements","elements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","items","itemsTransform","cont","hasReloaded","copies","group","ix","reloadShapes","elems","transformData","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","rd","currentV","currentI","currentO","closerV","distance","newPosPerc","derivative","denom","tcusp","square","root","p10","p11","p20","p21","bounds","bottom","other","shapeSegmentInverted","pointsType","count","ml","lj","inputBezier","multiSegments","lastSeg","multiSegment","FontManager","maxWaitingTime","emptyChar","w","size","combinedCharacters","surrogateModifiers","zeroWidthJoiner","setUpNode","font","family","parentNode","fontFamily","node","fontSize","fontVariant","fontStyle","fontWeight","letterSpacing","offsetWidth","familyArray","enabledFamilies","trimFontOptions","parent","createHelper","def","helper","engine","fontProps","tHelper","fFamily","textContent","fClass","tCanvasHelper","OffscreenCanvas","measureText","text","getComputedTextLength","Font","typekitLoaded","_warned","Date","now","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","isModifier","firstCharCode","secondCharCode","sum","isZeroWidthJoiner","isCombinedCharacter","_char3","fontPrototype","found","ch","list","cache","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","loaded","monoCase","sansCase","fPath","fOrigin","querySelectorAll","rel","sc","getCharData","_char","charCodeAt","console","warn","getFontByName","fName","_char2","fontName","doubleSize","singleSize","loadedCount","removeChild","RenderableElement","initRenderable","isInRange","hidden","isTransparent","renderableComponents","addRenderableComponent","component","removeRenderableComponent","prepareRenderableFrame","num","checkLayerLimits","checkTransparency","finalTransform","mProp","renderConfig","hideOnTransparent","renderRenderable","sourceRectAtTime","getLayerSize","textData","getBlendMode","blendModeEnums","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","EffectsManager","effects","ef","effectElements","effectItem","GroupEffect","BaseElement","FrameElement","FootageElement","imageLoader","initBaseData","AudioElement","_isPlaying","_canPlay","_currentTime","_volumeMultiplier","_previousVolume","_placeholder","lv","au","BaseRenderer","TransformElement","MaskElement","maskElement","viewData","solidPath","rect","expansor","feMorph","properties","currentMasks","layerId","maskType","maskRef","getShapeProp","lastPath","filterID","expan","lastOperator","filterId","lastRadius","mask","createLayerSolidPath","invRect","drawPath","maskedElement","eff","checkMasks","LayerExpressionInterface","EffectsExpressionInterface","ShapeExpressionInterface","TextExpressionInterface","CompExpressionInterface","layerInterface","maskManager","registerMaskInterface","effectsInterface","createEffectsInterface","registerEffectsInterface","shapeInterface","shapesData","itemsData","content","textInterface","setBlendMode","blendModeValue","bm","baseElement","layerElement","effectsManager","getType","prepareProperties","isVisible","_isParent","getBaseElement","FootageInterface","getFootageData","timeRemapped","totalVolume","volumeValue","checkLayers","buildItem","checkPendingElements","createItem","layer","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","createFootage","buildAllItems","pInterface","progressiveLoad","buildElementParenting","parentName","hierarchy","setAsParent","setHierarchy","addPendingElement","pendingElements","getElementById","pathValue","setupGlobalData","fontsContainer","compSize","initTransform","_matMdf","_opMdf","ao","renderTransform","finalMat","globalToLocal","transforms","ptNew","mHelper","getMaskProperty","isFirstFrame","getMaskelement","pathNodes","pathString","pathShapeValue","filtersFactory","filId","skipCoordinates","fil","feColorMatrix","featureSupport","svgLumaHidden","offscreenCanvas","registeredEffects","idPrefix","SVGEffects","filterManager","source","createFilter","filters","Effect","effect","countsAsEffect","registerEffect","SVGBaseElement","HierarchyElement","RenderableDOMElement","IImageElement","initElement","sourceRect","ProcessedElement","IShapeElement","initRendererElement","createContainerElements","matteElement","transformedElement","_sizeChanged","layerElementParent","td","matteMasks","gg","tt","ln","hd","cp","clipId","cpGroup","renderElement","destroyBaseElement","createRenderableComponents","renderableEffectsManager","getMatte","matteType","useElement","masker","createAlphaToLuminanceFilter","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","setMatte","initHierarchy","checkParenting","createContent","renderInnerContent","innerElem","pr","imagePreserveAspectRatio","addShapeToModifiers","shapeModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","searchProcessedElement","processedElements","addProcessedElement","lineCapEnum","lineJoinEnum","SVGShapeData","transformers","level","caches","lStr","lvl","SVGStyleData","pElem","msElem","DashProperty","dataProps","dashStr","dashArray","dashoffset","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGNoStyleData","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","gr","SVGTransformData","comparePoints","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","gf","cst","opacityId","maskId","opFill","lc","of","ms","ost","buildShapeString","_o","_i","shapeString","SVGElementsRenderer","_identityMatrix","_matrixHelper","renderContentTransform","styleData","itemData","renderNoop","renderPath","pathStringTransformed","redraw","iterations","lLen","renderFill","styleElem","renderGradientStroke","renderGradient","renderStroke","hasOpacity","attr1","attr2","cValues","oValues","ang","createRenderFunction","SVGShapeElement","stylesList","animatedContents","LetterProps","sw","fc","TextProperty","_frameId","keysIndex","canResize","minimumFontSize","currentData","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","searchProperty","completeTextData","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","setElementStyles","render","currentTransform","modifier","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","update","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","currentIndex","textKeys","buildFinalText","charCode","charactersArray","shouldCombine","charAt","newLineFlag","letters","anchorGrouping","currentSize","currentPos","currentLine","lineWidth","maxLineWidth","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","an","add","anIndexes","animatorJustifyOffset","extra","animatorData","letterData","based","animators","indexes","fh","fs","fb","rn","totalChars","newInd","currentInd","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorProp","TextSelectorPropFactory","_currentTextLength","finalS","finalE","xe","ne","sm","getMult","textProperty","easer","tot","smoothness","threshold","newCharsFlag","divisor","getTextSelectorProp","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","TextAnimatorProperty","renderType","_hasMaskedPath","_textData","_renderType","_elem","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","ITextElement","searchProperties","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","tanAngle","matrixHelper","renderedLettersCount","tLength","pi","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","letterM","letterP","defaultPropsArray","animatorFirstCharOffset","justifyOffsetMult","isNewLine","animatorOffset","atan","textAnimator","buildNewText","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","emptyShapeData","SVGTextLottieElement","textSpans","ISolidElement","NullElement","SVGRendererBase","ICompElement","SVGCompElement","supports3d","SVGRenderer","svgElement","ariaLabel","title","titleElement","titleId","description","descElement","descId","preserveAspectRatio","contentVisibility","viewBoxOnly","viewBoxSize","className","focusable","filterSize","runExpressions","destroyed","CVContextData","saved","cArrPos","cTr","cO","savedOp","ShapeTransformManager","sequences","sequenceList","transform_key_count","singleShape","textContainer","buildTextContents","textArray","textContents","currentTextContent","String","fromCharCode","buildShapeData","shapeItem","tSpan","usesGlyphs","cachedSpansLength","span","childSpan","glyph","glyphElement","_debug","tElement","justify","textBox","bbox","renderedLetter","textSpan","findIndexByInd","appendElementInPos","elementIndex","tp","matteMask","nextElement","insertBefore","setElements","getElements","destroyElements","duplicate","newLength","currentSavedOp","set","popTransform","popped","popOpacity","opacity","getTransform","getOpacity","setOpacity","addTransformSequence","sequence","processSequence","processSequences","getNewKey","lumaLoader","lumaBuffer","lumaBufferCtx","svg","loadLuma","_svg","createLumaSvgFilter","createCanvas","loadLumaCanvas","getLumaCanvas","CVEffects","CVMaskElement","hasMasks","CVBaseElement","canvasContext","beginPath","moveTo","lineTo","bezierCurveTo","save","clip","operationsMap","CVShapeData","transformsManager","styledShapes","styledShape","trNodes","CVShapeElement","CVTextElement","stroke","fill","currentRender","sWidth","fValue","CVImageElement","CVSolidElement","CanvasRendererBase","clearCanvas","context","dpr","devicePixelRatio","currentGlobalAlpha","contextData","transformMat","CVCompElement","CanvasRenderer","HBaseElement","HSolidElement","HShapeElement","shapesContainer","currentBBox","HTextElement","textPaths","isMasked","HCameraElement","pe","_prevMat","HImageElement","HybridRendererBase","threeDElements","camera","HCompElement","HybridRenderer","createElements","buffers","bufferCanvas","bufferCanvas2","_isProxy","transformCanvas","blendMode","globalCompositeOperation","hideElement","showElement","clearRect","prepareLayer","bufferCtx","drawImage","exitLayer","buffer","forceRealStack","ctxTransform","ctxOpacity","restore","transformHelper","dashResetter","preTransforms","co","wi","da","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","nodes","currentStyle","coOp","strokeStyle","grd","lineCap","setLineDash","lineDashOffset","closePath","isMain","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","createLinearGradient","createRadialGradient","addColorStop","hasFill","hasStroke","commands","pathArr","commandsCounter","lastFill","lastStroke","lastStrokeW","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","par","cProps","trProps","currentOpacity","globalAlpha","actionFlag","containerStyle","mozTransformOrigin","isDashed","elementWidth","elementHeight","elementRel","animationRel","offsetHeight","fillType","checkBlendMode","tg","transformedElementStyle","matrixValue","webkitTransform","addEffects","backgroundColor","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","item","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","shapeBoundingBox","xMax","yMax","tempBoundingBox","b2ac","calculateF","calculateBoundingBox","expandStrokeBoundingBox","widthProperty","kfw","currentBoxContains","changed","shapeStyle","shapeTransform","compW","compH","innerElemStyle","textColor","strokeWidth","lineHeight","tParent","tCont","children","tContStyle","tContTranslation","tStyle","tSpanTranslation","svgStyle","translation","textPath","margin","svgTransform","setup","perspectiveStyle","perspectiveElem","perspective","webkitPerspective","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","mRotationX","mRotationY","hasMatrixChanged","matValue","Image","imageElem","newDOMElement","ddd","addTo3dContainer","nextDOMElement","nextLayer","getThreeDContainerByPos","startPos","endPos","createThreeDContainer","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","overflow","cWidth","cHeight","floatingContainer","_createBaseContainerElements","_thisLayerFunction","defineProperty","pixelAspect","frameDuration","displayStartTime","numLayers","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","expression","MaskManagerInterface","MaskInterface","_mask","_data","_masksInterfaces","ExpressionPropertyInterface","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","property","getVelocityAtTime","numKeys","valueProp","assign","valueAtTime","speedAtTime","getSpeedAtTime","velocityAtTime","propertyGroup","defaultGetter","UnidimensionalPropertyInterface","arrValue","MultidimensionalPropertyInterface","TransformExpressionInterface","_thisFunction","rotation","xRotation","yRotation","xPosition","yPosition","zPosition","anchorPoint","_px","_py","_pz","_transformFactory","getMatrix","toWorldMat","toWorldVec","applyPoint","toWorld","fromWorldVec","invertPoint","fromWorld","fromComp","sampleImage","transformInterface","toComp","anchorPointDescriptor","defineProperties","hasParent","anchor_point","active","startTime","inPoint","outPoint","_name","propertyGroupFactory","interfaceFunction","parentPropertyGroup","PropertyInterface","propertyName","createGroupInterface","groupInterface","mn","_propertyGroup","createValueInterface","numProperties","np","enabled","en","expressionProperty","setGroupProperty","effectsData","ShapePathInterface","view","propertyIndex","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","interfaces","transformInterfaceFactory","cix","contentsInterfaceFactory","startPoint","endPoint","_dashPropertyGroup","dashOb","addPropertyToDashOb","dash","start","skewAxis","outerRadius","outerRoundness","innerRoundness","innerRadius","_interfaceFunction","_prevValue","_sourceText","sourceText","stringValue","fillColor","_typeof$2","dataInterfaceFactory","outlineInterface","currentPropertyName","currentProperty","propertyNameIndex","outlineInterfaceFactory","dataInterface","footage","getInterface","_typeof$1","seedRandom","nodecrypto","global","chunks","rngname","startdenom","significance","ARC4","keylen","me","S","copy","flatten","result","typ","mixkey","seed","smear","stringseed","tostring","options","shortseed","entropy","randomBytes","Uint8Array","crypto","msCrypto","getRandomValues","browser","plugins","screen","autoseed","arc4","prng","int32","quick","pass","is_math_call","state","initialize$2","propTypes","SHAPE","_typeof","ExpressionManager","fetch","$bm_isInstanceOfArray","isNumerable","tOfV","$bm_neg","tOfA","lenA","retArr","easeInBez","easeOutBez","easeInOutBez","tOfB","lenB","sub","mul","mod","$bm_sum","$bm_sub","$bm_mul","$bm_div","$bm_mod","clamp","mm","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","arr1","arr2","normalize","vec","rgbToHsl","hue2rgb","hslToRgb","linear","tMin","tMax","value1","value2","_tMin","rnd","createPath","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","noOp","_value","needsVelocity","_needsRandom","elemType","$bm_transform","thisProperty","loopIn","loop_in","loopOut","loop_out","smooth","fromCompToSurface","thisLayer","thisComp","scoped_bm_rt","expression_function","eval","wiggle","freq","amp","iWiggle","lenWiggle","addedAmps","periods","loopInDuration","loopOutDuration","velocity","textIndex","textTotal","selectorValue","lookAt","elem1","elem2","fVec","pitch","easeOut","val1","val2","applyEase","easeIn","ease","iKey","lenKey","nearestKey","obKey","framesToTime","fps","timeToFrames","seedrandom","randSeed","substring","posterizeTime","framesPerSecond","executeExpression","frameExpressionId","__preventDeadCodeRemoval","expressionHelpers","searchExpressions","_cachingAtTime","getStaticValueAtTime","addPropertyDecorator","durationFlag","cycleDuration","firstKeyFrame","ret","lastKeyFrame","initV","endV","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","sampleFrequency","getTransformValueAtTime","_transformCachingAtTime","anchor","rotationZ","rotationY","rotationX","orientation","positionX","positionY","positionZ","getTransformStaticValueAtTime","propertyGetProp","ShapePropertyConstructorFunction","getConstructorFunction","KeyframedShapePropertyConstructorFunction","getKeyframedConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","initIndex","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","tangentOnPath","normalOnPath","shapeValue","lastTime","propertyGetShapeProp","trims","initialize$1","addDecorator","getExpressionValue","calculateExpression","isKeyframed","hasExpressions","initialize","SVGComposableEffect","createMergeNode","resultId","ins","feMergeNode","feMerge","linearFilterValue","SVGTintFilter","linearFilter","matrixFilter","SVGFillFilter","SVGStrokeEffect","initialized","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","globalFilterSize","feGaussianBlur","feOffset","feFlood","feComposite","colorBlack","colorWhite","groupPath","elemChildren","childNodes","removeAttribute","pathMasker","dasharrayValue","getTotalLength","lineLength","units","color1","color2","color3","tableR","tableG","tableB","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","colorValue","table","outputDelta","inputDelta","col","_svgMatteSymbols","SVGMatte3Effect","filterElem","SVGGaussianBlurEffect","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","symbol","sigma","dimensions","sigmaX","sigmaY","edgeMode","module","aa","require","ca","encodeURIComponent","Set","ea","fa","ha","ia","ja","ka","la","ma","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","ra","toUpperCase","ta","pa","qa","oa","xlinkHref","ua","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","for","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","stack","match","Na","Oa","prepareStackTrace","Reflect","construct","displayName","includes","Pa","tag","Qa","$$typeof","_context","_payload","_init","Ra","Sa","Ta","nodeName","Va","_valueTracker","configurable","enumerable","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","ab","bb","db","ownerDocument","eb","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","hb","ib","jb","kb","lb","mb","nb","namespaceURI","innerHTML","valueOf","firstChild","MSApp","execUnsafeLocalFunction","lastChild","nodeType","nodeValue","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","qb","rb","sb","setProperty","tb","menuitem","area","base","br","embed","hr","input","keygen","link","meta","param","track","wbr","ub","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","flags","Wb","memoizedState","dehydrated","Xb","Zb","child","sibling","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","unstable_now","ec","unstable_getCurrentPriorityLevel","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","oc","clz32","pc","qc","log","LN2","rc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Map","Pc","Qc","Rc","Sc","delete","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","transition","fd","gd","Uc","stopPropagation","jd","kd","ld","md","nd","od","keyCode","pd","qd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","ud","detail","vd","Ad","screenX","screenY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","code","repeat","locale","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","date","datetime","email","month","number","password","range","search","tel","week","oe","qe","re","se","te","ue","ve","we","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","nextSibling","Le","contains","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","Ne","contentEditable","Oe","focusedElem","selectionRange","documentElement","selectionStart","selectionEnd","defaultView","getSelection","extend","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","scrollTop","focus","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","$e","af","bf","cf","df","ff","hf","lf","mf","nf","Ub","instance","D","has","pf","qf","rf","sf","capture","passive","J","F","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","char","ke","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","Gf","clearTimeout","Hf","Promise","Jf","queueMicrotask","resolve","then","catch","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","E","G","Vf","H","Wf","Xf","Yf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","childContextTypes","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","ug","vg","wg","xg","yg","I","zg","Ag","Bg","elementType","deletions","Cg","pendingProps","treeContext","retryLane","Dg","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","defaultProps","Mg","Ng","Og","Pg","Qg","Rg","_currentValue","Sg","childLanes","Tg","dependencies","firstContext","lanes","Ug","Vg","memoizedValue","next","Wg","Xg","Yg","interleaved","Zg","$g","ah","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","bh","eventTime","lane","dh","K","eh","gh","hh","ih","jh","Component","refs","kh","nh","isMounted","_reactInternals","enqueueSetState","L","mh","enqueueReplaceState","enqueueForceUpdate","oh","shouldComponentUpdate","isPureReactComponent","ph","contextType","updater","qh","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","rh","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","_owner","_stringRef","th","uh","vh","wh","xh","yh","implementation","zh","Ah","done","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","tagName","Jh","Kh","Lh","M","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","ReactCurrentDispatcher","Qh","Rh","N","O","P","Sh","Th","Uh","Vh","Q","Wh","Xh","Yh","Zh","$h","ai","bi","ci","baseQueue","queue","di","ei","fi","lastRenderedReducer","hasEagerState","eagerState","lastRenderedState","dispatch","gi","hi","ii","ji","ki","getSnapshot","li","mi","R","ni","lastEffect","stores","oi","qi","ri","create","deps","si","ui","vi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useCallback","useContext","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ki","message","digest","Li","Mi","Ni","WeakMap","Oi","Pi","Qi","Ri","getDerivedStateFromError","componentDidCatch","Si","componentStack","Ti","pingCache","Ui","Vi","Wi","Xi","ReactCurrentOwner","Yi","Zi","$i","aj","bj","compare","cj","dj","ej","baseLanes","cachePool","transitions","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","kj","pendingContext","mj","Aj","Bj","Cj","Dj","nj","oj","pj","fallback","qj","rj","tj","dataset","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","last","tail","tailMode","yj","Ej","Fj","Gj","wasMultiple","multiple","suppressHydrationWarning","onClick","onclick","autoFocus","createTextNode","T","Hj","Ij","Jj","Kj","U","Lj","WeakSet","V","Mj","W","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","_reactRootContainer","Xj","X","Yj","Zj","ak","onCommitFiberUnmount","componentWillUnmount","bk","ck","dk","ek","fk","isHidden","gk","hk","ik","jk","kk","lk","__reactInternalSnapshotBeforeUpdate","Wk","mk","nk","ok","pk","Y","Z","qk","rk","tk","uk","Infinity","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","timeoutHandle","Rk","Sk","Tk","Uk","Vk","mutableReadLanes","Bc","Pj","onCommitFiberRoot","mc","onRecoverableError","Xk","onPostCommitFiberRoot","Yk","Zk","al","isReactComponent","pendingChildren","bl","mutableSourceEagerHydrationData","pendingSuspenseBoundaries","el","fl","gl","hl","il","jl","zj","$k","ll","reportError","_internalRoot","nl","ol","pl","ql","sl","rl","unmount","unstable_scheduleHydration","form","tl","usingClientEntryPoint","Events","ul","findFiberByHostInstance","bundleType","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","wl","isDisabled","supportsFiber","inject","createPortal","dl","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","__self","__source","Fragment","jsx","jsxs","setState","forceUpdate","escape","_status","_result","default","Children","toArray","only","Profiler","PureComponent","StrictMode","Suspense","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createFactory","createRef","forwardRef","isValidElement","lazy","memo","startTransition","unstable_act","sortIndex","performance","setImmediate","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","delay","unstable_wrapCallback","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","amdO","getter","__esModule","definition","chunkId","all","reduce","promises","miniCssF","inProgress","dataWebpackPrefix","script","needAttach","getAttribute","charset","timeout","nc","onScriptComplete","prev","onerror","onload","doneFns","head","toStringTag","installedChunks","installedChunkData","promise","reject","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","self","_arrayLikeToArray","_unsupportedIterableToArray","minLen","from","_e","_r","_arr","_n","_d","TypeError","_jsxs","_jsx","xmlns","viewBox","clipPath","_props$className","isHeaderActive","setIsHeaderActive","_useState4","isScrolled","setIsScrolled","onScroll","scrollY","Container","logoImg","alt","icon","waysToGiveIcon","excemptionIcon","aboutUs","faqIcon","navItem","DonateBtn","encodeURI","whatsAppIcon","facebookIcon","twitterIcon","linkednInIcon","excluded","sourceKeys","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","_toConsumableArray","iter","_classCallCheck","Constructor","_toPropertyKey","arg","hint","prim","toPrimitive","res","_defineProperties","descriptor","writable","_createClass","protoProps","staticProps","isObject","ssrDocument","blur","querySelector","createEvent","initEvent","importNode","hash","host","hostname","protocol","getDocument","doc","ssrWindow","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","matchMedia","cancelAnimationFrame","getWindow","win","_assertThisInitialized","ReferenceError","_possibleConstructorReturn","_setPrototypeOf","setPrototypeOf","__proto__","_getPrototypeOf","getPrototypeOf","_isNativeReflectConstruct","sham","Proxy","Boolean","_construct","Parent","Class","Function","_wrapNativeSuper","_cache","Wrapper","Dom7","_Array","subClass","superClass","_inherits","_super","Derived","hasNativeReflectConstruct","Super","NewTarget","_createSuper","_this","proto","makeReactive","arrayFlat","arrayFilter","$","selector","html","toCreate","tempParent","qsa","uniqueArray","arrayUnique","noTrigger","shortcut","_len14","_key14","on","Methods","addClass","_len","classes","_key","classNames","_el$classList","classList","removeClass","_len2","_key2","_el$classList2","remove","hasClass","_len4","_key4","toggleClass","_len3","_key3","toggle","attrs","attrName","removeAttr","transitionDuration","_len5","_key5","eventType","targetSelector","handleLiveEvent","eventData","dom7EventData","parents","handleEvent","events","dom7LiveListeners","proxyListener","dom7Listeners","off","_len6","_key6","handlers","dom7proxy","_len9","_key9","evt","dataIndex","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","parseFloat","outerHeight","clientTop","clientLeft","scrollX","css","each","compareWith","matches","webkitMatchesSelector","msMatchesSelector","eq","returnIndex","newChild","tempDiv","prepend","nextElementSibling","nextAll","nextEls","previousElementSibling","prevAll","prevEls","closest","foundElements","methodName","support","deviceCached","_defineProperty","nextTick","getTranslate","curTransform","transformMatrix","axis","curStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","noExtend","nextSource","HTMLElement","keysArray","nextKey","desc","__swiper__","setCSSProperty","varName","varValue","animateCSSModeScroll","swiper","targetPosition","side","startPosition","wrapperEl","scrollSnapType","cssModeFrameID","isOutOfBound","animate","getTime","progress","easeProgress","currentPosition","scrollTo","getSupport","smoothScroll","touch","DocumentTouch","passiveListener","supportsPassive","opts","gestures","calcSupport","getDevice","platform","device","ios","android","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","calcDevice","getBrowser","isWebView","calcBrowser","eventsListeners","method","once","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","emit","updateSize","$el","clientWidth","clientHeight","isHorizontal","isVertical","updateSlides","getDirectionLabel","getDirectionPropertyValue","label","$wrapperEl","swiperSize","rtl","rtlTranslate","wrongRTL","isVirtual","virtual","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginBottom","marginTop","marginRight","centeredSlides","cssMode","slideSize","gridEnabled","grid","rows","initSlides","shouldResetSlideSize","slidesPerView","breakpoints","slide","updateSlide","slideStyles","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","_slide$","swiperSlideSize","slidesPerGroup","slidesPerGroupSkip","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","maxBackfaceHiddenSlides","updateAutoHeight","activeSlides","newHeight","setTransition","getSlideByIndex","visibleSlides","activeIndex","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","autoHeight","updateSlidesClasses","activeSlide","realIndex","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","slideDuplicateClass","nextSlide","prevSlide","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","skip","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","virtualTranslate","currentTranslate","setTranslate","byController","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","_wrapperEl$scrollTo","onTranslateToWrapperTransitionEnd","transitionEmit","step","transitionStart","slideTo","initial","indexAsNumber","isFinite","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","_immediateVirtual","_swiperImmediateVirtual","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","loopedSlides","slideNext","perGroup","slidesPerGroupAuto","slidesPerViewDynamic","increment","loopPreventsSlide","loopFix","_clientLeft","rewind","slidePrev","prevSnapIndex","normalizedSnapGrid","prevSnap","slideReset","slideToClosest","currentSnap","slideToIndex","loopCreate","$selector","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","loopedSlidesLimit","prependSlides","appendSlides","cloneNode","diff","loopDestroy","onTouchStart","touchEventsData","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","shadowRoot","noSwipingSelector","isTargetShadow","noSwiping","__closestFrom","assignedSlot","getRootNode","closestElement","allowClick","swipeHandler","currentY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","targetTouch","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","touchAngle","touchMoveStopPropagation","nested","startTranslate","allowMomentumBounce","grabCursor","setGrabCursor","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","touchEndTime","timeDiff","pathTree","lastClickTime","stopIndex","groupSize","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","setBreakpoint","running","paused","run","preventClicks","preventClicksPropagation","stopImmediatePropagation","dummyEventAttached","dummyEventListener","touchEvents","domMethod","swiperMethod","passiveListeners","move","cancel","updateOnWindowResize","attachEvents","detachEvents","isGridEnabled","_swiper$loopedSlides","breakpoint","getBreakpoint","breakpointsBase","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","changeDirection","isEnabled","containerEl","minRatio","sort","_points$i","addClasses","suffixes","entries","resultClasses","prepareClasses","removeClasses","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","complete","imagesToLoad","updateOnImagesReady","currentSrc","initialSlide","resizeObserver","simulateTouch","uniqueNavElements","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","eventsEmitter","moving","isLocked","cursor","unsetGrabCursor","wasLocked","lastSlideIndex","lastSlideRightEdge","extendedDefaults","Swiper","swipers","newParams","_swiper$modules","modules","__modules__","extendParams","swiperParams","defaults","passedParams","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","velocities","cls","slideEl","updates","getSlideClasses","exact","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","mounted","getWrapperSelector","getWrapper","mount","deleteInstance","cleanStyles","deleteProps","newDefaults","installModule","prototypeGroup","protoMethod","use","observer","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","contentBoxSize","contentRect","inlineSize","blockSize","observe","unobserve","observers","attach","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","childList","characterData","observeParents","observeSlideChildren","containerParents","disconnect","classesToSelector","Pagination","bulletSize","pfx","pagination","bulletElement","clickable","hideOnClick","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","hiddenClass","progressbarFillClass","progressbarOppositeClass","clickableClass","lockClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","dynamicBulletIndex","isPaginationDisabled","setSideBullets","$bulletEl","total","paginationType","firstIndex","midIndex","suffix","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","progressbarDirection","paginationHTML","numberOfBullets","checkProps","createElementIfNotDefined","targetEl","needsNavigation","needsPagination","needsScrollbar","scrollbar","uniqueClasses","unique","paramsList","calcLoopedSlides","slidesPerViewParams","breakpointOnlyParams","isChildSwiperSlide","processChildren","getChildren","slots","slot","foundSlides","updateSwiper","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","changedParams","scrollbarEl","paginationEl","updateParams","currentParams","thumbs","controller","control","useIsomorphicLayoutEffect","SwiperSlideContext","SwiperContext","_extends","_temp","externalElRef","_ref$tag","Tag","_ref$wrapperTag","wrapperTag","WrapperTag","onSwiper","eventsAssigned","containerClasses","setContainerClasses","virtualData","setVirtualData","_useState6","breakpointChanged","setBreakpointChanged","initializedRef","swiperElRef","swiperRef","oldPassedParamsRef","oldSlides","nextElRef","prevElRef","paginationElRef","scrollbarElRef","_getParams","splitEvents","allowedParams","plainObj","getParams","restProps","_getChildren","onBeforeBreakpoint","_containerClasses","initSwiper","SwiperCore","extendWith","renderExternal","renderExternalUpdate","mountSwiper","oldParams","oldChildren","getKey","addKey","oldChildrenKeys","childrenKeys","newKeys","oldKeys","newKey","oldKey","getChangedParams","parallax","renderVirtual","modifiedSlides","duplicateSlide","blankSlide","renderLoop","SwiperSlide","externalRef","_ref$className","virtualIndex","slideElRef","slideClasses","setSlideClasses","updateClasses","slideData","isActive","isDuplicate","isPrev","isNext","renderChildren","_props$id","_props$size","_props$varient","varient","_props$color","imgUrl","imgAlt","des","readMoreLink","btnLabel","btnId","ctaUrl","Button","_Fragment","SaveTaxCard","taxCardImg1","taxCardImg2","taxCardImg3","deductionImg","DeductionCard","frameBorder","allow","allowFullScreen","accordianDesRef","_accordianDesRef$curr","scrollHeight","accordians","activeItem","setActiveItem","accordian","Accordian","faqs","AccordianList","fillRule","clipRule","InstaIcon","FacebookIcon","TwitterIcon","YoutubeIcon","strokeLinecap","windowWidth","setWindowWidth","useWindowResize","isHovered","isClicked","anim_common","coinCount","onAnimEnd","coin2","onTransitionEnd","showModal","onModalClose","coinImgDesk","ModalShareIcons","pigElemREF","setIsHovered","setShowModal","setIsClicked","onCoinAnimEnd","pigElem","onPointerEnter","onPointerLeave","PigAnimGrid","PigLottie","PigCoins","Modal","anim_80TTA","anim_80CCD","anim_80D","anim_80C","anim_80EEA","anim_80G","anim_80E","Pig","Header","Banner","Pigs","Share","SaveTax","Deduction","SaveOnTax","PromoVideo","TaxDetails","Faq","Footer","Copywrite","GoToTopBtn","onPerfEntry","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","App","reportWebVitals"],"sourceRoot":""}