{"version":3,"sources":["../node_modules/react/jsx-runtime.js","../node_modules/react/index.js","../../modules/BrowserRouter.js","../../modules/HashRouter.js","../../modules/utils/locationUtils.js","../../modules/Link.js","../../modules/NavLink.js","../../modules/miniCreateReactContext.js","../../modules/createContext.js","../../modules/createNamedContext.js","../../modules/HistoryContext.js","../../modules/RouterContext.js","../../modules/Router.js","../../modules/MemoryRouter.js","../../modules/Lifecycle.js","../../modules/matchPath.js","../../modules/Route.js","../../modules/StaticRouter.js","../../modules/Switch.js","../../modules/withRouter.js","../../modules/hooks.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/history/esm/history.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/react-lottie/dist/index.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/core-js/library/modules/_core.js","../node_modules/core-js/library/modules/_global.js","../node_modules/core-js/library/modules/_descriptors.js","../node_modules/core-js/library/modules/_export.js","../node_modules/core-js/library/modules/_object-dp.js","../node_modules/core-js/library/modules/_has.js","../node_modules/prop-types/index.js","../node_modules/react-dom/index.js","../node_modules/core-js/library/modules/_hide.js","../node_modules/core-js/library/modules/_is-object.js","../node_modules/core-js/library/modules/_fails.js","../node_modules/core-js/library/modules/_to-iobject.js","../node_modules/core-js/library/modules/_wks.js","../node_modules/core-js/library/modules/_an-object.js","../node_modules/react-slick/lib/utils/innerSliderUtils.js","../node_modules/webpack/buildin/global.js","../node_modules/core-js/library/modules/_property-desc.js","../node_modules/core-js/library/modules/_object-keys.js","../node_modules/core-js/library/modules/_library.js","../node_modules/core-js/library/modules/_uid.js","../node_modules/core-js/library/modules/_object-pie.js","../node_modules/core-js/library/modules/_to-object.js","../node_modules/classnames/index.js","../node_modules/react-slick/lib/index.js","../node_modules/object-assign/index.js","../node_modules/core-js/library/modules/_to-primitive.js","../node_modules/core-js/library/modules/_defined.js","../node_modules/core-js/library/modules/_to-integer.js","../node_modules/core-js/library/modules/_shared-key.js","../node_modules/core-js/library/modules/_shared.js","../node_modules/core-js/library/modules/_enum-bug-keys.js","../node_modules/core-js/library/modules/_object-gops.js","../node_modules/core-js/library/modules/_iterators.js","../node_modules/core-js/library/modules/_object-create.js","../node_modules/core-js/library/modules/_set-to-string-tag.js","../node_modules/core-js/library/modules/_wks-ext.js","../node_modules/core-js/library/modules/_wks-define.js","../node_modules/path-to-regexp/index.js","../node_modules/react-ga4/dist/index.js","../node_modules/react-is/index.js","../node_modules/core-js/library/modules/_ctx.js","../node_modules/core-js/library/modules/_ie8-dom-define.js","../node_modules/core-js/library/modules/_dom-create.js","../node_modules/core-js/library/modules/_object-keys-internal.js","../node_modules/core-js/library/modules/_iobject.js","../node_modules/core-js/library/modules/_cof.js","../node_modules/core-js/library/modules/_object-gpo.js","../node_modules/babel-runtime/helpers/typeof.js","../node_modules/core-js/library/modules/_iter-define.js","../node_modules/core-js/library/modules/_redefine.js","../node_modules/core-js/library/modules/_object-gopn.js","../node_modules/core-js/library/modules/_object-gopd.js","../node_modules/enquire.js/src/Util.js","../node_modules/aos/dist/aos.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/react-cookie-consent/build/index.js","../node_modules/react-gtm-module/dist/index.js","../node_modules/cruip-js-toolkit/lib/focusHandling.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/path-to-regexp/node_modules/isarray/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/babel-runtime/helpers/extends.js","../node_modules/babel-runtime/core-js/object/assign.js","../node_modules/core-js/library/fn/object/assign.js","../node_modules/core-js/library/modules/es6.object.assign.js","../node_modules/core-js/library/modules/_a-function.js","../node_modules/core-js/library/modules/_object-assign.js","../node_modules/core-js/library/modules/_array-includes.js","../node_modules/core-js/library/modules/_to-length.js","../node_modules/core-js/library/modules/_to-absolute-index.js","../node_modules/babel-runtime/core-js/object/get-prototype-of.js","../node_modules/core-js/library/fn/object/get-prototype-of.js","../node_modules/core-js/library/modules/es6.object.get-prototype-of.js","../node_modules/core-js/library/modules/_object-sap.js","../node_modules/babel-runtime/helpers/classCallCheck.js","../node_modules/babel-runtime/helpers/createClass.js","../node_modules/babel-runtime/core-js/object/define-property.js","../node_modules/core-js/library/fn/object/define-property.js","../node_modules/core-js/library/modules/es6.object.define-property.js","../node_modules/babel-runtime/helpers/possibleConstructorReturn.js","../node_modules/babel-runtime/core-js/symbol/iterator.js","../node_modules/core-js/library/fn/symbol/iterator.js","../node_modules/core-js/library/modules/es6.string.iterator.js","../node_modules/core-js/library/modules/_string-at.js","../node_modules/core-js/library/modules/_iter-create.js","../node_modules/core-js/library/modules/_object-dps.js","../node_modules/core-js/library/modules/_html.js","../node_modules/core-js/library/modules/web.dom.iterable.js","../node_modules/core-js/library/modules/es6.array.iterator.js","../node_modules/core-js/library/modules/_add-to-unscopables.js","../node_modules/core-js/library/modules/_iter-step.js","../node_modules/babel-runtime/core-js/symbol.js","../node_modules/core-js/library/fn/symbol/index.js","../node_modules/core-js/library/modules/es6.symbol.js","../node_modules/core-js/library/modules/_meta.js","../node_modules/core-js/library/modules/_enum-keys.js","../node_modules/core-js/library/modules/_is-array.js","../node_modules/core-js/library/modules/_object-gopn-ext.js","../node_modules/core-js/library/modules/es7.symbol.async-iterator.js","../node_modules/core-js/library/modules/es7.symbol.observable.js","../node_modules/babel-runtime/helpers/inherits.js","../node_modules/babel-runtime/core-js/object/set-prototype-of.js","../node_modules/core-js/library/fn/object/set-prototype-of.js","../node_modules/core-js/library/modules/es6.object.set-prototype-of.js","../node_modules/core-js/library/modules/_set-proto.js","../node_modules/babel-runtime/core-js/object/create.js","../node_modules/core-js/library/fn/object/create.js","../node_modules/core-js/library/modules/es6.object.create.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/webpack/buildin/amd-options.js","../node_modules/react-slick/lib/slider.js","../node_modules/react-slick/lib/inner-slider.js","../node_modules/react-slick/lib/initial-state.js","../node_modules/lodash.debounce/index.js","../node_modules/react-slick/lib/track.js","../node_modules/react-slick/lib/dots.js","../node_modules/react-slick/lib/arrows.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/json2mq/index.js","../node_modules/string-convert/camel2hyphen.js","../node_modules/react-slick/lib/default-props.js","../node_modules/enquire.js/src/index.js","../node_modules/enquire.js/src/MediaQueryDispatch.js","../node_modules/enquire.js/src/MediaQuery.js","../node_modules/enquire.js/src/QueryHandler.js","../node_modules/react-ga4/dist/ga4.js","../node_modules/react-ga4/dist/gtag.js","../node_modules/react-ga4/dist/format.js","../node_modules/react-gtm-module/dist/TagManager.js","../node_modules/react-gtm-module/dist/Snippets.js","../node_modules/react-gtm-module/dist/utils/warn.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/utils/reflow.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/react-transition-group/esm/CSSTransition.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/hasClass.js"],"names":["module","exports","require","BrowserRouter","history","createHistory","props","render","this","children","React","Component","resolveToLocation","to","currentLocation","normalizeToLocation","createLocation","forwardRefShim","C","forwardRef","LinkAnchor","forwardedRef","innerRef","navigate","onClick","rest","target","event","ex","preventDefault","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey","isModifiedEvent","ref","Link","component","replace","RouterContext","Consumer","context","location","href","createHref","isDuplicateNavigation","createPath","push","createElement","ariaCurrent","activeClassName","activeStyle","classNameProp","className","exact","isActiveProp","isActive","locationProp","sensitive","strict","styleProp","style","toLocation","path","pathname","escapedPath","match","matchPath","classnames","filter","i","join","joinClassnames","MAX_SIGNED_31_BIT_INT","commonjsGlobal","globalThis","window","global","createContext","defaultValue","calculateChangedBits","contextProp","key","getUniqueId","Provider","emitter","value","handlers","on","handler","off","h","get","set","newValue","changedBits","forEach","createEventEmitter","getChildContext","componentWillReceiveProps","nextProps","oldValue","x","y","childContextTypes","PropTypes","object","isRequired","observedBits","state","getValue","onUpdate","setState","undefined","componentDidMount","componentWillUnmount","Array","isArray","contextTypes","createNamedContext","name","displayName","historyContext","Router","_isMounted","_pendingLocation","staticContext","unlisten","listen","computeRootMatch","url","params","isExact","HistoryContext","cache","cacheLimit","cacheCount","options","concat","reduce","matched","cacheKey","end","pathCache","keys","result","regexp","pathToRegexp","compilePath","exec","values","memo","index","Route","computedMatch","Children","count","isEmptyChildren","addLeadingSlash","charAt","stripBasename","basename","base","indexOf","substr","length","createURL","staticHandler","methodName","invariant","noop","Switch","element","child","isValidElement","from","cloneElement","withRouter","wrappedComponentRef","remainingProps","WrappedComponent","hoistStatics","useContext","useLocation","_extends","Object","assign","bind","n","e","arguments","t","r","hasOwnProperty","call","apply","_setPrototypeOf","setPrototypeOf","__proto__","_inheritsLoose","o","prototype","create","constructor","isAbsolute","spliceOne","list","k","pop","resolvePathname","hasTrailingSlash","toParts","split","fromParts","isToAbs","isFromAbs","mustEndAbs","last","up","part","unshift","valueOf","obj","valueEqual","a","b","every","item","aValue","bValue","stripLeadingSlash","prefix","toLowerCase","hasBasename","stripTrailingSlash","slice","search","hash","hashIndex","searchIndex","parsePath","decodeURI","URIError","locationsAreEqual","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","callback","appendListener","fn","listener","notifyListeners","_len","args","_key","canUseDOM","document","getConfirmation","message","confirm","PopStateEvent","HashChangeEvent","getHistoryState","createBrowserHistory","globalHistory","canUseHistory","ua","navigator","userAgent","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","getDOMLocation","historyState","_ref","_window$location","createKey","Math","random","toString","transitionManager","nextState","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","ok","fromLocation","toIndex","allKeys","fromIndex","delta","go","revertPop","initialLocation","listenerCount","checkDOMListeners","addEventListener","removeEventListener","isBlocked","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","substring","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","lastIndexOf","baseTag","querySelector","getAttribute","pushHashPath","nextPaths","clamp","lowerBound","upperBound","min","max","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entries","map","entry","nextIndex","nextEntries","splice","canGo","isProduction","process","condition","Error","provided","defineProperty","_extends3","_interopRequireDefault","_getPrototypeOf2","_classCallCheck3","_createClass3","_possibleConstructorReturn3","_inherits3","_react2","_propTypes2","_lottieWeb2","__esModule","default","Lottie","_React$Component","_temp","_this","_ret","handleClickToPause","anim","isPaused","play","pause","eventListeners","loop","autoplay","animationData","rendererSettings","segments","container","el","renderer","loadAnimation","registerEvents","deRegisterEvents","destroy","isStopped","stop","playSegments","setSpeed","setDirection","speed","direction","_this2","eventListener","eventName","_this3","_this4","_props2","width","height","ariaRole","ariaLabel","isClickToPauseDisabled","title","getSize","initial","lottieStyles","overflow","margin","outline","onClickHandler","c","role","tabIndex","propTypes","arrayOf","oneOfType","string","number","bool","defaultProps","_objectWithoutPropertiesLoose","core","version","__e","self","Function","__g","ctx","hide","has","PROTOTYPE","$export","type","source","own","out","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","P","IS_BIND","B","IS_WRAP","W","expProto","virtual","R","U","anObject","IE8_DOM_DEFINE","toPrimitive","dP","f","O","Attributes","TypeError","it","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","err","console","error","createDesc","IObject","defined","store","uid","Symbol","USE_SYMBOL","isObject","checkSpecKeys","checkNavigable","changeSlide","canGoNext","swipeStart","swipeMove","swipeEnd","slidesOnRight","slidesOnLeft","slideHandler","siblingDirection","safePreventDefault","lazyStartIndex","lazySlidesOnRight","lazySlidesOnLeft","lazyEndIndex","keyHandler","initializedState","getWidth","getTrackLeft","getTrackCSS","getTrackAnimateCSS","getTotalSlides","getSwipeDirection","getSlideCount","getRequiredLazySlides","getPreClones","getPostClones","getOnDemandLazySlides","getNavigableIndexes","getHeight","extractObject","_react","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","configurable","writable","includes","_reactName","spec","onDemandSlides","startIndex","endIndex","slideIndex","lazyLoadedList","requiredSlides","currentSlide","centerMode","floor","slidesToShow","parseInt","centerPadding","elem","offsetWidth","offsetHeight","touchObject","xDist","yDist","swipeAngle","verticalSwiping","startX","curX","startY","curY","atan2","round","PI","abs","infinite","slideCount","newObject","slideWidth","listNode","listRef","listWidth","ceil","trackNode","trackRef","node","trackWidth","vertical","centerPaddingAdj","slideHeight","listHeight","initialSlide","rtl","slidesToLoad","autoplaying","waitForAnimate","animating","fade","lazyLoad","slidesToScroll","useCSS","finalSlide","animationLeft","finalLeft","animationSlide","targetSlide","trackStyle","left","swipeLeft","indexOffset","previousInt","slideOffset","previousTargetSlide","Number","accessibility","tagName","keyCode","swipe","draggable","dragging","touches","pageX","clientX","pageY","clientY","scrolling","swipeToSlide","edgeFriction","edgeDragged","onEdge","swiped","swiping","swipeEvent","curLeft","swipeLength","sqrt","pow","verticalSwipeLength","positionOffset","dotCount","swipeDirection","touchSwipeLength","touchThreshold","onSwipe","minSwipe","newSlide","activeSlide","currentLeft","breakpoint","counter","indexes","navigables","prevNavigable","centerOffset","swipedSlide","slickList","slides","querySelectorAll","slide","offsetTop","offsetLeft","currentIndex","dataset","keysArray","trackHeight","trackChildren","opacity","transition","WebkitTransition","useTransform","WebkitTransform","transform","msTransform","attachEvent","marginTop","marginLeft","cssEase","unslick","targetLeft","variableWidth","slidesToOffset","targetSlideIndex","trackElem","childNodes","right","_ref2","g","bitmap","$keys","enumBugKeys","id","px","propertyIsEnumerable","hasOwn","classNames","classes","arg","appendClass","parseValue","newClass","_default","propIsEnumerable","test1","String","getOwnPropertyNames","test2","fromCharCode","test3","letter","shouldUseNative","val","toObject","s","isNaN","shared","SHARED","mode","copyright","dPs","IE_PROTO","Empty","createDict","iframeDocument","iframe","display","appendChild","src","contentWindow","open","write","lt","close","Properties","def","TAG","tag","stat","LIBRARY","wksExt","$Symbol","isarray","parse","compile","str","tokensToFunction","tokensToRegExp","PATH_REGEXP","RegExp","res","tokens","defaultDelimiter","delimiter","m","escaped","offset","next","capture","group","modifier","asterisk","partial","repeat","optional","pattern","prevText","escapeGroup","restrictBacktrack","escapeString","encodeURIComponentPretty","encodeURI","charCodeAt","toUpperCase","matches","flags","opts","data","encode","pretty","encodeURIComponent","token","segment","JSON","stringify","j","test","attachKeys","re","route","endsWithDelimiter","groups","regexpToRegexp","parts","arrayToRegexp","stringToRegexp","_typeof","iterator","ReactGAImplementation","_ga","nodeInterop","_getRequireWildcardCache","newObj","hasPropertyDescriptor","desc","_interopRequireWildcard","WeakMap","cacheBabelInterop","cacheNodeInterop","GA4","aFunction","that","is","toIObject","arrayIndexOf","names","cof","ObjectProto","getPrototypeOf","_iterator2","_symbol2","redefine","Iterators","$iterCreate","setToStringTag","ITERATOR","BUGGY","KEYS","VALUES","returnThis","Base","NAME","Constructor","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","kind","proto","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","hiddenKeys","pIE","gOPD","isFunction","each","collection","NaN","u","d","l","p","Date","now","v","setTimeout","w","leading","maxWait","trailing","cancel","clearTimeout","flush","E","N","z","A","q","L","T","M","D","H","$","addedNodes","removedNodes","aos","Y","MutationObserver","WebKitMutationObserver","MozMutationObserver","_","isSupported","ready","observe","documentElement","childList","subtree","I","K","J","Q","vendor","opera","mobile","phone","V","ie11","createEvent","initCustomEvent","detail","CustomEvent","dispatchEvent","X","position","animated","classList","remove","animatedClassNames","mirror","once","in","add","pageYOffset","Z","scrollLeft","scrollTop","offsetParent","top","ee","te","useClassNames","animatedClassName","initClassName","innerHeight","anchorPlacement","ne","oe","ie","ae","delay","easing","duration","disable","startEvent","disableMutationObserver","throttleDelay","debounceDelay","all","atob","ce","se","de","ue","removeAttribute","tablet","init","info","setAttribute","readyState","refresh","refreshHard","reactIs","REACT_STATICS","contextType","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","decodeURIComponent","defaults","expires","toUTCString","escape","cookie","read","getJSON","withConverter","resetWarningCache","array","func","symbol","any","elementType","instanceOf","objectOf","oneOf","shape","checkPropTypes","toStringTag","Cookies","OPTIONS","SAME_SITE_OPTIONS","VISIBLE_OPTIONS","getCookieConsentValue","resetCookieConsentValue","ReferenceError","TOP","BOTTOM","NONE","STRICT","LAX","HIDDEN","SHOW","BY_COOKIE_VALUE","wrapper","Reflect","construct","sham","Proxy","Boolean","acceptOnScrollPercentage","body","clientHeight","accept","acceptOnScroll","handleScroll","visible","alignItems","background","color","flexWrap","justifyContent","zIndex","buttonStyle","border","borderRadius","boxShadow","cursor","flex","padding","declineButtonStyle","contentStyle","overlayStyle","backgroundColor","debug","getCookieValue","passive","removeScrollListener","cookieName","cookieValue","hideOnAccept","onAccept","setCookie","acceptOnOverlayClick","onOverlayClick","declineCookieValue","hideOnDecline","onDecline","setDeclineCookie","extraCookieOptions","sameSite","cookieSecurity","protocol","secure","disableStyles","buttonText","declineButtonText","containerClasses","contentClasses","buttonClasses","buttonWrapperClasses","declineButtonClasses","buttonId","declineButtonId","disableButtonStyles","enableDeclineButton","flipButtons","ButtonComponent","overlay","overlayClasses","ariaAcceptLabel","ariaDeclineLabel","customContainerAttributes","customContentAttributes","customButtonProps","customDeclineButtonProps","customButtonWrapperAttributes","bottom","decline","reverse","overlayClick","_TagManager","_TagManager2","focusHandling","prop","focusEls","resetFocusEls","outlineStyle","focusTab","setProperty","detectClick","detectTab","Fragment","StrictMode","Profiler","Suspense","for","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","refs","updater","isReactComponent","forceUpdate","isPureReactComponent","current","__self","__source","$$typeof","_owner","done","_status","_result","then","ReactCurrentDispatcher","ReactCurrentBatchConfig","ReactCurrentOwner","IsSomeRendererActing","toArray","only","PureComponent","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","_context","createFactory","createRef","lazy","_payload","_init","useCallback","useDebugValue","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","aa","ba","Set","ca","da","ea","fa","ha","ia","ja","ka","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","oa","pa","qa","ma","na","la","setAttributeNS","xlinkHref","ra","sa","ta","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ma","Ka","La","Na","stack","trim","Oa","Pa","prepareStackTrace","Qa","_render","Ra","Sa","Ta","nodeName","Va","_valueTracker","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","Ya","defaultChecked","_wrapperState","initialChecked","Za","initialValue","controlled","$a","ab","bb","cb","ownerDocument","eb","db","fb","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","hb","ib","jb","textContent","kb","lb","mb","nb","ob","namespaceURI","innerHTML","firstChild","removeChild","MSApp","execUnsafeLocalFunction","pb","lastChild","nodeType","nodeValue","qb","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","order","orphans","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","rb","sb","tb","ub","menuitem","area","br","col","embed","hr","img","input","keygen","link","meta","param","track","wbr","vb","wb","xb","srcElement","correspondingUseElement","parentNode","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","onError","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","return","$b","memoizedState","dehydrated","ac","cc","sibling","bc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","nc","Map","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","nativeEvent","targetContainers","sc","delete","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","priority","hydrate","containerInfo","xc","yc","shift","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","animation","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","log","LN2","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","uc","jd","kd","ld","md","nd","od","charCode","pd","qd","rd","_targetInst","currentTarget","isDefaultPrevented","returnValue","isPropagationStopped","stopPropagation","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","td","ud","view","vd","Ad","screenX","screenY","getModifierState","zd","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","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","locale","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","be","documentMode","fe","ge","he","le","date","datetime","email","month","password","range","tel","text","time","week","me","pe","qe","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","De","Ee","Fe","He","Ie","Je","Ke","Le","nextSibling","Me","contains","compareDocumentPosition","Ne","HTMLIFrameElement","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","start","selectionStart","selectionEnd","anchorNode","defaultView","getSelection","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","Yb","instance","$e","af","bf","cf","df","Nb","ef","ff","parentWindow","gf","hf","je","char","ke","jf","kf","lf","mf","autoFocus","nf","__html","of","pf","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","Gf","Hf","If","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","childLanes","tg","dependencies","firstContext","lanes","ug","vg","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","pending","effects","yg","zg","eventTime","lane","payload","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","_reactInternals","Hg","Ig","Jg","Lg","shouldComponentUpdate","Mg","Ng","UNSAFE_componentWillReceiveProps","Og","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Pg","Qg","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","Vg","implementation","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","fh","gh","hh","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","ph","qh","rh","sh","th","uh","_workInProgressVersionPrimary","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","queue","Ih","Jh","Kh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","dispatch","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","getSnapshot","subscribe","setSnapshot","Oh","Ph","Qh","Rh","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","fi","gi","hi","ii","ji","ki","li","mi","baseLanes","ni","oi","pi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","qi","ri","pendingContext","Bi","Ci","Di","Ei","si","retryLane","ti","fallback","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","wi","xi","yi","zi","isBackwards","rendering","renderingStartTime","tail","tailMode","Ai","Fi","Gi","wasMultiple","multiple","onclick","size","createElementNS","createTextNode","Hi","Ii","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","focus","aj","bj","onCommitFiberUnmount","cj","dj","ej","fj","gj","hj","insertBefore","_reactRootContainer","ij","jj","kj","lj","mj","nj","oj","pj","qj","rj","sj","tj","uj","vj","Infinity","wj","ck","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","extend","createRange","setStart","removeAllRanges","addRange","setEnd","onCommitFiberRoot","fk","gk","ik","pendingChildren","jk","mutableSourceEagerHydrationData","lk","mk","nk","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","hasAttribute","sk","uk","kk","hk","unstable_observedBits","unmount","form","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","yk","isDisabled","supportsFiber","inject","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","performance","MessageChannel","unstable_forceFrameRate","cancelAnimationFrame","requestAnimationFrame","port2","port1","onmessage","postMessage","sortIndex","startTime","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","jsx","jsxs","arr","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","shim","propName","componentName","propFullName","secret","getShim","ReactPropTypes","bigint","_assign","_assign2","DESCRIPTORS","getKeys","gOPS","$assign","aLen","getSymbols","isEnum","toLength","toAbsoluteIndex","IS_INCLUDES","$this","toInteger","$getPrototypeOf","fails","KEY","exp","_defineProperty2","protoProps","staticProps","$Object","_typeof2","_typeof3","$at","iterated","_t","_i","point","TO_STRING","pos","TO_STRING_TAG","DOMIterables","Collection","addToUnscopables","step","_k","Arguments","META","$fails","wks","wksDefine","enumKeys","_create","gOPNExt","$GOPD","$GOPS","$DP","gOPN","$JSON","_stringify","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","USE_NATIVE","QObject","setter","findChild","setSymbolDesc","protoDesc","wrap","isSymbol","$defineProperty","$defineProperties","$propertyIsEnumerable","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","es6Symbols","wellKnownSymbols","keyFor","useSetter","useSimple","FAILS_ON_PRIMITIVES","replacer","$replacer","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","NEED","fastKey","getWeak","onFreeze","windowNames","getWindowNames","_setPrototypeOf2","_create2","subClass","superClass","check","buggy","factory","svgNS","locationHref","_useWebWorker","initialDefaultFrame","setWebWorker","flag","getWebWorker","setLocationHref","getLocationHref","createTag","extendPrototype","sources","destination","sourcePrototype","len","attr","getDescriptor","createProxyFunction","ProxyFunction","audioControllerFactory","AudioController","audioFactory","audios","_volume","_isMuted","addAudio","audio","resume","setRate","rateValue","createAudio","assetPath","Howl","isPlaying","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","createTypedArray","createRegularArray","Uint8ClampedArray","Float32Array","Int16Array","createSizedArray","_typeof$6","subframeEnabled","expressionsPlugin","expressionsInterfaces","idPrefix$1","isSafari","_shouldRoundValues","bmPow","bmSqrt","bmFloor","bmMax","bmMin","BMMath","ProjectInterface$1","propertyNames","absArr","defaultCurveSegments","degToRads","roundCorner","roundValues","bmRnd","styleDiv","transformOrigin","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","currentTime","totalTime","frameMultiplier","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","firstFrame","totalFrames","BMDestroyEvent","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","createElementID","_count","HSVtoRGB","RGBtoHSV","addSaturationToRGB","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","hex","colorMap","setSubframeEnabled","getSubframeEnabled","setExpressionsPlugin","getExpressionsPlugin","setExpressionInterfaces","getExpressionInterfaces","setDefaultCurveSegments","getDefaultCurveSegments","setIdPrefix","getIdPrefix","createNS","_typeof$5","dataManager","workerFn","workerInstance","_counterId","processes","workerProxy","_workerSelf","setupWorker","Worker","Blob","blob","URL","createObjectURL","createWorker","completeLayers","layers","comps","layerData","jLen","kLen","completed","hasMask","maskProps","masksProperties","pt","convertPathsToAbsoluteValues","ty","findCompLayers","refId","completeShapes","shapes","completeText","comp","findComp","__used","ks","checkVersion","minimum","animVersionString","animVersion","checkText","minimumVersion","updateTextLayer","textLayer","documentData","iterateLayers","assets","checkChars","chars","charData","ip","op","st","sr","checkPathProperties","pathData","checkColors","iterateShapes","checkShapes","completeClosingShapes","closed","cl","moduleOb","__complete","completeChars","dataFunctionManager","assetLoader","formatResponse","xhr","contentTypeHeader","getResponseHeader","responseType","response","responseText","load","fullPath","errorCallback","XMLHttpRequest","onreadystatechange","status","send","completeData","onComplete","createProcess","processId","origin","loadData","completeAnimation","ImagePreloader","proxyImage","canvas","getContext","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","getAssetsPath","assetData","assetsPath","originalPath","imagePath","testImageLoaded","intervalId","setInterval","getBBox","_imageLoaded","clearInterval","createFootageData","footageData","_footageLoaded","ImagePreloaderFactory","images","loadAssets","_createImageData","setAssetsPath","setPath","loadedImages","loadedFootages","getAsset","createImgData","crossOrigin","createImageData","_elementHelper","append","setCacheType","elementHelper","BaseEvent","triggerEvent","_cbs","callbacks","markerParser","parsePayloadLines","line","lines","keysCount","_markers","markers","_marker","markerData","tm","dr","cm","__","ProjectInterface","registerComposition","compositions","_thisProjectFunction","nm","prepareFrame","xt","currentFrame","compInterface","renderers","registerRenderer","getRenderer","getRegisteredRenderer","_typeof$4","AnimationItem","isLoaded","currentRawFrame","frameRate","frameMult","playSpeed","playDirection","playCount","animationID","timeCompleted","segmentPos","isSubframeEnabled","_idle","_completedLoop","projectInterface","imagePreloader","audioController","configAnimation","onSetupError","onSegmentComplete","drawnFrameEvent","setParams","animType","RendererClass","globalData","defs","setProjectInterface","autoloadSegments","initialSegment","setupAnimation","fileName","trigger","setData","wrapperAttributes","attributes","getNamedItem","prerender","includeLayers","newLayers","fonts","fontManager","addChars","addFonts","initExpressions","loadNextSegment","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","animData","fr","searchExtraCompositions","updaFrameModifier","waitForFontsLoaded","triggerConfigError","rendererType","initItems","gotoFrame","resize","_width","_height","updateContainerSize","setSubframe","renderFrame","resetFrame","triggerRenderFrameError","togglePause","setCurrentRawFrameValue","getMarkerData","markerName","marker","goToAndStop","isFrame","numValue","frameModifier","goToAndPlay","advanceTime","nextValue","_isComplete","checkSegments","adjustSegment","setSegment","pendingFrame","forceFlag","resetSegments","onEnterFrame","onLoopComplete","onSegmentStart","onDestroy","setLoop","isLooping","getPath","getAssetData","show","getDuration","updateDocumentData","getElementByPath","animationManager","registeredAnimations","initTime","playingAnimationsNum","_stopped","_isFrozen","removeElement","ev","animItem","subtractPlayingCount","registerAnimation","addPlayingCount","activate","nowTime","first","searchAnimations","standalone","animElements","getElementsByClassName","lenAnims","getElementsByTagName","innerText","div","freeze","unfreeze","getRegisteredAnimations","animations","BezierFactory","beziers","bezEasing","BezierEasing","kSplineTableSize","kSampleStepSize","float32ArraySupported","aA1","aA2","calcBezier","aT","getSlope","points","_p","_mSampleValues","_precomputed","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","_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","lastPoint","lengthData","BezierData","segmentLength","PointData","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","initFrame","mathAbs","interpolateValue","frameNum","caching","offsetTime","propType","pv","keyData","nextKeyData","keyframeMetadata","fnc","iterationIndex","lastIndex","keyframes","keyframesMetadata","endValue","nextKeyTime","keyTime","ind","__fnct","getBezierEasing","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","quaternionToEuler","slerp","createQuaternion","omega","cosom","sinom","scale0","scale1","ax","ay","az","aw","bx","by","bz","bw","acos","sin","quat","qx","qy","qz","qw","heading","attitude","asin","bank","c1","cos","c2","c3","s1","s2","s3","getValueAtCurrentTime","renderedFrame","endTime","_caching","renderResult","setVValue","multipliedValue","mult","_mdf","processEffectsSequence","frameId","effectsSequence","lock","_isFirstFrame","finalValue","addEffect","effectFunction","addDynamicProperty","ValueProperty","vel","MultiDimensionalProperty","KeyframedValueProperty","KeyframedMultidimensionalProperty","arrLen","PropertyFactory","getProp","sid","slotManager","DynamicPropertyContainer","dynamicProperties","_isAnimated","iterateDynamicProperties","initDynamicPropertyContainer","pointPool","ShapePath","setPathData","setLength","doubleArrayLength","setXYAt","setTripleAt","vX","vY","oX","oY","iX","iY","newPath","vertices","outPoints","inPoints","cnt","shapePool","shapePath","clone","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","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","rotateX","rotateY","rotateZ","shear","sx","skew","skewFromAxis","scale","sz","setTransform","translate","tx","tz","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","multiply","matrix","matrixProps","isIdentity","_identity","equals","matr","cloneFromProps","applyToPoint","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","setSubframeRendering","setPrefix","setQuality","inBrowser","installPlugin","plugin","getFactory","checkReady","readyStateCheckInterval","getQueryVariable","variable","vars","queryString","pair","useWebWorker","setIDPrefix","__getFactory","scripts","myScript","define","bodymovin","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","addPaths","newPaths","addSegment","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","amount","processPath","centerPoint","pathLength","clonedPath","TransformPropertyFactory","defaultVector","TransformProperty","pre","appliedTransformations","py","pz","rx","ry","rz","_isDirty","applyToMatrix","mat","forceRender","precalculateMatrix","autoOriented","v2","getValueAtTime","autoOrient","_addDynamicProperty","getTransformProperty","RepeaterModifier","RoundCornersModifier","floatEqual","floatZero","lerp","lerpPoint","quadRoots","singleRoot","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","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","mid","inflectionPoints","OffsetPathModifier","getFontProperties","fontData","styles","fStyle","fWeight","weight","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","resetElements","elements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","items","itemsTransform","cont","hasReloaded","copies","ix","reloadShapes","elems","transformData","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","currentV","currentI","currentO","closerV","distance","newPosPerc","derivative","denom","tcusp","square","root","p10","p11","p20","p21","bounds","other","shapeSegmentInverted","pointsType","ml","inputBezier","multiSegments","lastSeg","multiSegment","FontManager","emptyChar","combinedCharacters","BLACK_FLAG_CODE_POINT","surrogateModifiers","setUpNode","font","family","fontFamily","fontSize","fontVariant","fontStyle","letterSpacing","familyArray","enabledFamilies","trimFontOptions","parent","createHelper","helper","engine","fontProps","tHelper","fFamily","fClass","tCanvasHelper","OffscreenCanvas","measureText","getComputedTextLength","getCodePoint","codePoint","second","isRegionalCode","Font","typekitLoaded","_warned","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","isModifier","firstCharCode","secondCharCode","sum","isZeroWidthJoiner","isFlagEmoji","isCombinedCharacter","_char3","isRegionalFlag","isVariationSelector","fontPrototype","found","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","loaded","monoCase","sansCase","fPath","fOrigin","rel","getCharData","_char","warn","getFontByName","fName","_char2","fontName","doubleSize","singleSize","loadedCount","SlotManager","slotFactory","RenderableElement","slots","initRenderable","isInRange","hidden","isTransparent","renderableComponents","addRenderableComponent","removeRenderableComponent","prepareRenderableFrame","num","checkLayerLimits","checkTransparency","finalTransform","mProp","renderConfig","hideOnTransparent","renderRenderable","sourceRectAtTime","getLayerSize","textData","getBlendMode","blendModeEnums","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","EffectsManager","effectElements","effectItem","GroupEffect","BaseElement","FrameElement","FootageElement","imageLoader","initBaseData","AudioElement","_isPlaying","_canPlay","_currentTime","_volumeMultiplier","_previousVolume","_placeholder","lv","au","BaseRenderer","eff","checkMasks","LayerExpressionInterface","EffectsExpressionInterface","ShapeExpressionInterface","TextExpressionInterface","CompExpressionInterface","layerInterface","maskManager","registerMaskInterface","effectsInterface","createEffectsInterface","registerEffectsInterface","shapeInterface","shapesData","itemsData","content","textInterface","setBlendMode","blendModeValue","bm","baseElement","layerElement","layerId","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","animationItem","compSize","effectTypes","TRANSFORM_EFFECT","TransformElement","MaskElement","maskElement","viewData","solidPath","rect","expansor","feMorph","properties","currentMasks","maskType","maskRef","getShapeProp","lastPath","filterID","expan","lastOperator","filterId","lastRadius","mask","createLayerSolidPath","invRect","drawPath","maskedElement","initTransform","_matMdf","_localMatMdf","_opMdf","localMat","localOpacity","ao","renderTransform","finalMat","renderLocalTransform","localTransforms","lmat","localOp","searchEffectTransforms","renderableEffectsManager","transformEffects","getEffects","globalToLocal","transforms","ptNew","mHelper","getMaskProperty","isFirstFrame","getMaskelement","pathNodes","pathString","pathShapeValue","filtersFactory","filId","skipCoordinates","fil","feColorMatrix","featureSupport","svgLumaHidden","offscreenCanvas","registeredEffects$1","idPrefix","SVGEffects","filterManager","createFilter","filters","Effect","effect","countsAsEffect","registerEffect$1","SVGBaseElement","HierarchyElement","RenderableDOMElement","IImageElement","initElement","sourceRect","ProcessedElement","IShapeElement","initRendererElement","createContainerElements","matteElement","transformedElement","_sizeChanged","layerElementParent","matteMasks","tt","ln","cp","clipId","cpGroup","renderElement","destroyBaseElement","createRenderableComponents","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","cst","opacityId","maskId","opFill","ms","ost","buildShapeString","_o","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","TextProperty","_frameId","keysIndex","canResize","minimumFontSize","currentData","ascent","boxWidth","defaultBoxWidth","justifyOffset","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","currentTransform","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","update","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","textKeys","buildFinalText","charactersArray","shouldCombine","shouldCombineNext","currentChars","newLineFlag","letters","anchorGrouping","currentSize","currentPos","currentLine","lineWidth","maxLineWidth","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","an","anIndexes","animatorJustifyOffset","extra","animatorData","letterData","based","animators","fs","rn","totalChars","newInd","currentInd","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorProp","TextSelectorPropFactory","_currentTextLength","finalS","finalE","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","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","letterM","letterP","defaultPropsArray","animatorFirstCharOffset","justifyOffsetMult","isNewLine","animatorOffset","atan","textAnimator","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","validateText","buildNewText","emptyShapeData","SVGTextLottieElement","textSpans","ISolidElement","NullElement","SVGRendererBase","ICompElement","SVGCompElement","supports3d","SVGRenderer","config","svgElement","titleElement","titleId","description","descElement","descId","preserveAspectRatio","contentVisibility","viewBoxOnly","viewBoxSize","focusable","filterSize","runExpressions","destroyed","ShapeTransformManager","sequences","sequenceList","transform_key_count","singleShape","textContainer","buildTextContents","textArray","textContents","currentTextContent","buildShapeData","shapeItem","tSpan","usesGlyphs","cachedSpansLength","span","childSpan","glyph","glyphElement","_debug","tElement","justify","textBox","bbox","renderedLetter","textSpan","findIndexByInd","appendElementInPos","elementIndex","tp","matteMask","nextElement","setElements","getElements","destroyElements","addTransformSequence","sequence","processSequence","processSequences","getNewKey","lumaLoader","lumaBuffer","lumaBufferCtx","svg","loadLuma","_svg","createLumaSvgFilter","createCanvas","loadLumaCanvas","getLumaCanvas","registeredEffects","CVEffects","registerEffect","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","CanvasContext","strokeStyle","lineCap","CVContextData","cArrPos","cTr","nativeContext","transformMat","currentOpacity","currentFillStyle","appliedFillStyle","currentStrokeStyle","appliedStrokeStyle","currentLineWidth","appliedLineWidth","currentLineCap","appliedLineCap","currentLineJoin","appliedLineJoin","appliedMiterLimit","currentMiterLimit","CVCompElement","CanvasRenderer","clearCanvas","dpr","devicePixelRatio","currentGlobalAlpha","contextData","ctxTransform","ctxOpacity","ctxFillStyle","ctxStrokeStyle","ctxLineWidth","ctxLineCap","ctxLineJoin","ctxMiterLimit","ctxFill","ctxFillRect","ctxStroke","HBaseElement","HSolidElement","HShapeElement","shapesContainer","currentBBox","HTextElement","textPaths","isMasked","HCameraElement","_prevMat","HImageElement","HybridRendererBase","threeDElements","camera","HCompElement","HybridRenderer","createElements","buffers","bufferCanvas","bufferCanvas2","_isProxy","transformCanvas","blendMode","globalCompositeOperation","hideElement","showElement","clearRect","prepareLayer","bufferCtx","drawImage","getTransform","exitLayer","buffer","forceRealStack","restore","transformHelper","dashResetter","preTransforms","co","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","nodes","currentStyle","coOp","grd","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","globalAlpha","rule","actionFlag","containerStyle","mozTransformOrigin","setContext","isDashed","elementWidth","elementHeight","elementRel","animationRel","fillType","duplicate","newLength","forceRestore","currentContext","prevStack","saveOnNativeFlag","currentStack","newStack","setOpacity","trProps","checkBlendMode","transformedElementStyle","matrixValue","webkitTransform","addEffects","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","shapeBoundingBox","xMax","yMax","tempBoundingBox","b2ac","calculateF","calculateBoundingBox","expandStrokeBoundingBox","widthProperty","kfw","currentBoxContains","changed","shapeStyle","shapeTransform","compW","compH","innerElemStyle","textColor","tParent","tCont","tContStyle","tContTranslation","tStyle","tSpanTranslation","svgStyle","translation","textPath","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","cWidth","cHeight","floatingContainer","_createBaseContainerElements","_thisLayerFunction","pixelAspect","frameDuration","displayStartTime","numLayers","_typeof$2","seedRandom","rngname","startdenom","significance","ARC4","keylen","copy","flatten","typ","mixkey","seed","smear","stringseed","tostring","shortseed","entropy","Uint8Array","crypto","msCrypto","getRandomValues","browser","plugins","screen","autoseed","arc4","prng","int32","quick","pass","is_math_call","initialize$2","SHAPE","_typeof$1","ExpressionManager","fetch","frames","_lottieGlobal","$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","mm","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","arr1","arr2","normalize","vec","rgbToHsl","hue2rgb","hslToRgb","linear","tMin","tMax","value1","value2","_tMin","rnd","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","property","noOp","_value","needsVelocity","_needsRandom","elemType","$bm_transform","thisProperty","valueAtTime","inPoint","outPoint","loopIn","loop_in","loopOut","loop_out","smooth","toWorld","fromWorld","fromComp","toComp","fromCompToSurface","rotation","anchorPoint","thisLayer","thisComp","velocityAtTime","scoped_bm_rt","expression_function","eval","numKeys","active","wiggle","freq","amp","iWiggle","lenWiggle","addedAmps","periods","loopInDuration","loopOutDuration","getVelocityAtTime","velocity","textIndex","textTotal","selectorValue","lookAt","elem1","elem2","fVec","pitch","easeOut","val1","val2","applyEase","easeIn","ease","iKey","lenKey","nearestKey","obKey","framesToTime","fps","timeToFrames","seedrandom","randSeed","posterizeTime","framesPerSecond","hasParent","executeExpression","frameExpressionId","__preventDeadCodeRemoval","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","expression","MaskManagerInterface","MaskInterface","_mask","_data","_masksInterfaces","ExpressionPropertyInterface","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","valueProp","speedAtTime","getSpeedAtTime","propertyGroup","defaultGetter","UnidimensionalPropertyInterface","arrValue","MultidimensionalPropertyInterface","TransformExpressionInterface","_thisFunction","xRotation","yRotation","xPosition","yPosition","zPosition","_px","_py","_pz","_transformFactory","getMatrix","toWorldMat","toWorldVec","applyPoint","fromWorldVec","invertPoint","sampleImage","transformInterface","anchorPointDescriptor","anchor_point","_name","propertyGroupFactory","interfaceFunction","parentPropertyGroup","PropertyInterface","createGroupInterface","groupInterface","mn","_propertyGroup","createValueInterface","numProperties","np","enabled","en","expressionProperty","setGroupProperty","effectsData","ShapePathInterface","propertyIndex","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","interfaces","transformInterfaceFactory","cix","contentsInterfaceFactory","startPoint","endPoint","_dashPropertyGroup","dashOb","addPropertyToDashOb","dash","skewAxis","outerRadius","outerRoundness","innerRoundness","innerRadius","_interfaceFunction","_sourceText","sourceText","stringValue","fillColor","dataInterfaceFactory","outlineInterface","currentPropertyName","currentProperty","propertyNameIndex","outlineInterfaceFactory","dataInterface","footage","getInterface","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","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","pathMasker","dasharrayValue","getTotalLength","lineLength","units","color1","color2","color3","tableR","tableG","tableB","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","colorValue","table","outputDelta","inputDelta","_svgMatteSymbols","SVGMatte3Effect","filterElem","SVGGaussianBlurEffect","TransformEffect","SVGTransformEffect","CVTransformEffect","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","sigma","dimensions","sigmaX","sigmaY","edgeMode","forceFrame","isUniformScale","scaleHeight","scaleWidth","__webpack_amd_options__","_innerSlider","_json2mq","_defaultProps","_innerSliderUtils","_defineProperties","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_assertThisInitialized","_possibleConstructorReturn","enquire","Slider","_inherits","_super","_classCallCheck","innerSlider","slickPrev","slickNext","dontAnimate","slickGoTo","autoPlay","_responsiveMediaHandlers","query","register","responsive","breakpoints","breakpt","sort","bQuery","minWidth","maxWidth","media","unregister","settings","newProps","resp","rows","slidesPerRow","newChildren","currentWidth","row","InnerSlider","innerSliderRefHandler","_initialState","_lodash","_classnames","_track","_dots","_arrows","_resizeObserverPolyfill","_objectWithoutProperties","excluded","sourceKeys","sourceSymbolKeys","adaptiveHeight","onInit","prevState","onLazyLoad","updateState","adaptHeight","lazyLoadTimer","progressiveLazyLoad","ro","onWindowResized","callbackTimers","onfocus","pauseOnFocus","onSlideFocus","onblur","onSlideBlur","animationEndCallback","timer","autoplayTimer","disconnect","prevProps","checkImagesLoad","onReInit","setTrackStyle","didPropsChange","debouncedResize","resizeWindow","updatedState","_trackWidth","_trackLeft","childrenWidths","preClones","postClones","_i2","_trackStyle","childrenCount","trackLeft","imagesCount","image","prevClickHandler","onload","onerror","onLazyLoadError","_index","_this$props","asNavFor","beforeChange","afterChange","_slideHandler","asNavForIndex","firstBatch","focusOnSelect","clickable","ontouchmove","disableBodyScroll","triggerSlideHandler","enableBodyScroll","playType","autoplaySpeed","pauseType","dots","prevArrow","nextArrow","trackProps","pauseOnHover","onMouseEnter","onTrackOver","onMouseLeave","onTrackLeave","onMouseOver","selectHandler","dotProps","pauseOnDotsHover","clickHandler","onDotsLeave","onDotsOver","Dots","arrowProps","arrows","PrevArrow","NextArrow","verticalHeightStyle","centerPaddingStyle","listStyle","touchMove","listProps","onMouseDown","onMouseMove","onMouseUp","onTouchStart","onTouchMove","onTouchEnd","touchEnd","onTouchCancel","onKeyDown","innerSliderProps","listRefHandler","Track","trackRefHandler","ssrState","ssrInit","_i3","_Object$keys","currentDirection","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeGlobal","freeSelf","objectToString","nativeMax","nativeMin","toNumber","isObjectLike","isBinary","wait","lastArgs","lastThis","timerId","lastCallTime","lastInvokeTime","maxing","invokeFunc","thisArg","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","remainingWait","debounced","isInvoking","leadingEdge","getSlideClasses","slickActive","slickCenter","slickCloned","getKey","fallbackKey","renderSlides","preCloneSlides","postCloneSlides","childOnClickOptions","childStyle","getSlideStyle","slideClass","slideClasses","preCloneNo","_React$PureComponent","mouseEvents","handleRef","_rightBound","rightBound","_leftBound","leftBound","dotOptions","customPaging","appendDots","dotsClass","_createClass","prevClasses","prevHandler","prevArrowProps","customProps","_React$PureComponent2","_super2","nextClasses","nextHandler","nextArrowProps","MapShim","getIndex","some","class_1","__entries__","clear","_a","isBrowser","global$1","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","leadingCall","trailingCall","resolvePending","proxy","timeoutCallback","throttle","addObserver","observer","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","characterData","_b","getInstance","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","parseFloat","getBordersSize","positions","getHTMLElementContentRect","clientWidth","getComputedStyle","paddings","positions_1","getPaddings","horizPad","vertPad","boxSizing","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getContentRect","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","broadcastRect","ResizeObserverEntry","rectInit","contentRect","Constr","DOMRectReadOnly","createReadOnlyRect","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","unobserve","clearActive","observation","ResizeObserver","method","camel2hyphen","obj2mq","mq","features","feature","isDimension","MediaQueryDispatch","MediaQuery","Util","matchMedia","queries","browserIsIncapable","shouldDegrade","isUnconditional","addHandler","removeHandler","QueryHandler","mql","assess","addListener","constuctor","removeListener","deferSetup","initialised","unmatch","_gtag","_format","_excluded","_excluded2","_excluded3","_excluded4","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_slicedToArray","_arrayWithHoles","_e","_arr","_n","_d","_iterableToArrayLimit","_nonIterableRest","minLen","isInitialized","_testMode","_currentMeasurementId","_hasLoadedGA","_isQueuing","_queueGtag","GA_MEASUREMENT_ID","nonce","script","async","dataLayer","gtag","gaOptions","mapFields","cookieUpdate","cookieExpires","cookieDomain","cookieFlags","userId","clientId","anonymizeIp","contentGroup1","contentGroup2","contentGroup3","contentGroup4","contentGroup5","allowAdFeatures","allowAdPersonalizationSignals","nonInteraction","page","hitCallback","prev","initConfigs","trackingId","gtagOptions","_options$legacyDimens","legacyDimensionMetric","_options$testMode","testMode","_loadGA","mergedGtagOptions","_appendCustomMap","send_page_view","_toGtagOptions","queues","fieldsObject","_gaCommand","eventCategory","eventAction","eventLabel","eventValue","event_category","event_label","non_interaction","_len2","_key2","_gaCommandSendEvent","_args$","hitType","timingCategory","timingVar","timingValue","timingLabel","_this$_toGtagOptions","page_path","page_title","page_location","_len3","_key3","_gaCommandSendPageview","_args$2","_len4","_key4","_gaCommandSendEventParameters","_gaCommandSendPageviewParameters","_gaCommandSendTiming","_len5","_key5","command","_len6","_key6","_gaCommandSend","_gaCommandSet","_len7","_key7","readyCallback","ga","optionsOrName","category","label","transport","fieldObject","pathTrim","custom_map","_ref3","safetyCallbackCalled","_window","titleCase","redactingEmail","_str","smallWords","mightBeEmail","redacted","redactEmail","_Snippets","_Snippets2","TagManager","dataScript","gtm","snippets","tags","noScript","noscript","dataLayerVar","gtmId","_ref$events","events","_ref$dataLayerName","dataLayerName","_ref$auth","auth","_ref$preview","preview","head","_dataLayer","_ref2$dataLayerName","_warn","_warn2","Snippets","gtm_auth","gtm_preview","replaceClassName","origClass","classToRemove","forceReflow","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","initialStatus","appear","isMounting","enter","appearStatus","unmountOnExit","mountOnEnter","nextCallback","_proto","updateStatus","nextStatus","cancelNextCallback","getTimeouts","exit","timeout","mounting","nodeRef","ReactDOM","performEnter","performExit","appearing","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onEntered","onEnter","onEntering","onTransitionEnd","onExit","onExiting","onExited","setNextCallback","doesNotHaveTimeoutOrListener","addEndListener","maybeNextCallback","childProps","TransitionGroupContext","removeClass","baseVal","CSSTransition","appliedClasses","_this$resolveArgument","resolveArguments","removeClasses","addClass","_this$resolveArgument2","_this$resolveArgument3","getClassNames","isStringClassNames","baseClassName","doneClassName","phase","hasClass","_addClass","_this$appliedClasses$"],"mappings":"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","file":"static/js/2.4b3119c5.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport { createPath } from 'history';\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n const method = (replace || isDuplicateNavigation) ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\", // TODO: deprecate\n activeStyle, // TODO: deprecate\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n let className =\n typeof classNameProp === \"function\"\n ? classNameProp(isActive)\n : classNameProp;\n\n let style =\n typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = { ...style, ...activeStyle };\n }\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\",\n \"false\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n };\n}\n\nexport default NavLink;\n","// MIT License\n// Copyright (c) 2019-present StringEpsilon \n// Copyright (c) 2017-2019 James Kyle \n// https://github.com/StringEpsilon/mini-create-react-context\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nconst MAX_SIGNED_31_BIT_INT = 1073741823;\n\nconst commonjsGlobal =\n typeof globalThis !== \"undefined\" // 'global proper'\n ? // eslint-disable-next-line no-undef\n globalThis\n : typeof window !== \"undefined\"\n ? window // Browser\n : typeof global !== \"undefined\"\n ? global // node.js\n : {};\n\nfunction getUniqueId() {\n let key = \"__global_unique_id__\";\n return (commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1);\n}\n\n// Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // eslint-disable-next-line no-self-compare\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n let handlers = [];\n return {\n on(handler) {\n handlers.push(handler);\n },\n\n off(handler) {\n handlers = handlers.filter(h => h !== handler);\n },\n\n get() {\n return value;\n },\n\n set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(handler => handler(value, changedBits));\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nexport default function createReactContext(defaultValue, calculateChangedBits) {\n const contextProp = \"__create-react-context-\" + getUniqueId() + \"__\";\n\n class Provider extends React.Component {\n emitter = createEventEmitter(this.props.value);\n\n static childContextTypes = {\n [contextProp]: PropTypes.object.isRequired\n };\n\n getChildContext() {\n return {\n [contextProp]: this.emitter\n };\n }\n\n componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n let oldValue = this.props.value;\n let newValue = nextProps.value;\n let changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0; // No change\n } else {\n changedBits =\n typeof calculateChangedBits === \"function\"\n ? calculateChangedBits(oldValue, newValue)\n : MAX_SIGNED_31_BIT_INT;\n if (process.env.NODE_ENV !== \"production\") {\n warning(\n (changedBits & MAX_SIGNED_31_BIT_INT) === changedBits,\n \"calculateChangedBits: Expected the return value to be a \" +\n \"31-bit integer. Instead received: \" +\n changedBits\n );\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n }\n\n render() {\n return this.props.children;\n }\n }\n\n class Consumer extends React.Component {\n static contextTypes = {\n [contextProp]: PropTypes.object\n };\n\n observedBits;\n\n state = {\n value: this.getValue()\n };\n\n componentWillReceiveProps(nextProps) {\n let { observedBits } = nextProps;\n this.observedBits =\n observedBits === undefined || observedBits === null\n ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n }\n\n componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n let { observedBits } = this.props;\n this.observedBits =\n observedBits === undefined || observedBits === null\n ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n }\n\n componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n }\n\n getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n }\n\n onUpdate = (newValue, changedBits) => {\n const observedBits = this.observedBits | 0;\n if ((observedBits & changedBits) !== 0) {\n this.setState({ value: this.getValue() });\n }\n };\n\n render() {\n return onlyChild(this.props.children)(this.state.value);\n }\n }\n\n return {\n Provider,\n Consumer\n };\n}\n","// MIT License\n// Copyright (c) 2019-present StringEpsilon \n// Copyright (c) 2017-2019 James Kyle \n// https://github.com/StringEpsilon/mini-create-react-context\nimport React from \"react\";\nimport createReactContext from \"./miniCreateReactContext\";\n\nexport default React.createContext || createReactContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"./createContext\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n this._pendingLocation = location;\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this.unlisten) {\n // Any pre-mount location changes have been captured at\n // this point, so unregister the listener.\n this.unlisten();\n }\n if (!this.props.staticContext) {\n this.unlisten = this.props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n }\n });\n }\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * A public higher-order component to access the imperative API\n */\nfunction withRouter(Component) {\n const displayName = `withRouter(${Component.displayName || Component.name})`;\n const C = props => {\n const { wrappedComponentRef, ...remainingProps } = props;\n\n return (\n \n {context => {\n invariant(\n context,\n `You should not use <${displayName} /> outside a `\n );\n return (\n \n );\n }}\n \n );\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (__DEV__) {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.object\n ])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nexport default withRouter;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(RouterContext).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(RouterContext).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(RouterContext).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = require('babel-runtime/helpers/extends');\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');\n\nvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\nvar _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = require('babel-runtime/helpers/createClass');\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _inherits2 = require('babel-runtime/helpers/inherits');\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _lottieWeb = require('lottie-web');\n\nvar _lottieWeb2 = _interopRequireDefault(_lottieWeb);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Lottie = function (_React$Component) {\n (0, _inherits3.default)(Lottie, _React$Component);\n\n function Lottie() {\n var _ref;\n\n var _temp, _this, _ret;\n\n (0, _classCallCheck3.default)(this, Lottie);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Lottie.__proto__ || (0, _getPrototypeOf2.default)(Lottie)).call.apply(_ref, [this].concat(args))), _this), _this.handleClickToPause = function () {\n // The pause() method is for handling pausing by passing a prop isPaused\n // This method is for handling the ability to pause by clicking on the animation\n if (_this.anim.isPaused) {\n _this.anim.play();\n } else {\n _this.anim.pause();\n }\n }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);\n }\n\n (0, _createClass3.default)(Lottie, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _props = this.props,\n options = _props.options,\n eventListeners = _props.eventListeners;\n var loop = options.loop,\n autoplay = options.autoplay,\n animationData = options.animationData,\n rendererSettings = options.rendererSettings,\n segments = options.segments;\n\n\n this.options = {\n container: this.el,\n renderer: 'svg',\n loop: loop !== false,\n autoplay: autoplay !== false,\n segments: segments !== false,\n animationData: animationData,\n rendererSettings: rendererSettings\n };\n\n this.options = (0, _extends3.default)({}, this.options, options);\n\n this.anim = _lottieWeb2.default.loadAnimation(this.options);\n this.registerEvents(eventListeners);\n }\n }, {\n key: 'componentWillUpdate',\n value: function componentWillUpdate(nextProps /* , nextState */) {\n /* Recreate the animation handle if the data is changed */\n if (this.options.animationData !== nextProps.options.animationData) {\n this.deRegisterEvents(this.props.eventListeners);\n this.destroy();\n this.options = (0, _extends3.default)({}, this.options, nextProps.options);\n this.anim = _lottieWeb2.default.loadAnimation(this.options);\n this.registerEvents(nextProps.eventListeners);\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n if (this.props.isStopped) {\n this.stop();\n } else if (this.props.segments) {\n this.playSegments();\n } else {\n this.play();\n }\n\n this.pause();\n this.setSpeed();\n this.setDirection();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.deRegisterEvents(this.props.eventListeners);\n this.destroy();\n this.options.animationData = null;\n this.anim = null;\n }\n }, {\n key: 'setSpeed',\n value: function setSpeed() {\n this.anim.setSpeed(this.props.speed);\n }\n }, {\n key: 'setDirection',\n value: function setDirection() {\n this.anim.setDirection(this.props.direction);\n }\n }, {\n key: 'play',\n value: function play() {\n this.anim.play();\n }\n }, {\n key: 'playSegments',\n value: function playSegments() {\n this.anim.playSegments(this.props.segments);\n }\n }, {\n key: 'stop',\n value: function stop() {\n this.anim.stop();\n }\n }, {\n key: 'pause',\n value: function pause() {\n if (this.props.isPaused && !this.anim.isPaused) {\n this.anim.pause();\n } else if (!this.props.isPaused && this.anim.isPaused) {\n this.anim.pause();\n }\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n this.anim.destroy();\n }\n }, {\n key: 'registerEvents',\n value: function registerEvents(eventListeners) {\n var _this2 = this;\n\n eventListeners.forEach(function (eventListener) {\n _this2.anim.addEventListener(eventListener.eventName, eventListener.callback);\n });\n }\n }, {\n key: 'deRegisterEvents',\n value: function deRegisterEvents(eventListeners) {\n var _this3 = this;\n\n eventListeners.forEach(function (eventListener) {\n _this3.anim.removeEventListener(eventListener.eventName, eventListener.callback);\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _this4 = this;\n\n var _props2 = this.props,\n width = _props2.width,\n height = _props2.height,\n ariaRole = _props2.ariaRole,\n ariaLabel = _props2.ariaLabel,\n isClickToPauseDisabled = _props2.isClickToPauseDisabled,\n title = _props2.title;\n\n\n var getSize = function getSize(initial) {\n var size = void 0;\n\n if (typeof initial === 'number') {\n size = initial + 'px';\n } else {\n size = initial || '100%';\n }\n\n return size;\n };\n\n var lottieStyles = (0, _extends3.default)({\n width: getSize(width),\n height: getSize(height),\n overflow: 'hidden',\n margin: '0 auto',\n outline: 'none'\n }, this.props.style);\n\n var onClickHandler = isClickToPauseDisabled ? function () {\n return null;\n } : this.handleClickToPause;\n\n return (\n // Bug with eslint rules https://github.com/airbnb/javascript/issues/1374\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n _react2.default.createElement('div', {\n ref: function ref(c) {\n _this4.el = c;\n },\n style: lottieStyles,\n onClick: onClickHandler,\n title: title,\n role: ariaRole,\n 'aria-label': ariaLabel,\n tabIndex: '0'\n })\n );\n }\n }]);\n return Lottie;\n}(_react2.default.Component);\n\nexports.default = Lottie;\n\n\nLottie.propTypes = {\n eventListeners: _propTypes2.default.arrayOf(_propTypes2.default.object),\n options: _propTypes2.default.object.isRequired,\n height: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n isStopped: _propTypes2.default.bool,\n isPaused: _propTypes2.default.bool,\n speed: _propTypes2.default.number,\n segments: _propTypes2.default.arrayOf(_propTypes2.default.number),\n direction: _propTypes2.default.number,\n ariaRole: _propTypes2.default.string,\n ariaLabel: _propTypes2.default.string,\n isClickToPauseDisabled: _propTypes2.default.bool,\n title: _propTypes2.default.string,\n style: _propTypes2.default.string\n};\n\nLottie.defaultProps = {\n eventListeners: [],\n isStopped: false,\n isPaused: false,\n speed: 1,\n ariaRole: 'button',\n ariaLabel: 'animation',\n isClickToPauseDisabled: false,\n title: ''\n};","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.checkSpecKeys = exports.checkNavigable = exports.changeSlide = exports.canUseDOM = exports.canGoNext = void 0;\nexports.clamp = clamp;\nexports.swipeStart = exports.swipeMove = exports.swipeEnd = exports.slidesOnRight = exports.slidesOnLeft = exports.slideHandler = exports.siblingDirection = exports.safePreventDefault = exports.lazyStartIndex = exports.lazySlidesOnRight = exports.lazySlidesOnLeft = exports.lazyEndIndex = exports.keyHandler = exports.initializedState = exports.getWidth = exports.getTrackLeft = exports.getTrackCSS = exports.getTrackAnimateCSS = exports.getTotalSlides = exports.getSwipeDirection = exports.getSlideCount = exports.getRequiredLazySlides = exports.getPreClones = exports.getPostClones = exports.getOnDemandLazySlides = exports.getNavigableIndexes = exports.getHeight = exports.extractObject = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction clamp(number, lowerBound, upperBound) {\n return Math.max(lowerBound, Math.min(number, upperBound));\n}\n\nvar safePreventDefault = function safePreventDefault(event) {\n var passiveEvents = [\"onTouchStart\", \"onTouchMove\", \"onWheel\"];\n\n if (!passiveEvents.includes(event._reactName)) {\n event.preventDefault();\n }\n};\n\nexports.safePreventDefault = safePreventDefault;\n\nvar getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n var onDemandSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n onDemandSlides.push(slideIndex);\n }\n }\n\n return onDemandSlides;\n}; // return list of slides that need to be present\n\n\nexports.getOnDemandLazySlides = getOnDemandLazySlides;\n\nvar getRequiredLazySlides = function getRequiredLazySlides(spec) {\n var requiredSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n requiredSlides.push(slideIndex);\n }\n\n return requiredSlides;\n}; // startIndex that needs to be present\n\n\nexports.getRequiredLazySlides = getRequiredLazySlides;\n\nvar lazyStartIndex = function lazyStartIndex(spec) {\n return spec.currentSlide - lazySlidesOnLeft(spec);\n};\n\nexports.lazyStartIndex = lazyStartIndex;\n\nvar lazyEndIndex = function lazyEndIndex(spec) {\n return spec.currentSlide + lazySlidesOnRight(spec);\n};\n\nexports.lazyEndIndex = lazyEndIndex;\n\nvar lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\n\nexports.lazySlidesOnLeft = lazySlidesOnLeft;\n\nvar lazySlidesOnRight = function lazySlidesOnRight(spec) {\n return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n}; // get width of an element\n\n\nexports.lazySlidesOnRight = lazySlidesOnRight;\n\nvar getWidth = function getWidth(elem) {\n return elem && elem.offsetWidth || 0;\n};\n\nexports.getWidth = getWidth;\n\nvar getHeight = function getHeight(elem) {\n return elem && elem.offsetHeight || 0;\n};\n\nexports.getHeight = getHeight;\n\nvar getSwipeDirection = function getSwipeDirection(touchObject) {\n var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var xDist, yDist, r, swipeAngle;\n xDist = touchObject.startX - touchObject.curX;\n yDist = touchObject.startY - touchObject.curY;\n r = Math.atan2(yDist, xDist);\n swipeAngle = Math.round(r * 180 / Math.PI);\n\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n\n if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {\n return \"left\";\n }\n\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return \"right\";\n }\n\n if (verticalSwiping === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return \"up\";\n } else {\n return \"down\";\n }\n }\n\n return \"vertical\";\n}; // whether or not we can go next\n\n\nexports.getSwipeDirection = getSwipeDirection;\n\nvar canGoNext = function canGoNext(spec) {\n var canGo = true;\n\n if (!spec.infinite) {\n if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n canGo = false;\n } else if (spec.slideCount <= spec.slidesToShow || spec.currentSlide >= spec.slideCount - spec.slidesToShow) {\n canGo = false;\n }\n }\n\n return canGo;\n}; // given an object and a list of keys, return new object with given keys\n\n\nexports.canGoNext = canGoNext;\n\nvar extractObject = function extractObject(spec, keys) {\n var newObject = {};\n keys.forEach(function (key) {\n return newObject[key] = spec[key];\n });\n return newObject;\n}; // get initialized state\n\n\nexports.extractObject = extractObject;\n\nvar initializedState = function initializedState(spec) {\n // spec also contains listRef, trackRef\n var slideCount = _react[\"default\"].Children.count(spec.children);\n\n var listNode = spec.listRef;\n var listWidth = Math.ceil(getWidth(listNode));\n var trackNode = spec.trackRef && spec.trackRef.node;\n var trackWidth = Math.ceil(getWidth(trackNode));\n var slideWidth;\n\n if (!spec.vertical) {\n var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n\n if (typeof spec.centerPadding === \"string\" && spec.centerPadding.slice(-1) === \"%\") {\n centerPaddingAdj *= listWidth / 100;\n }\n\n slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n } else {\n slideWidth = listWidth;\n }\n\n var slideHeight = listNode && getHeight(listNode.querySelector('[data-index=\"0\"]'));\n var listHeight = slideHeight * spec.slidesToShow;\n var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n\n if (spec.rtl && spec.currentSlide === undefined) {\n currentSlide = slideCount - 1 - spec.initialSlide;\n }\n\n var lazyLoadedList = spec.lazyLoadedList || [];\n var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: currentSlide,\n lazyLoadedList: lazyLoadedList\n }));\n lazyLoadedList = lazyLoadedList.concat(slidesToLoad);\n var state = {\n slideCount: slideCount,\n slideWidth: slideWidth,\n listWidth: listWidth,\n trackWidth: trackWidth,\n currentSlide: currentSlide,\n slideHeight: slideHeight,\n listHeight: listHeight,\n lazyLoadedList: lazyLoadedList\n };\n\n if (spec.autoplaying === null && spec.autoplay) {\n state[\"autoplaying\"] = \"playing\";\n }\n\n return state;\n};\n\nexports.initializedState = initializedState;\n\nvar slideHandler = function slideHandler(spec) {\n var waitForAnimate = spec.waitForAnimate,\n animating = spec.animating,\n fade = spec.fade,\n infinite = spec.infinite,\n index = spec.index,\n slideCount = spec.slideCount,\n lazyLoad = spec.lazyLoad,\n currentSlide = spec.currentSlide,\n centerMode = spec.centerMode,\n slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n useCSS = spec.useCSS;\n var lazyLoadedList = spec.lazyLoadedList;\n if (waitForAnimate && animating) return {};\n var animationSlide = index,\n finalSlide,\n animationLeft,\n finalLeft;\n var state = {},\n nextState = {};\n var targetSlide = infinite ? index : clamp(index, 0, slideCount - 1);\n\n if (fade) {\n if (!infinite && (index < 0 || index >= slideCount)) return {};\n\n if (index < 0) {\n animationSlide = index + slideCount;\n } else if (index >= slideCount) {\n animationSlide = index - slideCount;\n }\n\n if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n lazyLoadedList = lazyLoadedList.concat(animationSlide);\n }\n\n state = {\n animating: true,\n currentSlide: animationSlide,\n lazyLoadedList: lazyLoadedList,\n targetSlide: animationSlide\n };\n nextState = {\n animating: false,\n targetSlide: animationSlide\n };\n } else {\n finalSlide = animationSlide;\n\n if (animationSlide < 0) {\n finalSlide = animationSlide + slideCount;\n if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) finalSlide = slideCount - slideCount % slidesToScroll;\n } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n animationSlide = finalSlide = currentSlide;\n } else if (centerMode && animationSlide >= slideCount) {\n animationSlide = infinite ? slideCount : slideCount - 1;\n finalSlide = infinite ? 0 : slideCount - 1;\n } else if (animationSlide >= slideCount) {\n finalSlide = animationSlide - slideCount;\n if (!infinite) finalSlide = slideCount - slidesToShow;else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n }\n\n if (!infinite && animationSlide + slidesToShow >= slideCount) {\n finalSlide = slideCount - slidesToShow;\n }\n\n animationLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: animationSlide\n }));\n finalLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: finalSlide\n }));\n\n if (!infinite) {\n if (animationLeft === finalLeft) animationSlide = finalSlide;\n animationLeft = finalLeft;\n }\n\n if (lazyLoad) {\n lazyLoadedList = lazyLoadedList.concat(getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: animationSlide\n })));\n }\n\n if (!useCSS) {\n state = {\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n } else {\n state = {\n animating: true,\n currentSlide: finalSlide,\n trackStyle: getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: animationLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n nextState = {\n animating: false,\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n swipeLeft: null,\n targetSlide: targetSlide\n };\n }\n }\n\n return {\n state: state,\n nextState: nextState\n };\n};\n\nexports.slideHandler = slideHandler;\n\nvar changeSlide = function changeSlide(spec, options) {\n var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n var slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n slideCount = spec.slideCount,\n currentSlide = spec.currentSlide,\n previousTargetSlide = spec.targetSlide,\n lazyLoad = spec.lazyLoad,\n infinite = spec.infinite;\n unevenOffset = slideCount % slidesToScroll !== 0;\n indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n\n if (options.message === \"previous\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n targetSlide = currentSlide - slideOffset;\n\n if (lazyLoad && !infinite) {\n previousInt = currentSlide - slideOffset;\n targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n }\n\n if (!infinite) {\n targetSlide = previousTargetSlide - slidesToScroll;\n }\n } else if (options.message === \"next\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n targetSlide = currentSlide + slideOffset;\n\n if (lazyLoad && !infinite) {\n targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n }\n\n if (!infinite) {\n targetSlide = previousTargetSlide + slidesToScroll;\n }\n } else if (options.message === \"dots\") {\n // Click on dots\n targetSlide = options.index * options.slidesToScroll;\n } else if (options.message === \"children\") {\n // Click on the slides\n targetSlide = options.index;\n\n if (infinite) {\n var direction = siblingDirection(_objectSpread(_objectSpread({}, spec), {}, {\n targetSlide: targetSlide\n }));\n\n if (targetSlide > options.currentSlide && direction === \"left\") {\n targetSlide = targetSlide - slideCount;\n } else if (targetSlide < options.currentSlide && direction === \"right\") {\n targetSlide = targetSlide + slideCount;\n }\n }\n } else if (options.message === \"index\") {\n targetSlide = Number(options.index);\n }\n\n return targetSlide;\n};\n\nexports.changeSlide = changeSlide;\n\nvar keyHandler = function keyHandler(e, accessibility, rtl) {\n if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility) return \"\";\n if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n return \"\";\n};\n\nexports.keyHandler = keyHandler;\n\nvar swipeStart = function swipeStart(e, swipe, draggable) {\n e.target.tagName === \"IMG\" && safePreventDefault(e);\n if (!swipe || !draggable && e.type.indexOf(\"mouse\") !== -1) return \"\";\n return {\n dragging: true,\n touchObject: {\n startX: e.touches ? e.touches[0].pageX : e.clientX,\n startY: e.touches ? e.touches[0].pageY : e.clientY,\n curX: e.touches ? e.touches[0].pageX : e.clientX,\n curY: e.touches ? e.touches[0].pageY : e.clientY\n }\n };\n};\n\nexports.swipeStart = swipeStart;\n\nvar swipeMove = function swipeMove(e, spec) {\n // spec also contains, trackRef and slideIndex\n var scrolling = spec.scrolling,\n animating = spec.animating,\n vertical = spec.vertical,\n swipeToSlide = spec.swipeToSlide,\n verticalSwiping = spec.verticalSwiping,\n rtl = spec.rtl,\n currentSlide = spec.currentSlide,\n edgeFriction = spec.edgeFriction,\n edgeDragged = spec.edgeDragged,\n onEdge = spec.onEdge,\n swiped = spec.swiped,\n swiping = spec.swiping,\n slideCount = spec.slideCount,\n slidesToScroll = spec.slidesToScroll,\n infinite = spec.infinite,\n touchObject = spec.touchObject,\n swipeEvent = spec.swipeEvent,\n listHeight = spec.listHeight,\n listWidth = spec.listWidth;\n if (scrolling) return;\n if (animating) return safePreventDefault(e);\n if (vertical && swipeToSlide && verticalSwiping) safePreventDefault(e);\n var swipeLeft,\n state = {};\n var curLeft = getTrackLeft(spec);\n touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));\n var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));\n\n if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n return {\n scrolling: true\n };\n }\n\n if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n if (verticalSwiping) positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n var dotCount = Math.ceil(slideCount / slidesToScroll);\n var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n var touchSwipeLength = touchObject.swipeLength;\n\n if (!infinite) {\n if (currentSlide === 0 && (swipeDirection === \"right\" || swipeDirection === \"down\") || currentSlide + 1 >= dotCount && (swipeDirection === \"left\" || swipeDirection === \"up\") || !canGoNext(spec) && (swipeDirection === \"left\" || swipeDirection === \"up\")) {\n touchSwipeLength = touchObject.swipeLength * edgeFriction;\n\n if (edgeDragged === false && onEdge) {\n onEdge(swipeDirection);\n state[\"edgeDragged\"] = true;\n }\n }\n }\n\n if (!swiped && swipeEvent) {\n swipeEvent(swipeDirection);\n state[\"swiped\"] = true;\n }\n\n if (!vertical) {\n if (!rtl) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n } else {\n swipeLeft = curLeft - touchSwipeLength * positionOffset;\n }\n } else {\n swipeLeft = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n }\n\n if (verticalSwiping) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n }\n\n state = _objectSpread(_objectSpread({}, state), {}, {\n touchObject: touchObject,\n swipeLeft: swipeLeft,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: swipeLeft\n }))\n });\n\n if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n return state;\n }\n\n if (touchObject.swipeLength > 10) {\n state[\"swiping\"] = true;\n safePreventDefault(e);\n }\n\n return state;\n};\n\nexports.swipeMove = swipeMove;\n\nvar swipeEnd = function swipeEnd(e, spec) {\n var dragging = spec.dragging,\n swipe = spec.swipe,\n touchObject = spec.touchObject,\n listWidth = spec.listWidth,\n touchThreshold = spec.touchThreshold,\n verticalSwiping = spec.verticalSwiping,\n listHeight = spec.listHeight,\n swipeToSlide = spec.swipeToSlide,\n scrolling = spec.scrolling,\n onSwipe = spec.onSwipe,\n targetSlide = spec.targetSlide,\n currentSlide = spec.currentSlide,\n infinite = spec.infinite;\n\n if (!dragging) {\n if (swipe) safePreventDefault(e);\n return {};\n }\n\n var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n var swipeDirection = getSwipeDirection(touchObject, verticalSwiping); // reset the state of touch related state variables.\n\n var state = {\n dragging: false,\n edgeDragged: false,\n scrolling: false,\n swiping: false,\n swiped: false,\n swipeLeft: null,\n touchObject: {}\n };\n\n if (scrolling) {\n return state;\n }\n\n if (!touchObject.swipeLength) {\n return state;\n }\n\n if (touchObject.swipeLength > minSwipe) {\n safePreventDefault(e);\n\n if (onSwipe) {\n onSwipe(swipeDirection);\n }\n\n var slideCount, newSlide;\n var activeSlide = infinite ? currentSlide : targetSlide;\n\n switch (swipeDirection) {\n case \"left\":\n case \"up\":\n newSlide = activeSlide + getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 0;\n break;\n\n case \"right\":\n case \"down\":\n newSlide = activeSlide - getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 1;\n break;\n\n default:\n slideCount = activeSlide;\n }\n\n state[\"triggerSlideHandler\"] = slideCount;\n } else {\n // Adjust the track back to it's original position.\n var currentLeft = getTrackLeft(spec);\n state[\"trackStyle\"] = getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: currentLeft\n }));\n }\n\n return state;\n};\n\nexports.swipeEnd = swipeEnd;\n\nvar getNavigableIndexes = function getNavigableIndexes(spec) {\n var max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n var breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n var counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n var indexes = [];\n\n while (breakpoint < max) {\n indexes.push(breakpoint);\n breakpoint = counter + spec.slidesToScroll;\n counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n }\n\n return indexes;\n};\n\nexports.getNavigableIndexes = getNavigableIndexes;\n\nvar checkNavigable = function checkNavigable(spec, index) {\n var navigables = getNavigableIndexes(spec);\n var prevNavigable = 0;\n\n if (index > navigables[navigables.length - 1]) {\n index = navigables[navigables.length - 1];\n } else {\n for (var n in navigables) {\n if (index < navigables[n]) {\n index = prevNavigable;\n break;\n }\n\n prevNavigable = navigables[n];\n }\n }\n\n return index;\n};\n\nexports.checkNavigable = checkNavigable;\n\nvar getSlideCount = function getSlideCount(spec) {\n var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n\n if (spec.swipeToSlide) {\n var swipedSlide;\n var slickList = spec.listRef;\n var slides = slickList.querySelectorAll && slickList.querySelectorAll(\".slick-slide\") || [];\n Array.from(slides).every(function (slide) {\n if (!spec.vertical) {\n if (slide.offsetLeft - centerOffset + getWidth(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n } else {\n if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n }\n\n return true;\n });\n\n if (!swipedSlide) {\n return 0;\n }\n\n var currentIndex = spec.rtl === true ? spec.slideCount - spec.currentSlide : spec.currentSlide;\n var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n return slidesTraversed;\n } else {\n return spec.slidesToScroll;\n }\n};\n\nexports.getSlideCount = getSlideCount;\n\nvar checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n return keysArray.reduce(function (value, key) {\n return value && spec.hasOwnProperty(key);\n }, true) ? null : console.error(\"Keys Missing:\", spec);\n};\n\nexports.checkSpecKeys = checkSpecKeys;\n\nvar getTrackCSS = function getTrackCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\"]);\n var trackWidth, trackHeight;\n var trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n\n if (!spec.vertical) {\n trackWidth = getTotalSlides(spec) * spec.slideWidth;\n } else {\n trackHeight = trackChildren * spec.slideHeight;\n }\n\n var style = {\n opacity: 1,\n transition: \"\",\n WebkitTransition: \"\"\n };\n\n if (spec.useTransform) {\n var WebkitTransform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var transform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var msTransform = !spec.vertical ? \"translateX(\" + spec.left + \"px)\" : \"translateY(\" + spec.left + \"px)\";\n style = _objectSpread(_objectSpread({}, style), {}, {\n WebkitTransform: WebkitTransform,\n transform: transform,\n msTransform: msTransform\n });\n } else {\n if (spec.vertical) {\n style[\"top\"] = spec.left;\n } else {\n style[\"left\"] = spec.left;\n }\n }\n\n if (spec.fade) style = {\n opacity: 1\n };\n if (trackWidth) style.width = trackWidth;\n if (trackHeight) style.height = trackHeight; // Fallback for IE8\n\n if (window && !window.addEventListener && window.attachEvent) {\n if (!spec.vertical) {\n style.marginLeft = spec.left + \"px\";\n } else {\n style.marginTop = spec.left + \"px\";\n }\n }\n\n return style;\n};\n\nexports.getTrackCSS = getTrackCSS;\n\nvar getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\", \"speed\", \"cssEase\"]);\n var style = getTrackCSS(spec); // useCSS is true by default so it can be undefined\n\n if (spec.useTransform) {\n style.WebkitTransition = \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n if (spec.vertical) {\n style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nexports.getTrackAnimateCSS = getTrackAnimateCSS;\n\nvar getTrackLeft = function getTrackLeft(spec) {\n if (spec.unslick) {\n return 0;\n }\n\n checkSpecKeys(spec, [\"slideIndex\", \"trackRef\", \"infinite\", \"centerMode\", \"slideCount\", \"slidesToShow\", \"slidesToScroll\", \"slideWidth\", \"listWidth\", \"variableWidth\", \"slideHeight\"]);\n var slideIndex = spec.slideIndex,\n trackRef = spec.trackRef,\n infinite = spec.infinite,\n centerMode = spec.centerMode,\n slideCount = spec.slideCount,\n slidesToShow = spec.slidesToShow,\n slidesToScroll = spec.slidesToScroll,\n slideWidth = spec.slideWidth,\n listWidth = spec.listWidth,\n variableWidth = spec.variableWidth,\n slideHeight = spec.slideHeight,\n fade = spec.fade,\n vertical = spec.vertical;\n var slideOffset = 0;\n var targetLeft;\n var targetSlide;\n var verticalOffset = 0;\n\n if (fade || spec.slideCount === 1) {\n return 0;\n }\n\n var slidesToOffset = 0;\n\n if (infinite) {\n slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);\n } // shift current slide to center of the frame\n\n\n if (centerMode) {\n slidesToOffset += parseInt(slidesToShow / 2);\n }\n } else {\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n }\n\n if (centerMode) {\n slidesToOffset = parseInt(slidesToShow / 2);\n }\n }\n\n slideOffset = slidesToOffset * slideWidth;\n verticalOffset = slidesToOffset * slideHeight;\n\n if (!vertical) {\n targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n } else {\n targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n }\n\n if (variableWidth === true) {\n var targetSlideIndex;\n var trackElem = trackRef && trackRef.node;\n targetSlideIndex = slideIndex + getPreClones(spec);\n targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n\n if (centerMode === true) {\n targetSlideIndex = infinite ? slideIndex + getPreClones(spec) : slideIndex;\n targetSlide = trackElem && trackElem.children[targetSlideIndex];\n targetLeft = 0;\n\n for (var slide = 0; slide < targetSlideIndex; slide++) {\n targetLeft -= trackElem && trackElem.children[slide] && trackElem.children[slide].offsetWidth;\n }\n\n targetLeft -= parseInt(spec.centerPadding);\n targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n }\n }\n\n return targetLeft;\n};\n\nexports.getTrackLeft = getTrackLeft;\n\nvar getPreClones = function getPreClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n if (spec.variableWidth) {\n return spec.slideCount;\n }\n\n return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\n\nexports.getPreClones = getPreClones;\n\nvar getPostClones = function getPostClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n return spec.slideCount;\n};\n\nexports.getPostClones = getPostClones;\n\nvar getTotalSlides = function getTotalSlides(spec) {\n return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\n\nexports.getTotalSlides = getTotalSlides;\n\nvar siblingDirection = function siblingDirection(spec) {\n if (spec.targetSlide > spec.currentSlide) {\n if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n return \"left\";\n }\n\n return \"right\";\n } else {\n if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n return \"right\";\n }\n\n return \"left\";\n }\n};\n\nexports.siblingDirection = siblingDirection;\n\nvar slidesOnRight = function slidesOnRight(_ref) {\n var slidesToShow = _ref.slidesToShow,\n centerMode = _ref.centerMode,\n rtl = _ref.rtl,\n centerPadding = _ref.centerPadding;\n\n // returns no of slides on the right of active slide\n if (centerMode) {\n var right = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) right += 1;\n if (rtl && slidesToShow % 2 === 0) right += 1;\n return right;\n }\n\n if (rtl) {\n return 0;\n }\n\n return slidesToShow - 1;\n};\n\nexports.slidesOnRight = slidesOnRight;\n\nvar slidesOnLeft = function slidesOnLeft(_ref2) {\n var slidesToShow = _ref2.slidesToShow,\n centerMode = _ref2.centerMode,\n rtl = _ref2.rtl,\n centerPadding = _ref2.centerPadding;\n\n // returns no of slides on the left of active slide\n if (centerMode) {\n var left = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) left += 1;\n if (!rtl && slidesToShow % 2 === 0) left += 1;\n return left;\n }\n\n if (rtl) {\n return slidesToShow - 1;\n }\n\n return 0;\n};\n\nexports.slidesOnLeft = slidesOnLeft;\n\nvar canUseDOM = function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n};\n\nexports.canUseDOM = canUseDOM;","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","module.exports = true;\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","exports.f = {}.propertyIsEnumerable;\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _slider = _interopRequireDefault(require(\"./slider\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = _slider[\"default\"];\nexports[\"default\"] = _default;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","exports.f = Object.getOwnPropertySymbols;\n","module.exports = {};\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","exports.f = require('./_wks');\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = prefix || defaultDelimiter\n var pattern = capture || group\n var prevText = prefix || (typeof tokens[tokens.length - 1] === 'string' ? tokens[tokens.length - 1] : '')\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : restrictBacktrack(delimiter, prevText))\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\nfunction restrictBacktrack(delimiter, prevText) {\n if (!prevText || prevText.indexOf(delimiter) > -1) {\n return '[^' + escapeString(delimiter) + ']+?'\n }\n\n return escapeString(prevText) + '|(?:(?!' + escapeString(prevText) + ')[^' + escapeString(delimiter) + '])+?'\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","\"use strict\";\n\nfunction _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); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.ReactGAImplementation = void 0;\n\nvar _ga = _interopRequireWildcard(require(\"./ga4\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar ReactGAImplementation = _ga.GA4;\nexports.ReactGAImplementation = ReactGAImplementation;\nvar _default = _ga[\"default\"];\nexports[\"default\"] = _default;","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = require('./_hide');\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","/**\n * Helper function for iterating over a collection\n *\n * @param collection\n * @param fn\n */\nfunction each(collection, fn) {\n var i = 0,\n length = collection.length,\n cont;\n\n for(i; i < length; i++) {\n cont = fn(collection[i], i);\n if(cont === false) {\n break; //allow early exit\n }\n }\n}\n\n/**\n * Helper function for determining whether target object is an array\n *\n * @param target the object under test\n * @return {Boolean} true if array, false otherwise\n */\nfunction isArray(target) {\n return Object.prototype.toString.apply(target) === '[object Array]';\n}\n\n/**\n * Helper function for determining whether target object is a function\n *\n * @param target the object under test\n * @return {Boolean} true if function, false otherwise\n */\nfunction isFunction(target) {\n return typeof target === 'function';\n}\n\nmodule.exports = {\n isFunction : isFunction,\n isArray : isArray,\n each : each\n};\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):e.AOS=t()}(this,function(){\"use strict\";var e=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{},t=\"Expected a function\",n=NaN,o=\"[object Symbol]\",i=/^\\s+|\\s+$/g,a=/^[-+]0x[0-9a-f]+$/i,r=/^0b[01]+$/i,c=/^0o[0-7]+$/i,s=parseInt,u=\"object\"==typeof e&&e&&e.Object===Object&&e,d=\"object\"==typeof self&&self&&self.Object===Object&&self,l=u||d||Function(\"return this\")(),f=Object.prototype.toString,m=Math.max,p=Math.min,b=function(){return l.Date.now()};function v(e,n,o){var i,a,r,c,s,u,d=0,l=!1,f=!1,v=!0;if(\"function\"!=typeof e)throw new TypeError(t);function y(t){var n=i,o=a;return i=a=void 0,d=t,c=e.apply(o,n)}function h(e){var t=e-u;return void 0===u||t>=n||t<0||f&&e-d>=r}function k(){var e=b();if(h(e))return x(e);s=setTimeout(k,function(e){var t=n-(e-u);return f?p(t,r-(e-d)):t}(e))}function x(e){return s=void 0,v&&i?y(e):(i=a=void 0,c)}function O(){var e=b(),t=h(e);if(i=arguments,a=this,u=e,t){if(void 0===s)return function(e){return d=e,s=setTimeout(k,n),l?y(e):c}(u);if(f)return s=setTimeout(k,n),y(u)}return void 0===s&&(s=setTimeout(k,n)),c}return n=w(n)||0,g(o)&&(l=!!o.leading,r=(f=\"maxWait\"in o)?m(w(o.maxWait)||0,n):r,v=\"trailing\"in o?!!o.trailing:v),O.cancel=function(){void 0!==s&&clearTimeout(s),d=0,i=u=a=s=void 0},O.flush=function(){return void 0===s?c:x(b())},O}function g(e){var t=typeof e;return!!e&&(\"object\"==t||\"function\"==t)}function w(e){if(\"number\"==typeof e)return e;if(function(e){return\"symbol\"==typeof e||function(e){return!!e&&\"object\"==typeof e}(e)&&f.call(e)==o}(e))return n;if(g(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=g(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(i,\"\");var u=r.test(e);return u||c.test(e)?s(e.slice(2),u?2:8):a.test(e)?n:+e}var y=function(e,n,o){var i=!0,a=!0;if(\"function\"!=typeof e)throw new TypeError(t);return g(o)&&(i=\"leading\"in o?!!o.leading:i,a=\"trailing\"in o?!!o.trailing:a),v(e,n,{leading:i,maxWait:n,trailing:a})},h=\"Expected a function\",k=NaN,x=\"[object Symbol]\",O=/^\\s+|\\s+$/g,j=/^[-+]0x[0-9a-f]+$/i,E=/^0b[01]+$/i,N=/^0o[0-7]+$/i,z=parseInt,C=\"object\"==typeof e&&e&&e.Object===Object&&e,A=\"object\"==typeof self&&self&&self.Object===Object&&self,q=C||A||Function(\"return this\")(),L=Object.prototype.toString,T=Math.max,M=Math.min,S=function(){return q.Date.now()};function D(e){var t=typeof e;return!!e&&(\"object\"==t||\"function\"==t)}function H(e){if(\"number\"==typeof e)return e;if(function(e){return\"symbol\"==typeof e||function(e){return!!e&&\"object\"==typeof e}(e)&&L.call(e)==x}(e))return k;if(D(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=D(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(O,\"\");var n=E.test(e);return n||N.test(e)?z(e.slice(2),n?2:8):j.test(e)?k:+e}var $=function(e,t,n){var o,i,a,r,c,s,u=0,d=!1,l=!1,f=!0;if(\"function\"!=typeof e)throw new TypeError(h);function m(t){var n=o,a=i;return o=i=void 0,u=t,r=e.apply(a,n)}function p(e){var n=e-s;return void 0===s||n>=t||n<0||l&&e-u>=a}function b(){var e=S();if(p(e))return v(e);c=setTimeout(b,function(e){var n=t-(e-s);return l?M(n,a-(e-u)):n}(e))}function v(e){return c=void 0,f&&o?m(e):(o=i=void 0,r)}function g(){var e=S(),n=p(e);if(o=arguments,i=this,s=e,n){if(void 0===c)return function(e){return u=e,c=setTimeout(b,t),d?m(e):r}(s);if(l)return c=setTimeout(b,t),m(s)}return void 0===c&&(c=setTimeout(b,t)),r}return t=H(t)||0,D(n)&&(d=!!n.leading,a=(l=\"maxWait\"in n)?T(H(n.maxWait)||0,t):a,f=\"trailing\"in n?!!n.trailing:f),g.cancel=function(){void 0!==c&&clearTimeout(c),u=0,o=s=i=c=void 0},g.flush=function(){return void 0===c?r:v(S())},g},W=function(){};function P(e){e&&e.forEach(function(e){var t=Array.prototype.slice.call(e.addedNodes),n=Array.prototype.slice.call(e.removedNodes);if(function e(t){var n=void 0,o=void 0;for(n=0;n=o.out&&!n.once?a():t>=o.in?e.animated||(function(e,t){t&&t.forEach(function(t){return e.classList.add(t)})}(i,n.animatedClassNames),V(\"aos:in\",i),e.options.id&&V(\"aos:in:\"+e.options.id,i),e.animated=!0):e.animated&&!n.once&&a()}(e,window.pageYOffset)})},Z=function(e){for(var t=0,n=0;e&&!isNaN(e.offsetLeft)&&!isNaN(e.offsetTop);)t+=e.offsetLeft-(\"BODY\"!=e.tagName?e.scrollLeft:0),n+=e.offsetTop-(\"BODY\"!=e.tagName?e.scrollTop:0),e=e.offsetParent;return{top:n,left:t}},ee=function(e,t,n){var o=e.getAttribute(\"data-aos-\"+t);if(void 0!==o){if(\"true\"===o)return!0;if(\"false\"===o)return!1}return o||n},te=function(e,t){return e.forEach(function(e,n){var o=ee(e.node,\"mirror\",t.mirror),i=ee(e.node,\"once\",t.once),a=ee(e.node,\"id\"),r=t.useClassNames&&e.node.getAttribute(\"data-aos\"),c=[t.animatedClassName].concat(r?r.split(\" \"):[]).filter(function(e){return\"string\"==typeof e});t.initClassName&&e.node.classList.add(t.initClassName),e.position={in:function(e,t,n){var o=window.innerHeight,i=ee(e,\"anchor\"),a=ee(e,\"anchor-placement\"),r=Number(ee(e,\"offset\",a?0:t)),c=a||n,s=e;i&&document.querySelectorAll(i)&&(s=document.querySelectorAll(i)[0]);var u=Z(s).top-o;switch(c){case\"top-bottom\":break;case\"center-bottom\":u+=s.offsetHeight/2;break;case\"bottom-bottom\":u+=s.offsetHeight;break;case\"top-center\":u+=o/2;break;case\"center-center\":u+=o/2+s.offsetHeight/2;break;case\"bottom-center\":u+=o/2+s.offsetHeight;break;case\"top-top\":u+=o;break;case\"bottom-top\":u+=o+s.offsetHeight;break;case\"center-top\":u+=o+s.offsetHeight/2}return u+r}(e.node,t.offset,t.anchorPlacement),out:o&&function(e,t){window.innerHeight;var n=ee(e,\"anchor\"),o=ee(e,\"offset\",t),i=e;return n&&document.querySelectorAll(n)&&(i=document.querySelectorAll(n)[0]),Z(i).top+i.offsetHeight-o}(e.node,t.offset)},e.options={once:i,mirror:o,animatedClassNames:c,id:a}}),e},ne=function(){var e=document.querySelectorAll(\"[data-aos]\");return Array.prototype.map.call(e,function(e){return{node:e}})},oe=[],ie=!1,ae={offset:120,delay:0,easing:\"ease\",duration:400,disable:!1,once:!1,mirror:!1,anchorPlacement:\"top-bottom\",startEvent:\"DOMContentLoaded\",animatedClassName:\"aos-animate\",initClassName:\"aos-init\",useClassNames:!1,disableMutationObserver:!1,throttleDelay:99,debounceDelay:50},re=function(){return document.all&&!window.atob},ce=function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0]&&(ie=!0),ie&&(oe=te(oe,ae),X(oe),window.addEventListener(\"scroll\",y(function(){X(oe,ae.once)},ae.throttleDelay)))},se=function(){if(oe=ne(),de(ae.disable)||re())return ue();ce()},ue=function(){oe.forEach(function(e,t){e.node.removeAttribute(\"data-aos\"),e.node.removeAttribute(\"data-aos-easing\"),e.node.removeAttribute(\"data-aos-duration\"),e.node.removeAttribute(\"data-aos-delay\"),ae.initClassName&&e.node.classList.remove(ae.initClassName),ae.animatedClassName&&e.node.classList.remove(ae.animatedClassName)})},de=function(e){return!0===e||\"mobile\"===e&&U.mobile()||\"phone\"===e&&U.phone()||\"tablet\"===e&&U.tablet()||\"function\"==typeof e&&!0===e()};return{init:function(e){return ae=I(ae,e),oe=ne(),ae.disableMutationObserver||_.isSupported()||(console.info('\\n aos: MutationObserver is not supported on this browser,\\n code mutations observing has been disabled.\\n You may have to call \"refreshHard()\" by yourself.\\n '),ae.disableMutationObserver=!0),ae.disableMutationObserver||_.ready(\"[data-aos]\",se),de(ae.disable)||re()?ue():(document.querySelector(\"body\").setAttribute(\"data-aos-easing\",ae.easing),document.querySelector(\"body\").setAttribute(\"data-aos-duration\",ae.duration),document.querySelector(\"body\").setAttribute(\"data-aos-delay\",ae.delay),-1===[\"DOMContentLoaded\",\"load\"].indexOf(ae.startEvent)?document.addEventListener(ae.startEvent,function(){ce(!0)}):window.addEventListener(\"load\",function(){ce(!0)}),\"DOMContentLoaded\"===ae.startEvent&&[\"complete\",\"interactive\"].indexOf(document.readyState)>-1&&ce(!0),window.addEventListener(\"resize\",$(ce,ae.debounceDelay,!0)),window.addEventListener(\"orientationchange\",$(ce,ae.debounceDelay,!0)),oe)},refresh:ce,refreshHard:se}});\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/*! For license information please see index.js.LICENSE.txt */\n!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.ReactCookieConsent=t():e.ReactCookieConsent=t()}(\"undefined\"!=typeof self?self:this,(function(){return function(){var e={808:function(e,t,n){var o,r,i;i=function(){function e(){for(var e=0,t={};e0&&void 0!==arguments[0]?arguments[0]:j,t=l().get(e);return void 0===t?l().get(x(e)):t},k=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:j;l().remove(e)},x=function(e){return\"\".concat(e,\"-legacy\")},j=\"CookieConsent\",B=function(e){var t=e.condition,n=e.wrapper,o=e.children;return t?n(o):o},w=function(e){!function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,\"prototype\",{writable:!1}),t&&y(e,t)}(s,e);var n,o,r,i,c=(r=s,i=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=m(r);if(i){var n=m(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return d(this,e)});function s(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,s),O(v(t=c.call(this,e)),\"handleScroll\",(function(){var e=t.props.acceptOnScrollPercentage,n=document.documentElement,o=document.body,r=\"scrollTop\",i=\"scrollHeight\";(n[r]||o[r])/((n[i]||o[i])-n.clientHeight)*100>e&&t.accept(!0)})),O(v(t),\"removeScrollListener\",(function(){t.props.acceptOnScroll&&window.removeEventListener(\"scroll\",t.handleScroll)})),t.state={visible:!1,style:{alignItems:\"baseline\",background:\"#353535\",color:\"white\",display:\"flex\",flexWrap:\"wrap\",justifyContent:\"space-between\",left:\"0\",position:\"fixed\",width:\"100%\",zIndex:\"999\"},buttonStyle:{background:\"#ffd42d\",border:\"0\",borderRadius:\"0px\",boxShadow:\"none\",color:\"black\",cursor:\"pointer\",flex:\"0 0 auto\",padding:\"5px 10px\",margin:\"15px\"},declineButtonStyle:{background:\"#c12a2a\",border:\"0\",borderRadius:\"0px\",boxShadow:\"none\",color:\"#e5e5e5\",cursor:\"pointer\",flex:\"0 0 auto\",padding:\"5px 10px\",margin:\"15px\"},contentStyle:{flex:\"1 0 300px\",margin:\"15px\"},overlayStyle:{position:\"fixed\",left:0,top:0,width:\"100%\",height:\"100%\",zIndex:\"999\",backgroundColor:\"rgba(0,0,0,0.3)\"}},t}return n=s,o=[{key:\"componentDidMount\",value:function(){var e=this.props.debug;(void 0===this.getCookieValue()||e)&&(this.setState({visible:!0}),this.props.acceptOnScroll&&window.addEventListener(\"scroll\",this.handleScroll,{passive:!0}))}},{key:\"componentWillUnmount\",value:function(){this.removeScrollListener()}},{key:\"accept\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.props,n=t.cookieName,o=t.cookieValue,r=t.hideOnAccept,i=t.onAccept;this.setCookie(n,o),i(null!=e&&e),r&&(this.setState({visible:!1}),this.removeScrollListener())}},{key:\"overlayClick\",value:function(){var e=this.props,t=e.acceptOnOverlayClick,n=e.onOverlayClick;t&&this.accept(),n()}},{key:\"decline\",value:function(){var e=this.props,t=e.cookieName,n=e.declineCookieValue,o=e.hideOnDecline,r=e.onDecline;e.setDeclineCookie&&this.setCookie(t,n),r(),o&&this.setState({visible:!1})}},{key:\"setCookie\",value:function(e,t){var n=this.props,o=n.extraCookieOptions,r=n.expires,i=n.sameSite,c=this.props.cookieSecurity;void 0===c&&(c=!location||\"https:\"===location.protocol);var s=f(f({expires:r},o),{},{sameSite:i,secure:c});i===C.NONE&&l().set(x(e),t,s),l().set(e,t,s)}},{key:\"getCookieValue\",value:function(){var e=this.props.cookieName;return S(e)}},{key:\"render\",value:function(){var e=this;switch(this.props.visible){case g.HIDDEN:return null;case g.BY_COOKIE_VALUE:if(!this.state.visible)return null}var n=this.props,o=n.location,r=n.style,i=n.buttonStyle,c=n.declineButtonStyle,l=n.contentStyle,s=n.disableStyles,a=n.buttonText,p=n.declineButtonText,b=n.containerClasses,y=n.contentClasses,d=n.buttonClasses,v=n.buttonWrapperClasses,m=n.declineButtonClasses,O=n.buttonId,C=n.declineButtonId,S=n.disableButtonStyles,k=n.enableDeclineButton,x=n.flipButtons,j=n.ButtonComponent,w=n.overlay,P=n.overlayClasses,T=n.overlayStyle,E=n.ariaAcceptLabel,D=n.ariaDeclineLabel,I=n.customContainerAttributes,_=n.customContentAttributes,A=n.customButtonProps,N=n.customDeclineButtonProps,R=n.customButtonWrapperAttributes,L={},V={},U={},W={},M={};switch(s?(L=u({},r),V=u({},i),U=u({},c),W=u({},l),M=u({},T)):(L=u({},f(f({},this.state.style),r)),W=u({},f(f({},this.state.contentStyle),l)),M=u({},f(f({},this.state.overlayStyle),T)),S?(V=u({},i),U=u({},c)):(V=u({},f(f({},this.state.buttonStyle),i)),U=u({},f(f({},this.state.declineButtonStyle),c)))),o){case h.TOP:L.top=\"0\";break;case h.BOTTOM:L.bottom=\"0\"}var H=[];return k&&H.push(t().createElement(j,u({key:\"declineButton\",style:U,className:m,id:C,\"aria-label\":D,onClick:function(){e.decline()}},N),p)),H.push(t().createElement(j,u({key:\"acceptButton\",style:V,className:d,id:O,\"aria-label\":E,onClick:function(){e.accept()}},A),a)),x&&H.reverse(),t().createElement(B,{condition:w,wrapper:function(n){return t().createElement(\"div\",{style:M,className:P,onClick:function(){e.overlayClick()}},n)}},t().createElement(\"div\",u({className:\"\".concat(b),style:L},I),t().createElement(\"div\",u({style:W,className:y},_),this.props.children),t().createElement(\"div\",u({className:\"\".concat(v)},R),H.map((function(e){return e})))))}}],o&&b(n.prototype,o),Object.defineProperty(n,\"prototype\",{writable:!1}),s}(e.Component);w.propTypes={location:i().oneOf(Object.keys(h).map((function(e){return h[e]}))),visible:i().oneOf(Object.keys(g).map((function(e){return g[e]}))),sameSite:i().oneOf(Object.keys(C).map((function(e){return C[e]}))),style:i().object,buttonStyle:i().object,declineButtonStyle:i().object,contentStyle:i().object,children:i().any,disableStyles:i().bool,hideOnAccept:i().bool,hideOnDecline:i().bool,onAccept:i().func,onDecline:i().func,buttonText:i().oneOfType([i().string,i().func,i().element]),declineButtonText:i().oneOfType([i().string,i().func,i().element]),cookieName:i().string,cookieValue:i().oneOfType([i().string,i().bool,i().number]),declineCookieValue:i().oneOfType([i().string,i().bool,i().number]),setDeclineCookie:i().bool,debug:i().bool,expires:i().number,containerClasses:i().string,contentClasses:i().string,buttonClasses:i().string,buttonWrapperClasses:i().string,declineButtonClasses:i().string,buttonId:i().string,declineButtonId:i().string,extraCookieOptions:i().object,disableButtonStyles:i().bool,enableDeclineButton:i().bool,flipButtons:i().bool,ButtonComponent:i().elementType,cookieSecurity:i().bool,overlay:i().bool,overlayClasses:i().string,overlayStyle:i().object,onOverlayClick:i().func,acceptOnOverlayClick:i().bool,ariaAcceptLabel:i().string,ariaDeclineLabel:i().string,acceptOnScroll:i().bool,acceptOnScrollPercentage:i().number,customContentAttributes:i().object,customContainerAttributes:i().object,customButtonProps:i().object,customDeclineButtonProps:i().object,customButtonWrapperAttributes:i().object},w.defaultProps={disableStyles:!1,hideOnAccept:!0,hideOnDecline:!0,location:h.BOTTOM,visible:g.BY_COOKIE_VALUE,onAccept:function(){},onDecline:function(){},cookieName:j,cookieValue:!0,declineCookieValue:!1,setDeclineCookie:!0,buttonText:\"I understand\",declineButtonText:\"I decline\",debug:!1,expires:365,containerClasses:\"CookieConsent\",contentClasses:\"\",buttonClasses:\"\",buttonWrapperClasses:\"\",declineButtonClasses:\"\",buttonId:\"rcc-confirm-button\",declineButtonId:\"rcc-decline-button\",extraCookieOptions:{},disableButtonStyles:!1,enableDeclineButton:!1,flipButtons:!1,sameSite:C.LAX,ButtonComponent:function(e){var n=e.children,o=function(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}(e,a);return t().createElement(\"button\",o,n)},overlay:!1,overlayClasses:\"\",onOverlayClick:function(){},acceptOnOverlayClick:!1,ariaAcceptLabel:\"Accept cookies\",ariaDeclineLabel:\"Decline cookies\",acceptOnScroll:!1,acceptOnScrollPercentage:25,customContentAttributes:{},customContainerAttributes:{},customButtonProps:{},customDeclineButtonProps:{},customButtonWrapperAttributes:{}};const P=w}(),o}()}));","'use strict';\n\nvar _TagManager = require('./TagManager');\n\nvar _TagManager2 = _interopRequireDefault(_TagManager);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = _TagManager2.default;","export const focusHandling = (prop = null) => {\n // make focus ring visible only for keyboard navigation\n const focusEls = document.querySelectorAll('a, button, input, select, textarea, label, .form-switch, [tabindex]');\n const resetFocusEls = (bool) => {\n const outlineStyle = bool ? '' : 'none';\n focusEls.forEach((focusTab) => {\n (!prop || prop === 'outline') && focusTab.style.setProperty('outline', outlineStyle);\n (!prop || prop === 'box-shadow') && focusTab.style.setProperty('box-shadow', outlineStyle);\n });\n };\n const detectClick = () => {\n if (focusEls.length > 0) {\n resetFocusEls(false);\n // eslint-disable-next-line no-use-before-define\n window.addEventListener('keydown', detectTab);\n }\n window.removeEventListener('mousedown', detectClick);\n };\n const detectTab = (event) => {\n if (event.keyCode !== 9)\n return;\n resetFocusEls(true);\n window.removeEventListener('keydown', detectTab);\n window.addEventListener('mousedown', detectClick);\n };\n window.addEventListener('mousedown', detectClick);\n};\n","/** @license React v17.0.2\n * react.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'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(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 D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(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){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(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(oa,\npa);D[b]=new B(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(oa,pa);D[b]=new B(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(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(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 ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function 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 m({},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 $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(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\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(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 bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!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,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({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 vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(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}}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(y(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;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&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=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){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 Oe(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)}\nvar Pe=fa&&\"documentMode\"in document&&11>=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&&Oe(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&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;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}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)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=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(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&64))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 jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"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[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,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=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","/** @license React v17.0.2\n * react-jsx-runtime.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'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/_core').Object.getPrototypeOf;\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function 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 (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","module.exports = function () { /* empty */ };\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","(typeof navigator !== \"undefined\") && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n\n default:\n value = 1.1;\n break;\n }\n\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n\n return arr;\n }\n\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n\n if (type === 'int16') {\n return new Int16Array(len);\n }\n\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n\n return createRegularArray(type, len);\n }\n\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n\n return createRegularArray;\n }();\n\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\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); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var expressionsInterfaces = null;\n var idPrefix$1 = '';\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n var _shouldRoundValues = false;\n var bmPow = Math.pow;\n var bmSqrt = Math.sqrt;\n var bmFloor = Math.floor;\n var bmMax = Math.max;\n var bmMin = Math.min;\n var BMMath = {};\n\n (function () {\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\n var i;\n var len = propertyNames.length;\n\n for (i = 0; i < len; i += 1) {\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\n }\n })();\n\n function ProjectInterface$1() {\n return {};\n }\n\n BMMath.random = Math.random;\n\n BMMath.abs = function (val) {\n var tOfVal = _typeof$6(val);\n\n if (tOfVal === 'object' && val.length) {\n var absArr = createSizedArray(val.length);\n var i;\n var len = val.length;\n\n for (i = 0; i < len; i += 1) {\n absArr[i] = Math.abs(val[i]);\n }\n\n return absArr;\n }\n\n return Math.abs(val);\n };\n\n var defaultCurveSegments = 150;\n var degToRads = Math.PI / 180;\n var roundCorner = 0.5519;\n\n function roundValues(flag) {\n _shouldRoundValues = !!flag;\n }\n\n function bmRnd(value) {\n if (_shouldRoundValues) {\n return Math.round(value);\n }\n\n return value;\n }\n\n function styleDiv(element) {\n element.style.position = 'absolute';\n element.style.top = 0;\n element.style.left = 0;\n element.style.display = 'block';\n element.style.transformOrigin = '0 0';\n element.style.webkitTransformOrigin = '0 0';\n element.style.backfaceVisibility = 'visible';\n element.style.webkitBackfaceVisibility = 'visible';\n element.style.transformStyle = 'preserve-3d';\n element.style.webkitTransformStyle = 'preserve-3d';\n element.style.mozTransformStyle = 'preserve-3d';\n }\n\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n this.type = type;\n this.currentTime = currentTime;\n this.totalTime = totalTime;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteEvent(type, frameMultiplier) {\n this.type = type;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n this.type = type;\n this.currentLoop = currentLoop;\n this.totalLoops = totalLoops;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n this.type = type;\n this.firstFrame = firstFrame;\n this.totalFrames = totalFrames;\n }\n\n function BMDestroyEvent(type, target) {\n this.type = type;\n this.target = target;\n }\n\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\n this.type = 'renderFrameError';\n this.nativeError = nativeError;\n this.currentTime = currentTime;\n }\n\n function BMConfigErrorEvent(nativeError) {\n this.type = 'configError';\n this.nativeError = nativeError;\n }\n\n function BMAnimationConfigErrorEvent(type, nativeError) {\n this.type = type;\n this.nativeError = nativeError;\n }\n\n var createElementID = function () {\n var _count = 0;\n return function createID() {\n _count += 1;\n return idPrefix$1 + '__lottie_element_' + _count;\n };\n }();\n\n function HSVtoRGB(h, s, v) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n\n default:\n break;\n }\n\n return [r, g, b];\n }\n\n function RGBtoHSV(r, g, b) {\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n var s = max === 0 ? 0 : d / max;\n var v = max / 255;\n\n switch (max) {\n case min:\n h = 0;\n break;\n\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n\n default:\n break;\n }\n\n return [h, s, v];\n }\n\n function addSaturationToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[1] += offset;\n\n if (hsv[1] > 1) {\n hsv[1] = 1;\n } else if (hsv[1] <= 0) {\n hsv[1] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addBrightnessToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[2] += offset;\n\n if (hsv[2] > 1) {\n hsv[2] = 1;\n } else if (hsv[2] < 0) {\n hsv[2] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addHueToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[0] += offset / 360;\n\n if (hsv[0] > 1) {\n hsv[0] -= 1;\n } else if (hsv[0] < 0) {\n hsv[0] += 1;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n var rgbToHex = function () {\n var colorMap = [];\n var i;\n var hex;\n\n for (i = 0; i < 256; i += 1) {\n hex = i.toString(16);\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n }\n\n return function (r, g, b) {\n if (r < 0) {\n r = 0;\n }\n\n if (g < 0) {\n g = 0;\n }\n\n if (b < 0) {\n b = 0;\n }\n\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n };\n }();\n\n var setSubframeEnabled = function setSubframeEnabled(flag) {\n subframeEnabled = !!flag;\n };\n\n var getSubframeEnabled = function getSubframeEnabled() {\n return subframeEnabled;\n };\n\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\n expressionsPlugin = value;\n };\n\n var getExpressionsPlugin = function getExpressionsPlugin() {\n return expressionsPlugin;\n };\n\n var setExpressionInterfaces = function setExpressionInterfaces(value) {\n expressionsInterfaces = value;\n };\n\n var getExpressionInterfaces = function getExpressionInterfaces() {\n return expressionsInterfaces;\n };\n\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n defaultCurveSegments = value;\n };\n\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\n return defaultCurveSegments;\n };\n\n var setIdPrefix = function setIdPrefix(value) {\n idPrefix$1 = value;\n };\n\n var getIdPrefix = function getIdPrefix() {\n return idPrefix$1;\n };\n\n function createNS(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElementNS(svgNS, type);\n }\n\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); }\n\n var dataManager = function () {\n var _counterId = 1;\n var processes = [];\n var workerFn;\n var workerInstance;\n var workerProxy = {\n onmessage: function onmessage() {},\n postMessage: function postMessage(path) {\n workerFn({\n data: path\n });\n }\n };\n var _workerSelf = {\n postMessage: function postMessage(data) {\n workerProxy.onmessage({\n data: data\n });\n }\n };\n\n function createWorker(fn) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n type: 'text/javascript'\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\n var url = URL.createObjectURL(blob);\n return new Worker(url);\n }\n\n workerFn = fn;\n return workerProxy;\n }\n\n function setupWorker() {\n if (!workerInstance) {\n workerInstance = createWorker(function workerStart(e) {\n function dataFunctionManager() {\n function completeLayers(layers, comps) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if ('ks' in layerData && !layerData.completed) {\n layerData.completed = true;\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n\n return JSON.parse(JSON.stringify(comp.layers));\n }\n\n return null;\n }\n\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n\n return null;\n }\n\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n }\n }\n\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\n return xhr.response;\n }\n\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n\n return null;\n }\n\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n\n try {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), path, true);\n } catch (error) {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), fullPath + '/' + path, true);\n }\n\n xhr.send();\n }\n\n return {\n load: loadAsset\n };\n }();\n }\n\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n\n _workerSelf.dataManager.completeData(animation);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n\n function imageLoaded() {\n this.loadedAssets += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n }\n\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n\n if (box.width || _count > 500) {\n this._imageLoaded();\n\n clearInterval(intervalId);\n }\n\n _count += 1;\n }.bind(this), 50);\n }\n\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n\n function setPath(path) {\n this.path = path || '';\n }\n\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n\n this._cbs[eventName].push(callback);\n\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n\n i -= 1;\n len -= 1;\n }\n\n i += 1;\n }\n\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n\n if (keysCount === 0) {\n throw new Error();\n }\n\n return keys;\n }\n\n return function (_markers) {\n var markers = [];\n\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i].cm\n };\n }\n }\n\n markers.push(markerData);\n }\n\n return markers;\n };\n }();\n\n var ProjectInterface = function () {\n function registerComposition(comp) {\n this.compositions.push(comp);\n }\n\n return function () {\n function _thisProjectFunction(name) {\n var i = 0;\n var len = this.compositions.length;\n\n while (i < len) {\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n this.compositions[i].prepareFrame(this.currentFrame);\n }\n\n return this.compositions[i].compInterface;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n _thisProjectFunction.compositions = [];\n _thisProjectFunction.currentFrame = 0;\n _thisProjectFunction.registerComposition = registerComposition;\n return _thisProjectFunction;\n };\n }();\n\n var renderers = {};\n\n var registerRenderer = function registerRenderer(key, value) {\n renderers[key] = value;\n };\n\n function getRenderer(key) {\n return renderers[key];\n }\n\n function getRegisteredRenderer() {\n // Returns canvas by default for compatibility\n if (renderers.canvas) {\n return 'canvas';\n } // Returns any renderer that is registered\n\n\n for (var key in renderers) {\n if (renderers[key]) {\n return key;\n }\n }\n\n return '';\n }\n\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); }\n\n var AnimationItem = function AnimationItem() {\n this._cbs = [];\n this.name = '';\n this.path = '';\n this.isLoaded = false;\n this.currentFrame = 0;\n this.currentRawFrame = 0;\n this.firstFrame = 0;\n this.totalFrames = 0;\n this.frameRate = 0;\n this.frameMult = 0;\n this.playSpeed = 1;\n this.playDirection = 1;\n this.playCount = 0;\n this.animationData = {};\n this.assets = [];\n this.isPaused = true;\n this.autoplay = false;\n this.loop = true;\n this.renderer = null;\n this.animationID = createElementID();\n this.assetsPath = '';\n this.timeCompleted = 0;\n this.segmentPos = 0;\n this.isSubframeEnabled = getSubframeEnabled();\n this.segments = [];\n this._idle = true;\n this._completedLoop = false;\n this.projectInterface = ProjectInterface();\n this.imagePreloader = new ImagePreloader();\n this.audioController = audioControllerFactory();\n this.markers = [];\n this.configAnimation = this.configAnimation.bind(this);\n this.onSetupError = this.onSetupError.bind(this);\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\n this.expressionsPlugin = getExpressionsPlugin();\n };\n\n extendPrototype([BaseEvent], AnimationItem);\n\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n\n var animType = 'svg';\n\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$4(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : getRegisteredRenderer() || 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n if (prerender === 'false') {\n params.prerender = false;\n }\n\n if (!params.path) {\n this.trigger('destroy');\n } else {\n this.setParams(params);\n }\n };\n\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n\n i += 1;\n }\n }\n\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n\n if (data.assets) {\n len = data.assets.length;\n\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n\n try {\n this.animationData = animData;\n\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n\n this.renderer.configAnimation(animData);\n\n if (!animData.assets) {\n animData.assets = [];\n }\n\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n\n if (this.autoplay) {\n this.play();\n }\n }\n };\n\n AnimationItem.prototype.resize = function (width, height) {\n // Adding this validation for backwards compatibility in case an event object was being passed down\n var _width = typeof width === 'number' ? width : undefined;\n\n var _height = typeof height === 'number' ? height : undefined;\n\n this.renderer.updateContainerSize(_width, _height);\n };\n\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n\n try {\n if (this.expressionsPlugin) {\n this.expressionsPlugin.resetFrame();\n }\n\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.isPaused = false;\n this.trigger('_play');\n this.audioController.resume();\n\n if (this._idle) {\n this._idle = false;\n this.trigger('_active');\n }\n }\n };\n\n AnimationItem.prototype.pause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === false) {\n this.isPaused = true;\n this.trigger('_pause');\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n\n return null;\n };\n\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n\n this.pause();\n };\n\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n\n this.play();\n };\n\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n\n this.trigger('segmentStart');\n };\n\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n\n if (_typeof$4(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n\n if (this.isPaused) {\n this.play();\n }\n };\n\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n\n return false;\n };\n\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.expressionsPlugin = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setLoop = function (isLooping) {\n this.loop = isLooping;\n };\n\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.setVolume(val);\n };\n\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.mute();\n };\n\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.unmute();\n };\n\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n };\n\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\n try {\n var element = this.renderer.getElementByPath(path);\n element.updateDocumentData(documentData, index);\n } catch (error) {// TODO: decide how to handle catch case\n }\n };\n\n AnimationItem.prototype.trigger = function (name) {\n if (this._cbs && this._cbs[name]) {\n switch (name) {\n case 'enterFrame':\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n\n case 'drawnFrame':\n this.drawnFrameEvent.currentTime = this.currentFrame;\n this.drawnFrameEvent.totalTime = this.totalFrames;\n this.drawnFrameEvent.direction = this.frameModifier;\n this.triggerEvent(name, this.drawnFrameEvent);\n break;\n\n case 'loopComplete':\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n break;\n\n case 'complete':\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n break;\n\n case 'segmentStart':\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n break;\n\n case 'destroy':\n this.triggerEvent(name, new BMDestroyEvent(name, this));\n break;\n\n default:\n this.triggerEvent(name);\n }\n }\n\n if (name === 'enterFrame' && this.onEnterFrame) {\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n }\n\n if (name === 'loopComplete' && this.onLoopComplete) {\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n }\n\n if (name === 'complete' && this.onComplete) {\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n }\n\n if (name === 'segmentStart' && this.onSegmentStart) {\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n }\n\n if (name === 'destroy' && this.onDestroy) {\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\n }\n };\n\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n var animationManager = function () {\n var moduleOb = {};\n var registeredAnimations = [];\n var initTime = 0;\n var len = 0;\n var playingAnimationsNum = 0;\n var _stopped = true;\n var _isFrozen = false;\n\n function removeElement(ev) {\n var i = 0;\n var animItem = ev.target;\n\n while (i < len) {\n if (registeredAnimations[i].animation === animItem) {\n registeredAnimations.splice(i, 1);\n i -= 1;\n len -= 1;\n\n if (!animItem.isPaused) {\n subtractPlayingCount();\n }\n }\n\n i += 1;\n }\n }\n\n function registerAnimation(element, animationData) {\n if (!element) {\n return null;\n }\n\n var i = 0;\n\n while (i < len) {\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n return registeredAnimations[i].animation;\n }\n\n i += 1;\n }\n\n var animItem = new AnimationItem();\n setupAnimation(animItem, element);\n animItem.setData(element, animationData);\n return animItem;\n }\n\n function getRegisteredAnimations() {\n var i;\n var lenAnims = registeredAnimations.length;\n var animations = [];\n\n for (i = 0; i < lenAnims; i += 1) {\n animations.push(registeredAnimations[i].animation);\n }\n\n return animations;\n }\n\n function addPlayingCount() {\n playingAnimationsNum += 1;\n activate();\n }\n\n function subtractPlayingCount() {\n playingAnimationsNum -= 1;\n }\n\n function setupAnimation(animItem, element) {\n animItem.addEventListener('destroy', removeElement);\n animItem.addEventListener('_active', addPlayingCount);\n animItem.addEventListener('_idle', subtractPlayingCount);\n registeredAnimations.push({\n elem: element,\n animation: animItem\n });\n len += 1;\n }\n\n function loadAnimation(params) {\n var animItem = new AnimationItem();\n setupAnimation(animItem, null);\n animItem.setParams(params);\n return animItem;\n }\n\n function setSpeed(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setSpeed(val, animation);\n }\n }\n\n function setDirection(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setDirection(val, animation);\n }\n }\n\n function play(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.play(animation);\n }\n }\n\n function resume(nowTime) {\n var elapsedTime = nowTime - initTime;\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.advanceTime(elapsedTime);\n }\n\n initTime = nowTime;\n\n if (playingAnimationsNum && !_isFrozen) {\n window.requestAnimationFrame(resume);\n } else {\n _stopped = true;\n }\n }\n\n function first(nowTime) {\n initTime = nowTime;\n window.requestAnimationFrame(resume);\n }\n\n function pause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.pause(animation);\n }\n }\n\n function goToAndStop(value, isFrame, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n }\n }\n\n function stop(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.stop(animation);\n }\n }\n\n function togglePause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.togglePause(animation);\n }\n }\n\n function destroy(animation) {\n var i;\n\n for (i = len - 1; i >= 0; i -= 1) {\n registeredAnimations[i].animation.destroy(animation);\n }\n }\n\n function searchAnimations(animationData, standalone, renderer) {\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n var i;\n var lenAnims = animElements.length;\n\n for (i = 0; i < lenAnims; i += 1) {\n if (renderer) {\n animElements[i].setAttribute('data-bm-type', renderer);\n }\n\n registerAnimation(animElements[i], animationData);\n }\n\n if (standalone && lenAnims === 0) {\n if (!renderer) {\n renderer = 'svg';\n }\n\n var body = document.getElementsByTagName('body')[0];\n body.innerText = '';\n var div = createTag('div');\n div.style.width = '100%';\n div.style.height = '100%';\n div.setAttribute('data-bm-type', renderer);\n body.appendChild(div);\n registerAnimation(div, animationData);\n }\n }\n\n function resize() {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.resize();\n }\n }\n\n function activate() {\n if (!_isFrozen && playingAnimationsNum) {\n if (_stopped) {\n window.requestAnimationFrame(first);\n _stopped = false;\n }\n }\n }\n\n function freeze() {\n _isFrozen = true;\n }\n\n function unfreeze() {\n _isFrozen = false;\n activate();\n }\n\n function setVolume(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setVolume(val, animation);\n }\n }\n\n function mute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.mute(animation);\n }\n }\n\n function unmute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.unmute(animation);\n }\n }\n\n moduleOb.registerAnimation = registerAnimation;\n moduleOb.loadAnimation = loadAnimation;\n moduleOb.setSpeed = setSpeed;\n moduleOb.setDirection = setDirection;\n moduleOb.play = play;\n moduleOb.pause = pause;\n moduleOb.stop = stop;\n moduleOb.togglePause = togglePause;\n moduleOb.searchAnimations = searchAnimations;\n moduleOb.resize = resize; // moduleOb.start = start;\n\n moduleOb.goToAndStop = goToAndStop;\n moduleOb.destroy = destroy;\n moduleOb.freeze = freeze;\n moduleOb.unfreeze = unfreeze;\n moduleOb.setVolume = setVolume;\n moduleOb.mute = mute;\n moduleOb.unmute = unmute;\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n return moduleOb;\n }();\n\n /* eslint-disable */\n var BezierFactory = function () {\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\n var ob = {};\n ob.getBezierEasing = getBezierEasing;\n var beziers = {};\n\n function getBezierEasing(a, b, c, d, nm) {\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\n if (beziers[str]) {\n return beziers[str];\n }\n\n var bezEasing = new BezierEasing([a, b, c, d]);\n beziers[str] = bezEasing;\n return bezEasing;\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n var float32ArraySupported = typeof Float32Array === 'function';\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) return aGuessT;\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\n\n\n function BezierEasing(points) {\n this._p = points;\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n this._precomputed = false;\n this.get = this.get.bind(this);\n }\n\n BezierEasing.prototype = {\n get: function get(x) {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n if (!this._precomputed) this._precompute();\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n if (x === 0) return 0;\n if (x === 1) return 1;\n return calcBezier(this._getTForX(x), mY1, mY2);\n },\n // Private part\n _precompute: function _precompute() {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n this._precomputed = true;\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n this._calcSampleValues();\n }\n },\n _calcSampleValues: function _calcSampleValues() {\n var mX1 = this._p[0],\n mX2 = this._p[2];\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n },\n\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\n _getTForX: function _getTForX(aX) {\n var mX1 = this._p[0],\n mX2 = this._p[2],\n mSampleValues = this._mSampleValues;\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n\n if (initialSlope === 0.0) {\n return guessForT;\n }\n\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n };\n return ob;\n }();\n\n var pooling = function () {\n function _double(arr) {\n return arr.concat(createSizedArray(arr.length));\n }\n\n return {\n \"double\": _double\n };\n }();\n\n var poolFactory = function () {\n return function (initialLength, _create, _release) {\n var _length = 0;\n var _maxLength = initialLength;\n var pool = createSizedArray(_maxLength);\n var ob = {\n newElement: newElement,\n release: release\n };\n\n function newElement() {\n var element;\n\n if (_length) {\n _length -= 1;\n element = pool[_length];\n } else {\n element = _create();\n }\n\n return element;\n }\n\n function release(element) {\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n if (_release) {\n _release(element);\n }\n\n pool[_length] = element;\n _length += 1;\n }\n\n return ob;\n };\n }();\n\n var bezierLengthPool = function () {\n function create() {\n return {\n addedLength: 0,\n percents: createTypedArray('float32', getDefaultCurveSegments()),\n lengths: createTypedArray('float32', getDefaultCurveSegments())\n };\n }\n\n return poolFactory(8, create);\n }();\n\n var segmentsLengthPool = function () {\n function create() {\n return {\n lengths: [],\n totalLength: 0\n };\n }\n\n function release(element) {\n var i;\n var len = element.lengths.length;\n\n for (i = 0; i < len; i += 1) {\n bezierLengthPool.release(element.lengths[i]);\n }\n\n element.lengths.length = 0;\n }\n\n return poolFactory(8, create, release);\n }();\n\n function bezFunction() {\n var math = Math;\n\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n return det1 > -0.001 && det1 < 0.001;\n }\n\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n if (z1 === 0 && z2 === 0 && z3 === 0) {\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n }\n\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n var diffDist;\n\n if (dist1 > dist2) {\n if (dist1 > dist3) {\n diffDist = dist1 - dist2 - dist3;\n } else {\n diffDist = dist3 - dist2 - dist1;\n }\n } else if (dist3 > dist2) {\n diffDist = dist3 - dist2 - dist1;\n } else {\n diffDist = dist2 - dist1 - dist3;\n }\n\n return diffDist > -0.0001 && diffDist < 0.0001;\n }\n\n var getBezierLength = function () {\n return function (pt1, pt2, pt3, pt4) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point = [];\n var lastPoint = [];\n var lengthData = bezierLengthPool.newElement();\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint[i] !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n\n lastPoint[i] = point[i];\n }\n\n if (ptDistance) {\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n }\n\n lengthData.percents[k] = perc;\n lengthData.lengths[k] = addedLength;\n }\n\n lengthData.addedLength = addedLength;\n return lengthData;\n };\n }();\n\n function getSegmentsLength(shapeData) {\n var segmentsLength = segmentsLengthPool.newElement();\n var closed = shapeData.c;\n var pathV = shapeData.v;\n var pathO = shapeData.o;\n var pathI = shapeData.i;\n var i;\n var len = shapeData._length;\n var lengths = segmentsLength.lengths;\n var totalLength = 0;\n\n for (i = 0; i < len - 1; i += 1) {\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n totalLength += lengths[i].addedLength;\n }\n\n if (closed && len) {\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n totalLength += lengths[i].addedLength;\n }\n\n segmentsLength.totalLength = totalLength;\n return segmentsLength;\n }\n\n function BezierData(length) {\n this.segmentLength = 0;\n this.points = new Array(length);\n }\n\n function PointData(partial, point) {\n this.partialLength = partial;\n this.point = point;\n }\n\n var buildBezierData = function () {\n var storedData = {};\n return function (pt1, pt2, pt3, pt4) {\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\n if (!storedData[bezierName]) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point;\n var lastPoint = null;\n\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n curveSegments = 2;\n }\n\n var bezierData = new BezierData(curveSegments);\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n point = createSizedArray(len);\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n }\n\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n bezierData.points[k] = new PointData(ptDistance, point);\n lastPoint = point;\n }\n\n bezierData.segmentLength = addedLength;\n storedData[bezierName] = bezierData;\n }\n\n return storedData[bezierName];\n };\n }();\n\n function getDistancePerc(perc, bezierData) {\n var percents = bezierData.percents;\n var lengths = bezierData.lengths;\n var len = percents.length;\n var initPos = bmFloor((len - 1) * perc);\n var lengthPos = perc * bezierData.addedLength;\n var lPerc = 0;\n\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n return percents[initPos];\n }\n\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\n var flag = true;\n\n while (flag) {\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n flag = false;\n } else {\n initPos += dir;\n }\n\n if (initPos < 0 || initPos >= len - 1) {\n // FIX for TypedArrays that don't store floating point values with enough accuracy\n if (initPos === len - 1) {\n return percents[initPos];\n }\n\n flag = false;\n }\n }\n\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n }\n\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n var t1 = getDistancePerc(percent, bezierData);\n var u1 = 1 - t1;\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n return [ptX, ptY];\n }\n\n var bezierSegmentPoints = createTypedArray('float32', 8);\n\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n if (startPerc < 0) {\n startPerc = 0;\n } else if (startPerc > 1) {\n startPerc = 1;\n }\n\n var t0 = getDistancePerc(startPerc, bezierData);\n endPerc = endPerc > 1 ? 1 : endPerc;\n var t1 = getDistancePerc(endPerc, bezierData);\n var i;\n var len = pt1.length;\n var u0 = 1 - t0;\n var u1 = 1 - t1;\n var u0u0u0 = u0 * u0 * u0;\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0t0 = t0 * t0 * t0; //\n\n var u0u0u1 = u0 * u0 * u1;\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0t1 = t0 * t0 * t1; //\n\n var u0u1u1 = u0 * u1 * u1;\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1t1 = t0 * t1 * t1; //\n\n var u1u1u1 = u1 * u1 * u1;\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1t1 = t1 * t1 * t1;\n\n for (i = 0; i < len; i += 1) {\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n }\n\n return bezierSegmentPoints;\n }\n\n return {\n getSegmentsLength: getSegmentsLength,\n getNewSegment: getNewSegment,\n getPointInSegment: getPointInSegment,\n buildBezierData: buildBezierData,\n pointOnLine2D: pointOnLine2D,\n pointOnLine3D: pointOnLine3D\n };\n }\n\n var bez = bezFunction();\n\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n\n iterationIndex = 0;\n break;\n }\n\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n\n var bezierData = keyframeMetadata.bezierData;\n\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n } // caching._lastKeyframeIndex = -1;\n\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n\n break;\n }\n\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n\n caching.lastIndex = iterationIndex;\n return newValue;\n } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function setVValue(val) {\n var multipliedValue;\n\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n\n i += 1;\n }\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n\n var PropertyFactory = function () {\n function getProp(elem, data, type, mult, container) {\n if (data.sid) {\n data = elem.globalData.slotManager.getProp(data);\n }\n\n var p;\n\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n\n default:\n break;\n }\n }\n\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n\n return p;\n }\n\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n\n this._length = len;\n };\n\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n\n case 'i':\n arr = this.i;\n break;\n\n case 'o':\n arr = this.o;\n break;\n\n default:\n arr = [];\n break;\n }\n\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n\n return newPath;\n };\n\n ShapePath.prototype.length = function () {\n return this._length;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n\n shapePath._length = 0;\n shapePath.c = false;\n }\n\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n\n for (i = 0; i < len; i += 1) {\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n }\n\n return cloned;\n }\n\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n\n function newShapeCollection() {\n var shapeCollection;\n\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n\n return shapeCollection;\n }\n\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n\n shapeCollection._length = 0;\n\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n pool[_length] = shapeCollection;\n _length += 1;\n }\n\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\n\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n\n keyPropS = keyData.s[0];\n }\n\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n\n var i;\n var len = shape1._length;\n\n for (i = 0; i < len; i += 1) {\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n return false;\n }\n }\n\n return true;\n }\n\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var finalValue;\n\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n\n var i;\n var len = this.effectsSequence.length;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n\n var _cw = this.d !== 3;\n\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\n\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\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);\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\n\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\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);\n currentAng += angle * dir;\n }\n\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n\n function getShapeProp(elem, data, type) {\n var prop;\n\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n }\n\n function getConstructorFunction() {\n return ShapeProperty;\n }\n\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\n\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n }\n\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n\n function translate(tx, ty, tz) {\n tz = tz || 0;\n\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n\n return this;\n }\n\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2; // }\n\n this._identityCalculated = false;\n return this;\n }\n\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\n\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n\n function multiply(matrix) {\n var matrixProps = matrix.props;\n return this.transform(matrixProps[0], matrixProps[1], matrixProps[2], matrixProps[3], matrixProps[4], matrixProps[5], matrixProps[6], matrixProps[7], matrixProps[8], matrixProps[9], matrixProps[10], matrixProps[11], matrixProps[12], matrixProps[13], matrixProps[14], matrixProps[15]);\n }\n\n function isIdentity() {\n if (!this._identityCalculated) {\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);\n this._identityCalculated = true;\n }\n\n return this._identity;\n }\n\n function equals(matr) {\n var i = 0;\n\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n }\n\n function clone(matr) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n\n return matr;\n }\n\n function cloneFromProps(props) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\n }\n\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n\n return retPts;\n }\n\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n\n return arr;\n }\n\n function applyToPointArray(x, y, z) {\n var arr;\n\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\n arr = [x * this.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]];\n }\n\n return arr;\n }\n\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n\n var _p = this.props;\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n }\n\n function toCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n\n return cssValue;\n }\n\n function roundMatrixProperty(val) {\n var v = 10000;\n\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n\n return val;\n }\n\n function to2dCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var props = this.props;\n\n var _a = roundMatrixProperty(props[0]);\n\n var _b = roundMatrixProperty(props[1]);\n\n var _c = roundMatrixProperty(props[4]);\n\n var _d = roundMatrixProperty(props[5]);\n\n var _e = roundMatrixProperty(props[12]);\n\n var _f = roundMatrixProperty(props[13]);\n\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.multiply = multiply;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\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); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n\n function setLocation(href) {\n setLocationHref(href);\n }\n\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n\n return animationManager.loadAnimation(params);\n }\n\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n\n case 'matrix':\n return Matrix;\n\n default:\n return null;\n }\n }\n\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize; // lottie.start = start;\n\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.12.2';\n\n function checkReady() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n searchAnimations();\n }\n }\n\n function getQueryVariable(variable) {\n var vars = queryString.split('&');\n\n for (var i = 0; i < vars.length; i += 1) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) == variable) {\n // eslint-disable-line eqeqeq\n return decodeURIComponent(pair[1]);\n }\n }\n\n return null;\n }\n\n var queryString = '';\n\n if (standalone) {\n var scripts = document.getElementsByTagName('script');\n var index = scripts.length - 1;\n var myScript = scripts[index] || {\n src: ''\n };\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\n\n renderer = getQueryVariable('renderer');\n }\n\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\n\n try {\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n ) {\n window.bodymovin = lottie;\n }\n } catch (err) {//\n }\n\n var ShapeModifiers = function () {\n var ob = {};\n var modifiers = {};\n ob.registerModifier = registerModifier;\n ob.getModifier = getModifier;\n\n function registerModifier(nm, factory) {\n if (!modifiers[nm]) {\n modifiers[nm] = factory;\n }\n }\n\n function getModifier(nm, elem, data) {\n return new modifiers[nm](elem, data);\n }\n\n return ob;\n }();\n\n function ShapeModifier() {}\n\n ShapeModifier.prototype.initModifierProperties = function () {};\n\n ShapeModifier.prototype.addShapeToModifier = function () {};\n\n ShapeModifier.prototype.addShape = function (data) {\n if (!this.closed) {\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n data.sh.container.addDynamicProperty(data.sh);\n var shapeData = {\n shape: data.sh,\n data: data,\n localShapeCollection: shapeCollectionPool.newShapeCollection()\n };\n this.shapes.push(shapeData);\n this.addShapeToModifier(shapeData);\n\n if (this._isAnimated) {\n data.setAsAnimated();\n }\n }\n };\n\n ShapeModifier.prototype.init = function (elem, data) {\n this.shapes = [];\n this.elem = elem;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, data);\n this.frameId = initialDefaultFrame;\n this.closed = false;\n this.k = false;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n ShapeModifier.prototype.processKeys = function () {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n function TrimModifier() {}\n\n extendPrototype([ShapeModifier], TrimModifier);\n\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n this.sValue = 0;\n this.eValue = 0;\n this.getValue = this.processKeys;\n this.m = data.m;\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n };\n\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n shapeData.pathsData = [];\n };\n\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n var segments = [];\n\n if (e <= 1) {\n segments.push({\n s: s,\n e: e\n });\n } else if (s >= 1) {\n segments.push({\n s: s - 1,\n e: e - 1\n });\n } else {\n segments.push({\n s: s,\n e: 1\n });\n segments.push({\n s: 0,\n e: e - 1\n });\n }\n\n var shapeSegments = [];\n var i;\n var len = segments.length;\n var segmentOb;\n\n for (i = 0; i < len; i += 1) {\n segmentOb = segments[i];\n\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n var shapeS;\n var shapeE;\n\n if (segmentOb.s * totalModifierLength <= addedLength) {\n shapeS = 0;\n } else {\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n }\n\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n shapeE = 1;\n } else {\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n }\n\n shapeSegments.push([shapeS, shapeE]);\n }\n }\n\n if (!shapeSegments.length) {\n shapeSegments.push([0, 0]);\n }\n\n return shapeSegments;\n };\n\n TrimModifier.prototype.releasePathsData = function (pathsData) {\n var i;\n var len = pathsData.length;\n\n for (i = 0; i < len; i += 1) {\n segmentsLengthPool.release(pathsData[i]);\n }\n\n pathsData.length = 0;\n return pathsData;\n };\n\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n var s;\n var e;\n\n if (this._mdf || _isFirstFrame) {\n var o = this.o.v % 360 / 360;\n\n if (o < 0) {\n o += 1;\n }\n\n if (this.s.v > 1) {\n s = 1 + o;\n } else if (this.s.v < 0) {\n s = 0 + o;\n } else {\n s = this.s.v + o;\n }\n\n if (this.e.v > 1) {\n e = 1 + o;\n } else if (this.e.v < 0) {\n e = 0 + o;\n } else {\n e = this.e.v + o;\n }\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n s = Math.round(s * 10000) * 0.0001;\n e = Math.round(e * 10000) * 0.0001;\n this.sValue = s;\n this.eValue = e;\n } else {\n s = this.sValue;\n e = this.eValue;\n }\n\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var pathsData;\n var pathData;\n var totalShapeLength;\n var totalModifierLength = 0;\n\n if (e === s) {\n for (i = 0; i < len; i += 1) {\n this.shapes[i].localShapeCollection.releaseShapes();\n this.shapes[i].shape._mdf = true;\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\n if (this._mdf) {\n this.shapes[i].pathsData.length = 0;\n }\n }\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n var segments = [];\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n shapeData.shape.paths = shapeData.localShapeCollection;\n } else {\n shapePaths = shapeData.shape.paths;\n jLen = shapePaths._length;\n totalShapeLength = 0;\n\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n totalShapeLength = shapeData.totalShapeLength;\n } else {\n pathsData = this.releasePathsData(shapeData.pathsData);\n\n for (j = 0; j < jLen; j += 1) {\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n pathsData.push(pathData);\n totalShapeLength += pathData.totalLength;\n }\n\n shapeData.totalShapeLength = totalShapeLength;\n shapeData.pathsData = pathsData;\n }\n\n totalModifierLength += totalShapeLength;\n shapeData.shape._mdf = true;\n }\n }\n\n var shapeS = s;\n var shapeE = e;\n var addedLength = 0;\n var edges;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shapeData = this.shapes[i];\n\n if (shapeData.shape._mdf) {\n localShapeCollection = shapeData.localShapeCollection;\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n if (this.m === 2 && len > 1) {\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n addedLength += shapeData.totalShapeLength;\n } else {\n edges = [[shapeS, shapeE]];\n }\n\n jLen = edges.length;\n\n for (j = 0; j < jLen; j += 1) {\n shapeS = edges[j][0];\n shapeE = edges[j][1];\n segments.length = 0;\n\n if (shapeE <= 1) {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength * shapeE\n });\n } else if (shapeS >= 1) {\n segments.push({\n s: shapeData.totalShapeLength * (shapeS - 1),\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n } else {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength\n });\n segments.push({\n s: 0,\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n }\n\n var newShapesData = this.addShapes(shapeData, segments[0]);\n\n if (segments[0].s !== segments[0].e) {\n if (segments.length > 1) {\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n if (lastShapeInCollection.c) {\n var lastShape = newShapesData.pop();\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n } else {\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1]);\n }\n }\n\n this.addPaths(newShapesData, localShapeCollection);\n }\n }\n\n shapeData.shape.paths = localShapeCollection;\n }\n }\n } else if (this._mdf) {\n for (i = 0; i < len; i += 1) {\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n // Don't remove this even if it's losing cached info.\n this.shapes[i].pathsData.length = 0;\n this.shapes[i].shape._mdf = true;\n }\n }\n };\n\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n var i;\n var len = newPaths.length;\n\n for (i = 0; i < len; i += 1) {\n localShapeCollection.addShape(newPaths[i]);\n }\n };\n\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n }\n\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n shapePath.setXYAt(points[1], points[5], 'o', pos);\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(points[0], points[4], 'v', pos);\n }\n\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n var pathsData = shapeData.pathsData;\n var shapePaths = shapeData.shape.paths.shapes;\n var i;\n var len = shapeData.shape.paths._length;\n var j;\n var jLen;\n var addedLength = 0;\n var currentLengthData;\n var segmentCount;\n var lengths;\n var segment;\n var shapes = [];\n var initPos;\n var newShape = true;\n\n if (!shapePath) {\n shapePath = shapePool.newElement();\n segmentCount = 0;\n initPos = 0;\n } else {\n segmentCount = shapePath._length;\n initPos = shapePath._length;\n }\n\n shapes.push(shapePath);\n\n for (i = 0; i < len; i += 1) {\n lengths = pathsData[i].lengths;\n shapePath.c = shapePaths[i].c;\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n for (j = 1; j < jLen; j += 1) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n addedLength += currentLengthData.addedLength;\n shapePath.c = false;\n } else if (addedLength > shapeSegment.e) {\n shapePath.c = false;\n break;\n } else {\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n }\n\n if (shapePaths[i].c && lengths.length) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength <= shapeSegment.e) {\n var segmentLength = lengths[j - 1].addedLength;\n\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n } else {\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n\n if (shapePath._length) {\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n }\n\n if (addedLength > shapeSegment.e) {\n break;\n }\n\n if (i < len - 1) {\n shapePath = shapePool.newElement();\n newShape = true;\n shapes.push(shapePath);\n segmentCount = 0;\n }\n }\n\n return shapes;\n };\n\n function PuckerAndBloatModifier() {}\n\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this._isAnimated = !!this.amount.effectsSequence.length;\n };\n\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n var percent = amount / 100;\n var centerPoint = [0, 0];\n var pathLength = path._length;\n var i = 0;\n\n for (i = 0; i < pathLength; i += 1) {\n centerPoint[0] += path.v[i][0];\n centerPoint[1] += path.v[i][1];\n }\n\n centerPoint[0] /= pathLength;\n centerPoint[1] /= pathLength;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < pathLength; i += 1) {\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n }\n\n return clonedPath;\n };\n\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n var TransformPropertyFactory = function () {\n var defaultVector = [0, 0];\n\n function applyToMatrix(mat) {\n var _mdf = this._mdf;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || _mdf;\n\n if (this.a) {\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.s) {\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk) {\n mat.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r) {\n mat.rotate(-this.r.v);\n } else {\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]);\n }\n\n if (this.data.p.s) {\n if (this.data.p.z) {\n mat.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n mat.translate(this.px.v, this.py.v, 0);\n }\n } else {\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n function processKeys(forceRender) {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (this._isDirty) {\n this.precalculateMatrix();\n this._isDirty = false;\n }\n\n this.iterateDynamicProperties();\n\n if (this._mdf || forceRender) {\n var frameRate;\n this.v.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.appliedTransformations < 2) {\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n this.v.rotate(-this.r.v);\n } else if (!this.r && this.appliedTransformations < 4) {\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]);\n }\n\n if (this.autoOriented) {\n var v1;\n var v2;\n frameRate = this.elem.globalData.frameRate;\n\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n } else {\n v1 = this.p.pv;\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n }\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n v1 = [];\n v2 = [];\n var px = this.px;\n var py = this.py;\n\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n } else {\n v1 = [px.pv, py.pv];\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n }\n } else {\n v2 = defaultVector;\n v1 = v2;\n }\n\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n }\n\n if (this.data.p && this.data.p.s) {\n if (this.data.p.z) {\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n this.v.translate(this.px.v, this.py.v, 0);\n }\n } else {\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n this.frameId = this.elem.globalData.frameId;\n }\n\n function precalculateMatrix() {\n this.appliedTransformations = 0;\n this.pre.reset();\n\n if (!this.a.effectsSequence.length) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\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]);\n this.appliedTransformations = 4;\n }\n }\n\n function autoOrient() {//\n // var prevP = this.getValueAtTime();\n }\n\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\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.\n\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n\n this._isDirty = true;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n\n extendPrototype([ShapeModifier], RepeaterModifier);\n\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n\n while (pos > 0) {\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n this._elements.unshift(arr[pos]);\n }\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n\n this._groups.splice(0, 0, group);\n\n this._currentCopies += 1;\n }\n\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n\n cont = 0;\n var renderFlag;\n\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n\n cont += 1;\n }\n\n this._currentCopies = copies; /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n\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]);\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]);\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]);\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n\n this.matrix.reset();\n } else {\n this.matrix.reset();\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n\n return hasReloaded;\n };\n\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n\n extendPrototype([ShapeModifier], RoundCornersModifier);\n\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\n\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n index += 1;\n }\n }\n\n return clonedPath;\n };\n\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function floatEqual(a, b) {\n return Math.abs(a - b) * 100000 <= Math.min(Math.abs(a), Math.abs(b));\n }\n\n function floatZero(f) {\n return Math.abs(f) <= 0.00001;\n }\n\n function lerp(p0, p1, amount) {\n return p0 * (1 - amount) + p1 * amount;\n }\n\n function lerpPoint(p0, p1, amount) {\n return [lerp(p0[0], p1[0], amount), lerp(p0[1], p1[1], amount)];\n }\n\n function quadRoots(a, b, c) {\n // no root\n if (a === 0) return [];\n var s = b * b - 4 * a * c; // Complex roots\n\n if (s < 0) return [];\n var singleRoot = -b / (2 * a); // 1 root\n\n if (s === 0) return [singleRoot];\n var delta = Math.sqrt(s) / (2 * a); // 2 roots\n\n return [singleRoot - delta, singleRoot + delta];\n }\n\n function polynomialCoefficients(p0, p1, p2, p3) {\n return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];\n }\n\n function singlePoint(p) {\n return new PolynomialBezier(p, p, p, p, false);\n }\n\n function PolynomialBezier(p0, p1, p2, p3, linearize) {\n if (linearize && pointEqual(p0, p1)) {\n p1 = lerpPoint(p0, p3, 1 / 3);\n }\n\n if (linearize && pointEqual(p2, p3)) {\n p2 = lerpPoint(p0, p3, 2 / 3);\n }\n\n var coeffx = polynomialCoefficients(p0[0], p1[0], p2[0], p3[0]);\n var coeffy = polynomialCoefficients(p0[1], p1[1], p2[1], p3[1]);\n this.a = [coeffx[0], coeffy[0]];\n this.b = [coeffx[1], coeffy[1]];\n this.c = [coeffx[2], coeffy[2]];\n this.d = [coeffx[3], coeffy[3]];\n this.points = [p0, p1, p2, p3];\n }\n\n PolynomialBezier.prototype.point = function (t) {\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]];\n };\n\n PolynomialBezier.prototype.derivative = function (t) {\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]];\n };\n\n PolynomialBezier.prototype.tangentAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[1], p[0]);\n };\n\n PolynomialBezier.prototype.normalAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[0], p[1]);\n };\n\n PolynomialBezier.prototype.inflectionPoints = function () {\n var denom = this.a[1] * this.b[0] - this.a[0] * this.b[1];\n if (floatZero(denom)) return [];\n var tcusp = -0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1]) / denom;\n var square = tcusp * tcusp - 1 / 3 * (this.b[1] * this.c[0] - this.b[0] * this.c[1]) / denom;\n if (square < 0) return [];\n var root = Math.sqrt(square);\n\n if (floatZero(root)) {\n if (root > 0 && root < 1) return [tcusp];\n return [];\n }\n\n return [tcusp - root, tcusp + root].filter(function (r) {\n return r > 0 && r < 1;\n });\n };\n\n PolynomialBezier.prototype.split = function (t) {\n if (t <= 0) return [singlePoint(this.points[0]), this];\n if (t >= 1) return [this, singlePoint(this.points[this.points.length - 1])];\n var p10 = lerpPoint(this.points[0], this.points[1], t);\n var p11 = lerpPoint(this.points[1], this.points[2], t);\n var p12 = lerpPoint(this.points[2], this.points[3], t);\n var p20 = lerpPoint(p10, p11, t);\n var p21 = lerpPoint(p11, p12, t);\n var p3 = lerpPoint(p20, p21, t);\n return [new PolynomialBezier(this.points[0], p10, p20, p3, true), new PolynomialBezier(p3, p21, p12, this.points[3], true)];\n };\n\n function extrema(bez, comp) {\n var min = bez.points[0][comp];\n var max = bez.points[bez.points.length - 1][comp];\n\n if (min > max) {\n var e = max;\n max = min;\n min = e;\n } // Derivative roots to find min/max\n\n\n var f = quadRoots(3 * bez.a[comp], 2 * bez.b[comp], bez.c[comp]);\n\n for (var i = 0; i < f.length; i += 1) {\n if (f[i] > 0 && f[i] < 1) {\n var val = bez.point(f[i])[comp];\n if (val < min) min = val;else if (val > max) max = val;\n }\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n PolynomialBezier.prototype.bounds = function () {\n return {\n x: extrema(this, 0),\n y: extrema(this, 1)\n };\n };\n\n PolynomialBezier.prototype.boundingBox = function () {\n var bounds = this.bounds();\n return {\n left: bounds.x.min,\n right: bounds.x.max,\n top: bounds.y.min,\n bottom: bounds.y.max,\n width: bounds.x.max - bounds.x.min,\n height: bounds.y.max - bounds.y.min,\n cx: (bounds.x.max + bounds.x.min) / 2,\n cy: (bounds.y.max + bounds.y.min) / 2\n };\n };\n\n function intersectData(bez, t1, t2) {\n var box = bez.boundingBox();\n return {\n cx: box.cx,\n cy: box.cy,\n width: box.width,\n height: box.height,\n bez: bez,\n t: (t1 + t2) / 2,\n t1: t1,\n t2: t2\n };\n }\n\n function splitData(data) {\n var split = data.bez.split(0.5);\n return [intersectData(split[0], data.t1, data.t), intersectData(split[1], data.t, data.t2)];\n }\n\n function boxIntersect(b1, b2) {\n return Math.abs(b1.cx - b2.cx) * 2 < b1.width + b2.width && Math.abs(b1.cy - b2.cy) * 2 < b1.height + b2.height;\n }\n\n function intersectsImpl(d1, d2, depth, tolerance, intersections, maxRecursion) {\n if (!boxIntersect(d1, d2)) return;\n\n if (depth >= maxRecursion || d1.width <= tolerance && d1.height <= tolerance && d2.width <= tolerance && d2.height <= tolerance) {\n intersections.push([d1.t, d2.t]);\n return;\n }\n\n var d1s = splitData(d1);\n var d2s = splitData(d2);\n intersectsImpl(d1s[0], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[0], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n }\n\n PolynomialBezier.prototype.intersections = function (other, tolerance, maxRecursion) {\n if (tolerance === undefined) tolerance = 2;\n if (maxRecursion === undefined) maxRecursion = 7;\n var intersections = [];\n intersectsImpl(intersectData(this, 0, 1), intersectData(other, 0, 1), 0, tolerance, intersections, maxRecursion);\n return intersections;\n };\n\n PolynomialBezier.shapeSegment = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[index], shapePath.o[index], shapePath.i[nextIndex], shapePath.v[nextIndex], true);\n };\n\n PolynomialBezier.shapeSegmentInverted = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[nextIndex], shapePath.i[nextIndex], shapePath.o[index], shapePath.v[index], true);\n };\n\n function crossProduct(a, b) {\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]];\n }\n\n function lineIntersection(start1, end1, start2, end2) {\n var v1 = [start1[0], start1[1], 1];\n var v2 = [end1[0], end1[1], 1];\n var v3 = [start2[0], start2[1], 1];\n var v4 = [end2[0], end2[1], 1];\n var r = crossProduct(crossProduct(v1, v2), crossProduct(v3, v4));\n if (floatZero(r[2])) return null;\n return [r[0] / r[2], r[1] / r[2]];\n }\n\n function polarOffset(p, angle, length) {\n return [p[0] + Math.cos(angle) * length, p[1] - Math.sin(angle) * length];\n }\n\n function pointDistance(p1, p2) {\n return Math.hypot(p1[0] - p2[0], p1[1] - p2[1]);\n }\n\n function pointEqual(p1, p2) {\n return floatEqual(p1[0], p2[0]) && floatEqual(p1[1], p2[1]);\n }\n\n function ZigZagModifier() {}\n\n extendPrototype([ShapeModifier], ZigZagModifier);\n\n ZigZagModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amplitude = PropertyFactory.getProp(elem, data.s, 0, null, this);\n this.frequency = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this.pointsType = PropertyFactory.getProp(elem, data.pt, 0, null, this);\n this._isAnimated = this.amplitude.effectsSequence.length !== 0 || this.frequency.effectsSequence.length !== 0 || this.pointsType.effectsSequence.length !== 0;\n };\n\n function setPoint(outputBezier, point, angle, direction, amplitude, outAmplitude, inAmplitude) {\n var angO = angle - Math.PI / 2;\n var angI = angle + Math.PI / 2;\n var px = point[0] + Math.cos(angle) * direction * amplitude;\n var py = point[1] - Math.sin(angle) * direction * amplitude;\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());\n }\n\n function getPerpendicularVector(pt1, pt2) {\n var vector = [pt2[0] - pt1[0], pt2[1] - pt1[1]];\n var rot = -Math.PI * 0.5;\n var rotatedVector = [Math.cos(rot) * vector[0] - Math.sin(rot) * vector[1], Math.sin(rot) * vector[0] + Math.cos(rot) * vector[1]];\n return rotatedVector;\n }\n\n function getProjectingAngle(path, cur) {\n var prevIndex = cur === 0 ? path.length() - 1 : cur - 1;\n var nextIndex = (cur + 1) % path.length();\n var prevPoint = path.v[prevIndex];\n var nextPoint = path.v[nextIndex];\n var pVector = getPerpendicularVector(prevPoint, nextPoint);\n return Math.atan2(0, 1) - Math.atan2(pVector[1], pVector[0]);\n }\n\n function zigZagCorner(outputBezier, path, cur, amplitude, frequency, pointType, direction) {\n var angle = getProjectingAngle(path, cur);\n var point = path.v[cur % path._length];\n var prevPoint = path.v[cur === 0 ? path._length - 1 : cur - 1];\n var nextPoint = path.v[(cur + 1) % path._length];\n var prevDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - prevPoint[0], 2) + Math.pow(point[1] - prevPoint[1], 2)) : 0;\n var nextDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - nextPoint[0], 2) + Math.pow(point[1] - nextPoint[1], 2)) : 0;\n setPoint(outputBezier, path.v[cur % path._length], angle, direction, amplitude, nextDist / ((frequency + 1) * 2), prevDist / ((frequency + 1) * 2), pointType);\n }\n\n function zigZagSegment(outputBezier, segment, amplitude, frequency, pointType, direction) {\n for (var i = 0; i < frequency; i += 1) {\n var t = (i + 1) / (frequency + 1);\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;\n var angle = segment.normalAngle(t);\n var point = segment.point(t);\n setPoint(outputBezier, point, angle, direction, amplitude, dist / ((frequency + 1) * 2), dist / ((frequency + 1) * 2), pointType);\n direction = -direction;\n }\n\n return direction;\n }\n\n ZigZagModifier.prototype.processPath = function (path, amplitude, frequency, pointType) {\n var count = path._length;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n\n if (!path.c) {\n count -= 1;\n }\n\n if (count === 0) return clonedPath;\n var direction = -1;\n var segment = PolynomialBezier.shapeSegment(path, 0);\n zigZagCorner(clonedPath, path, 0, amplitude, frequency, pointType, direction);\n\n for (var i = 0; i < count; i += 1) {\n direction = zigZagSegment(clonedPath, segment, amplitude, frequency, pointType, -direction);\n\n if (i === count - 1 && !path.c) {\n segment = null;\n } else {\n segment = PolynomialBezier.shapeSegment(path, (i + 1) % count);\n }\n\n zigZagCorner(clonedPath, path, i + 1, amplitude, frequency, pointType, direction);\n }\n\n return clonedPath;\n };\n\n ZigZagModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amplitude = this.amplitude.v;\n var frequency = Math.max(0, Math.round(this.frequency.v));\n var pointType = this.pointsType.v;\n\n if (amplitude !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amplitude, frequency, pointType));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function linearOffset(p1, p2, amount) {\n var angle = Math.atan2(p2[0] - p1[0], p2[1] - p1[1]);\n return [polarOffset(p1, angle, amount), polarOffset(p2, angle, amount)];\n }\n\n function offsetSegment(segment, amount) {\n var p0;\n var p1a;\n var p1b;\n var p2b;\n var p2a;\n var p3;\n var e;\n e = linearOffset(segment.points[0], segment.points[1], amount);\n p0 = e[0];\n p1a = e[1];\n e = linearOffset(segment.points[1], segment.points[2], amount);\n p1b = e[0];\n p2b = e[1];\n e = linearOffset(segment.points[2], segment.points[3], amount);\n p2a = e[0];\n p3 = e[1];\n var p1 = lineIntersection(p0, p1a, p1b, p2b);\n if (p1 === null) p1 = p1a;\n var p2 = lineIntersection(p2a, p3, p1b, p2b);\n if (p2 === null) p2 = p2a;\n return new PolynomialBezier(p0, p1, p2, p3);\n }\n\n function joinLines(outputBezier, seg1, seg2, lineJoin, miterLimit) {\n var p0 = seg1.points[3];\n var p1 = seg2.points[0]; // Bevel\n\n if (lineJoin === 3) return p0; // Connected, they don't need a joint\n\n if (pointEqual(p0, p1)) return p0; // Round\n\n if (lineJoin === 2) {\n var angleOut = -seg1.tangentAngle(1);\n var angleIn = -seg2.tangentAngle(0) + Math.PI;\n var center = lineIntersection(p0, polarOffset(p0, angleOut + Math.PI / 2, 100), p1, polarOffset(p1, angleOut + Math.PI / 2, 100));\n var radius = center ? pointDistance(center, p0) : pointDistance(p0, p1) / 2;\n var tan = polarOffset(p0, angleOut, 2 * radius * roundCorner);\n outputBezier.setXYAt(tan[0], tan[1], 'o', outputBezier.length() - 1);\n tan = polarOffset(p1, angleIn, 2 * radius * roundCorner);\n outputBezier.setTripleAt(p1[0], p1[1], p1[0], p1[1], tan[0], tan[1], outputBezier.length());\n return p1;\n } // Miter\n\n\n var t0 = pointEqual(p0, seg1.points[2]) ? seg1.points[0] : seg1.points[2];\n var t1 = pointEqual(p1, seg2.points[1]) ? seg2.points[3] : seg2.points[1];\n var intersection = lineIntersection(t0, p0, p1, t1);\n\n if (intersection && pointDistance(intersection, p0) < miterLimit) {\n outputBezier.setTripleAt(intersection[0], intersection[1], intersection[0], intersection[1], intersection[0], intersection[1], outputBezier.length());\n return intersection;\n }\n\n return p0;\n }\n\n function getIntersection(a, b) {\n var intersect = a.intersections(b);\n if (intersect.length && floatEqual(intersect[0][0], 1)) intersect.shift();\n if (intersect.length) return intersect[0];\n return null;\n }\n\n function pruneSegmentIntersection(a, b) {\n var outa = a.slice();\n var outb = b.slice();\n var intersect = getIntersection(a[a.length - 1], b[0]);\n\n if (intersect) {\n outa[a.length - 1] = a[a.length - 1].split(intersect[0])[0];\n outb[0] = b[0].split(intersect[1])[1];\n }\n\n if (a.length > 1 && b.length > 1) {\n intersect = getIntersection(a[0], b[b.length - 1]);\n\n if (intersect) {\n return [[a[0].split(intersect[0])[0]], [b[b.length - 1].split(intersect[1])[1]]];\n }\n }\n\n return [outa, outb];\n }\n\n function pruneIntersections(segments) {\n var e;\n\n for (var i = 1; i < segments.length; i += 1) {\n e = pruneSegmentIntersection(segments[i - 1], segments[i]);\n segments[i - 1] = e[0];\n segments[i] = e[1];\n }\n\n if (segments.length > 1) {\n e = pruneSegmentIntersection(segments[segments.length - 1], segments[0]);\n segments[segments.length - 1] = e[0];\n segments[0] = e[1];\n }\n\n return segments;\n }\n\n function offsetSegmentSplit(segment, amount) {\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 */\n var flex = segment.inflectionPoints();\n var left;\n var right;\n var split;\n var mid;\n\n if (flex.length === 0) {\n return [offsetSegment(segment, amount)];\n }\n\n if (flex.length === 1 || floatEqual(flex[1], 1)) {\n split = segment.split(flex[0]);\n left = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(right, amount)];\n }\n\n split = segment.split(flex[0]);\n left = split[0];\n var t = (flex[1] - flex[0]) / (1 - flex[0]);\n split = split[1].split(t);\n mid = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(mid, amount), offsetSegment(right, amount)];\n }\n\n function OffsetPathModifier() {}\n\n extendPrototype([ShapeModifier], OffsetPathModifier);\n\n OffsetPathModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this.miterLimit = PropertyFactory.getProp(elem, data.ml, 0, null, this);\n this.lineJoin = data.lj;\n this._isAnimated = this.amount.effectsSequence.length !== 0;\n };\n\n OffsetPathModifier.prototype.processPath = function (inputBezier, amount, lineJoin, miterLimit) {\n var outputBezier = shapePool.newElement();\n outputBezier.c = inputBezier.c;\n var count = inputBezier.length();\n\n if (!inputBezier.c) {\n count -= 1;\n }\n\n var i;\n var j;\n var segment;\n var multiSegments = [];\n\n for (i = 0; i < count; i += 1) {\n segment = PolynomialBezier.shapeSegment(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n\n if (!inputBezier.c) {\n for (i = count - 1; i >= 0; i -= 1) {\n segment = PolynomialBezier.shapeSegmentInverted(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n }\n\n multiSegments = pruneIntersections(multiSegments); // Add bezier segments to the output and apply line joints\n\n var lastPoint = null;\n var lastSeg = null;\n\n for (i = 0; i < multiSegments.length; i += 1) {\n var multiSegment = multiSegments[i];\n if (lastSeg) lastPoint = joinLines(outputBezier, lastSeg, multiSegment[0], lineJoin, miterLimit);\n lastSeg = multiSegment[multiSegment.length - 1];\n\n for (j = 0; j < multiSegment.length; j += 1) {\n segment = multiSegment[j];\n\n if (lastPoint && pointEqual(segment.points[0], lastPoint)) {\n outputBezier.setXYAt(segment.points[1][0], segment.points[1][1], 'o', outputBezier.length() - 1);\n } else {\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());\n }\n\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());\n lastPoint = segment.points[3];\n }\n }\n\n if (multiSegments.length) joinLines(outputBezier, lastSeg, multiSegments[0][0], lineJoin, miterLimit);\n return outputBezier;\n };\n\n OffsetPathModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n var miterLimit = this.miterLimit.v;\n var lineJoin = this.lineJoin;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount, lineJoin, miterLimit));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n\n case 'bold':\n fWeight = '700';\n break;\n\n case 'black':\n fWeight = '900';\n break;\n\n case 'medium':\n fWeight = '500';\n break;\n\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n\n default:\n break;\n }\n }\n\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = []; // Hindi characters\n\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var BLACK_FLAG_CODE_POINT = 127988;\n var CANCEL_TAG_CODE_POINT = 917631;\n var A_TAG_CODE_POINT = 917601;\n var Z_TAG_CODE_POINT = 917626;\n var VARIATION_SELECTOR_16_CODE_POINT = 65039;\n var ZERO_WIDTH_JOINER_CODE_POINT = 8205;\n var REGIONAL_CHARACTER_A_CODE_POINT = 127462;\n var REGIONAL_CHARACTER_Z_CODE_POINT = 127487;\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n\n return enabledFamilies.join(',');\n }\n\n function setUpNode(font, family) {\n var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span'); // Characters that vary significantly among different fonts\n\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n parentNode.style.fontSize = '300px'; // Reset any font properties\n\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode); // Remember width with no applied web font\n\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n\n function createHelper(fontData, def) {\n var engine = document.body && def ? 'svg' : 'canvas';\n var helper;\n var fontProps = getFontProperties(fontData);\n\n if (engine === 'svg') {\n var tHelper = createNS('text');\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\n\n tHelper.setAttribute('font-family', fontData.fFamily);\n tHelper.setAttribute('font-style', fontProps.style);\n tHelper.setAttribute('font-weight', fontProps.weight);\n tHelper.textContent = '1';\n\n if (fontData.fClass) {\n tHelper.style.fontFamily = 'inherit';\n tHelper.setAttribute('class', fontData.fClass);\n } else {\n tHelper.style.fontFamily = fontData.fFamily;\n }\n\n def.appendChild(tHelper);\n helper = tHelper;\n } else {\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\n helper = tCanvasHelper;\n }\n\n function measure(text) {\n if (engine === 'svg') {\n helper.textContent = text;\n return helper.getComputedTextLength();\n }\n\n return helper.measureText(text).width;\n }\n\n return {\n measureText: measure\n };\n }\n\n function addFonts(fontData, defs) {\n if (!fontData) {\n this.isLoaded = true;\n return;\n }\n\n if (this.chars) {\n this.isLoaded = true;\n this.fonts = fontData.list;\n return;\n }\n\n if (!document.body) {\n this.isLoaded = true;\n fontData.list.forEach(function (data) {\n data.helper = createHelper(data);\n data.cache = {};\n });\n this.fonts = fontData.list;\n return;\n }\n\n var fontArr = fontData.list;\n var i;\n var len = fontArr.length;\n var _pendingFonts = len;\n\n for (i = 0; i < len; i += 1) {\n var shouldLoadFont = true;\n var loadedSelector;\n var j;\n fontArr[i].loaded = false;\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\n if (!fontArr[i].fPath) {\n fontArr[i].loaded = true;\n _pendingFonts -= 1;\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n if (loadedSelector.length > 0) {\n shouldLoadFont = false;\n }\n\n if (shouldLoadFont) {\n var s = createTag('style');\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\n s.setAttribute('f-origin', fontArr[i].origin);\n s.setAttribute('f-family', fontArr[i].fFamily);\n s.type = 'text/css';\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n defs.appendChild(s);\n }\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var l = createTag('link');\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\n l.setAttribute('f-origin', fontArr[i].origin);\n l.type = 'text/css';\n l.rel = 'stylesheet';\n l.href = fontArr[i].fPath;\n document.body.appendChild(l);\n }\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (fontArr[i].fPath === loadedSelector[j].src) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var sc = createTag('link');\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n sc.setAttribute('f-origin', fontArr[i].origin);\n sc.setAttribute('rel', 'stylesheet');\n sc.setAttribute('href', fontArr[i].fPath);\n defs.appendChild(sc);\n }\n }\n\n fontArr[i].helper = createHelper(fontArr[i], defs);\n fontArr[i].cache = {};\n this.fonts.push(fontArr[i]);\n }\n\n if (_pendingFonts === 0) {\n this.isLoaded = true;\n } else {\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n // Adding this timeout seems to fix it\n setTimeout(this.checkLoadedFonts.bind(this), 100);\n }\n }\n\n function addChars(chars) {\n if (!chars) {\n return;\n }\n\n if (!this.chars) {\n this.chars = [];\n }\n\n var i;\n var len = chars.length;\n var j;\n var jLen = this.chars.length;\n var found;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n found = false;\n\n while (j < jLen) {\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n found = true;\n }\n\n j += 1;\n }\n\n if (!found) {\n this.chars.push(chars[i]);\n jLen += 1;\n }\n }\n }\n\n function getCharData(_char, style, font) {\n var i = 0;\n var len = this.chars.length;\n\n while (i < len) {\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n return this.chars[i];\n }\n\n i += 1;\n }\n\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n && !this._warned) {\n this._warned = true;\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n }\n\n return emptyChar;\n }\n\n function measureText(_char2, fontName, size) {\n var fontData = this.getFontByName(fontName); // Using the char instead of char.charCodeAt(0)\n // to avoid collisions between equal chars\n\n var index = _char2;\n\n if (!fontData.cache[index]) {\n var tHelper = fontData.helper;\n\n if (_char2 === ' ') {\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\n var singleSize = tHelper.measureText('||');\n fontData.cache[index] = (doubleSize - singleSize) / 100;\n } else {\n fontData.cache[index] = tHelper.measureText(_char2) / 100;\n }\n }\n\n return fontData.cache[index] * size;\n }\n\n function getFontByName(name) {\n var i = 0;\n var len = this.fonts.length;\n\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n\n i += 1;\n }\n\n return this.fonts[0];\n }\n\n function getCodePoint(string) {\n var codePoint = 0;\n var first = string.charCodeAt(0);\n\n if (first >= 0xD800 && first <= 0xDBFF) {\n var second = string.charCodeAt(1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return codePoint;\n } // Skin tone modifiers\n\n\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(charCode) {\n return charCode === ZERO_WIDTH_JOINER_CODE_POINT;\n } // This codepoint may change the appearance of the preceding character.\n // If that is a symbol, dingbat or emoji, U+FE0F forces it to be rendered\n // as a colorful image as compared to a monochrome text variant.\n\n\n function isVariationSelector(charCode) {\n return charCode === VARIATION_SELECTOR_16_CODE_POINT;\n } // The regional indicator symbols are a set of 26 alphabetic Unicode\n /// characters (A–Z) intended to be used to encode ISO 3166-1 alpha-2\n // two-letter country codes in a way that allows optional special treatment.\n\n\n function isRegionalCode(string) {\n var codePoint = getCodePoint(string);\n\n if (codePoint >= REGIONAL_CHARACTER_A_CODE_POINT && codePoint <= REGIONAL_CHARACTER_Z_CODE_POINT) {\n return true;\n }\n\n return false;\n } // Some Emoji implementations represent combinations of\n // two “regional indicator” letters as a single flag symbol.\n\n\n function isFlagEmoji(string) {\n return isRegionalCode(string.substr(0, 2)) && isRegionalCode(string.substr(2, 2));\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n } // Regional flags start with a BLACK_FLAG_CODE_POINT\n // folowed by 5 chars in the TAG range\n // and end with a CANCEL_TAG_CODE_POINT\n\n\n function isRegionalFlag(text, index) {\n var codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint !== BLACK_FLAG_CODE_POINT) {\n return false;\n }\n\n var count = 0;\n index += 2;\n\n while (count < 5) {\n codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint < A_TAG_CODE_POINT || codePoint > Z_TAG_CODE_POINT) {\n return false;\n }\n\n count += 1;\n index += 2;\n }\n\n return getCodePoint(text.substr(index, 2)) === CANCEL_TAG_CODE_POINT;\n }\n\n function setIsLoaded() {\n this.isLoaded = true;\n }\n\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isFlagEmoji = isFlagEmoji;\n Font.isRegionalCode = isRegionalCode;\n Font.isCombinedCharacter = isCombinedCharacter;\n Font.isRegionalFlag = isRegionalFlag;\n Font.isVariationSelector = isVariationSelector;\n Font.BLACK_FLAG_CODE_POINT = BLACK_FLAG_CODE_POINT;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function SlotManager(animationData) {\n this.animationData = animationData;\n }\n\n SlotManager.prototype.getProp = function (data) {\n if (this.animationData.slots && this.animationData.slots[data.sid]) {\n return Object.assign(data, this.animationData.slots[data.sid].p);\n }\n\n return data;\n };\n\n function slotFactory(animationData) {\n return new SlotManager(animationData);\n }\n\n function RenderableElement() {}\n\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false; // layer's display state\n\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n this.isTransparent = false; // list of animated components\n\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n\n for (i = 0; i < len; i += 1) {\n eff = null;\n\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n\n var i = 0;\n var len = this.data.masksProperties.length;\n\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n initExpressions: function initExpressions() {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var LayerExpressionInterface = expressionsInterfaces('layer');\n var EffectsExpressionInterface = expressionsInterfaces('effects');\n var ShapeExpressionInterface = expressionsInterfaces('shape');\n var TextExpressionInterface = expressionsInterfaces('text');\n var CompExpressionInterface = expressionsInterfaces('comp');\n this.layerInterface = LayerExpressionInterface(this);\n\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n if (!this.data.sr) {\n this.data.sr = 1;\n } // effects manager\n\n\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\n function FrameElement() {}\n\n FrameElement.prototype = {\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false; // list of animated properties\n\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n this._mdf = false;\n },\n\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n\n FootageElement.prototype.prepareFrame = function () {};\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n\n FootageElement.prototype.renderFrame = function () {};\n\n FootageElement.prototype.destroy = function () {};\n\n FootageElement.prototype.initExpressions = function () {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var FootageInterface = expressionsInterfaces('footage');\n this.layerInterface = FootageInterface(this);\n };\n\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this._volumeMultiplier = 1;\n this._volume = 1;\n this._previousVolume = null;\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\n k: [100]\n }, 1, 0.01, this);\n }\n\n AudioElement.prototype.prepareFrame = function (num) {\n this.prepareRenderableFrame(num, true);\n this.prepareProperties(num, true);\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n this._currentTime = timeRemapped;\n } else {\n this._currentTime = num / this.data.sr;\n }\n\n this._volume = this.lv.v[0];\n var totalVolume = this._volume * this._volumeMultiplier;\n\n if (this._previousVolume !== totalVolume) {\n this._previousVolume = totalVolume;\n this.audio.volume(totalVolume);\n }\n };\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n AudioElement.prototype.renderFrame = function () {\n if (this.isInRange && this._canPlay) {\n if (!this._isPlaying) {\n this.audio.play();\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n this._isPlaying = true;\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n }\n }\n };\n\n AudioElement.prototype.show = function () {// this.audio.play()\n };\n\n AudioElement.prototype.hide = function () {\n this.audio.pause();\n this._isPlaying = false;\n };\n\n AudioElement.prototype.pause = function () {\n this.audio.pause();\n this._isPlaying = false;\n this._canPlay = false;\n };\n\n AudioElement.prototype.resume = function () {\n this._canPlay = true;\n };\n\n AudioElement.prototype.setRate = function (rateValue) {\n this.audio.rate(rateValue);\n };\n\n AudioElement.prototype.volume = function (volumeValue) {\n this._volumeMultiplier = volumeValue;\n this._previousVolume = volumeValue * this._volume;\n this.audio.volume(this._previousVolume);\n };\n\n AudioElement.prototype.getBaseElement = function () {\n return null;\n };\n\n AudioElement.prototype.destroy = function () {};\n\n AudioElement.prototype.sourceRectAtTime = function () {};\n\n AudioElement.prototype.initExpressions = function () {};\n\n function BaseRenderer() {}\n\n BaseRenderer.prototype.checkLayers = function (num) {\n var i;\n var len = this.layers.length;\n var data;\n this.completeLayers = true;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (!this.elements[i]) {\n data = this.layers[i];\n\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n this.buildItem(i);\n }\n }\n\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.createItem = function (layer) {\n switch (layer.ty) {\n case 2:\n return this.createImage(layer);\n\n case 0:\n return this.createComp(layer);\n\n case 1:\n return this.createSolid(layer);\n\n case 3:\n return this.createNull(layer);\n\n case 4:\n return this.createShape(layer);\n\n case 5:\n return this.createText(layer);\n\n case 6:\n return this.createAudio(layer);\n\n case 13:\n return this.createCamera(layer);\n\n case 15:\n return this.createFootage(layer);\n\n default:\n return this.createNull(layer);\n }\n };\n\n BaseRenderer.prototype.createCamera = function () {\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n };\n\n BaseRenderer.prototype.createAudio = function (data) {\n return new AudioElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.createFootage = function (data) {\n return new FootageElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.buildAllItems = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n this.buildItem(i);\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.includeLayers = function (newLayers) {\n this.completeLayers = false;\n var i;\n var len = newLayers.length;\n var j;\n var jLen = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n\n while (j < jLen) {\n if (this.layers[j].id === newLayers[i].id) {\n this.layers[j] = newLayers[i];\n break;\n }\n\n j += 1;\n }\n }\n };\n\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n this.globalData.projectInterface = pInterface;\n };\n\n BaseRenderer.prototype.initItems = function () {\n if (!this.globalData.progressiveLoad) {\n this.buildAllItems();\n }\n };\n\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n var elements = this.elements;\n var layers = this.layers;\n var i = 0;\n var len = layers.length;\n\n while (i < len) {\n if (layers[i].ind == parentName) {\n // eslint-disable-line eqeqeq\n if (!elements[i] || elements[i] === true) {\n this.buildItem(i);\n this.addPendingElement(element);\n } else {\n hierarchy.push(elements[i]);\n elements[i].setAsParent();\n\n if (layers[i].parent !== undefined) {\n this.buildElementParenting(element, layers[i].parent, hierarchy);\n } else {\n element.setHierarchy(hierarchy);\n }\n }\n }\n\n i += 1;\n }\n };\n\n BaseRenderer.prototype.addPendingElement = function (element) {\n this.pendingElements.push(element);\n };\n\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i]);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n BaseRenderer.prototype.getElementById = function (ind) {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.ind === ind) {\n return this.elements[i];\n }\n }\n\n return null;\n };\n\n BaseRenderer.prototype.getElementByPath = function (path) {\n var pathValue = path.shift();\n var element;\n\n if (typeof pathValue === 'number') {\n element = this.elements[pathValue];\n } else {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.nm === pathValue) {\n element = this.elements[i];\n break;\n }\n }\n }\n\n if (path.length === 0) {\n return element;\n }\n\n return element.getElementByPath(path);\n };\n\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n this.globalData.fontManager = new FontManager();\n this.globalData.slotManager = slotFactory(animData);\n this.globalData.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n var effectTypes = {\n TRANSFORM_EFFECT: 'transformEFfect'\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n var mat = new Matrix();\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _localMatMdf: false,\n _opMdf: false,\n mat: mat,\n localMat: mat,\n localOpacity: 1\n };\n\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n } // TODO: check TYPE 11: Guided elements\n\n\n if (this.data.ty !== 11) {// this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n\n for (i = 0; i < len; i += 1) {\n finalMat.multiply(this.hierarchy[i].finalTransform.mProp.v);\n }\n }\n }\n\n if (this.finalTransform._matMdf) {\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n }\n\n if (this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n }\n },\n renderLocalTransform: function renderLocalTransform() {\n if (this.localTransforms) {\n var i = 0;\n var len = this.localTransforms.length;\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n\n if (!this.finalTransform._localMatMdf || !this.finalTransform._opMdf) {\n while (i < len) {\n if (this.localTransforms[i]._mdf) {\n this.finalTransform._localMatMdf = true;\n }\n\n if (this.localTransforms[i]._opMdf && !this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n this.finalTransform._opMdf = true;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._localMatMdf) {\n var localMat = this.finalTransform.localMat;\n this.localTransforms[0].matrix.clone(localMat);\n\n for (i = 1; i < len; i += 1) {\n var lmat = this.localTransforms[i].matrix;\n localMat.multiply(lmat);\n }\n\n localMat.multiply(this.finalTransform.mat);\n }\n\n if (this.finalTransform._opMdf) {\n var localOp = this.finalTransform.localOpacity;\n\n for (i = 0; i < len; i += 1) {\n localOp *= this.localTransforms[i].opacity * 0.01;\n }\n\n this.finalTransform.localOpacity = localOp;\n }\n }\n },\n searchEffectTransforms: function searchEffectTransforms() {\n if (this.renderableEffectsManager) {\n var transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n\n if (transformEffects.length) {\n this.localTransforms = [];\n this.finalTransform.localMat = new Matrix();\n var i = 0;\n var len = transformEffects.length;\n\n for (i = 0; i < len; i += 1) {\n this.localTransforms.push(transformEffects[i]);\n }\n }\n }\n },\n globalToLocal: function globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n\n var i;\n var len = transforms.length;\n var ptNew;\n\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n\n path = createNS('path');\n\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n } // TODO move this to a factory or to a constructor\n\n\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n } // TODO move this to a factory or to a constructor\n\n\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n if (pathNodes.c && len > 1) {\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n } // pathNodes.__renderedString = pathString;\n\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n\n viewData.lastPath = pathString;\n }\n };\n\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n\n return fil;\n }\n\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true,\n svgLumaHidden: true,\n offscreenCanvas: typeof OffscreenCanvas !== 'undefined'\n };\n\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n ob.maskType = false;\n }\n\n if (/firefox/i.test(navigator.userAgent)) {\n ob.svgLumaHidden = false;\n }\n\n return ob;\n }();\n\n var registeredEffects$1 = {};\n var idPrefix = 'filter_result_';\n\n function SVGEffects(elem) {\n var i;\n var source = 'SourceGraphic';\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects$1[type]) {\n var Effect = registeredEffects$1[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n source = idPrefix + count;\n\n if (registeredEffects$1[type].countsAsEffect) {\n count += 1;\n }\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n SVGEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect$1(id, effect, countsAsEffect) {\n registeredEffects$1[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n if (this.data.td) {\n this.matteMasks = {};\n var gg = createNS('g');\n gg.setAttribute('id', this.layerId);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n this.globalData.defs.appendChild(gg);\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._localMatMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.localMat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.localOpacity);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n this.searchEffectTransforms();\n },\n getMatte: function getMatte(matteType) {\n // This should not be a common case. But for backward compatibility, we'll create the matte object.\n // It solves animations that have two consecutive layers marked as matte masks.\n // Which is an undefined behavior in AE.\n if (!this.matteMasks) {\n this.matteMasks = {};\n }\n\n if (!this.matteMasks[matteType]) {\n var id = this.layerId + '_' + matteType;\n var filId;\n var fil;\n var useElement;\n var gg;\n\n if (matteType === 1 || matteType === 3) {\n var masker = createNS('mask');\n masker.setAttribute('id', id);\n masker.setAttribute('mask-type', matteType === 3 ? 'luminance' : 'alpha');\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n masker.appendChild(useElement);\n this.globalData.defs.appendChild(masker);\n\n if (!featureSupport.maskType && matteType === 1) {\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(useElement);\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (matteType === 2) {\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', id);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc); /// /\n\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n maskGrouper.appendChild(useElement);\n\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n\n this.matteMasks[matteType] = id;\n }\n\n return this.matteMasks[matteType];\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\n function HierarchyElement() {}\n\n HierarchyElement.prototype = {\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n this._isParent = false;\n this.checkParenting();\n },\n\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n\n if (this.assetData && this.assetData.sid) {\n this.assetData = globalData.slotManager.getProp(this.assetData);\n }\n\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n\n var i;\n var len = this.shapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n\n for (i = len - 1; i >= 0; i -= 1) {\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\n // TODO: find a better solution for this\n\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n\n i += 1;\n }\n\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n\n while (i) {\n i -= 1;\n\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n var i = 0;\n var len = transformers.length;\n\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n\n i += 1;\n }\n }\n\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n\n if (!this.k) {\n this.getValue(true);\n }\n\n this._isAnimated = this.k;\n }\n\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n if (diff > 0.01) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n };\n\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n\n return true;\n };\n\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n\n if (this.o.length) {\n len = this.prop.v.length;\n\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n\n this._mdf = !forceRender;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n for (i = 1; i < length; i += 1) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n }\n\n if (closed && length) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n shapeString += 'z';\n }\n\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n\n var _matrixHelper = new Matrix();\n\n var ob = {\n createRenderFunction: createRenderFunction\n };\n\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n\n case 'gf':\n return renderGradient;\n\n case 'gs':\n return renderGradientStroke;\n\n case 'st':\n return renderStroke;\n\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n\n case 'tr':\n return renderContentTransform;\n\n case 'no':\n return renderNoop;\n\n default:\n return null;\n }\n }\n\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n\n function renderNoop() {}\n\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var iterations;\n var k;\n\n for (l = 0; l < lLen; l += 1) {\n redraw = itemData.sh._mdf || isFirstFrame;\n\n if (itemData.styles[l].lvl < lvl) {\n mat = _matrixHelper.reset();\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (!redraw && iterations > 0) {\n redraw = itemData.transformers[k].mProps._mdf || redraw;\n iterations -= 1;\n k -= 1;\n }\n\n if (redraw) {\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (iterations > 0) {\n mat.multiply(itemData.transformers[k].mProps.v);\n iterations -= 1;\n k -= 1;\n }\n }\n } else {\n mat = _identityMatrix;\n }\n\n paths = itemData.sh.paths;\n jLen = paths._length;\n\n if (redraw) {\n pathStringTransformed = '';\n\n for (j = 0; j < jLen; j += 1) {\n pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes._length) {\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n }\n }\n\n itemData.caches[l] = pathStringTransformed;\n } else {\n pathStringTransformed = itemData.caches[l];\n }\n\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n }\n }\n\n function renderFill(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n }\n }\n\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\n renderGradient(styleData, itemData, isFirstFrame);\n renderStroke(styleData, itemData, isFirstFrame);\n }\n\n function renderGradient(styleData, itemData, isFirstFrame) {\n var gfill = itemData.gf;\n var hasOpacity = itemData.g._hasOpacity;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (itemData.o._mdf || isFirstFrame) {\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\n }\n\n if (itemData.s._mdf || isFirstFrame) {\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n gfill.setAttribute(attr1, pt1[0]);\n gfill.setAttribute(attr2, pt1[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute(attr1, pt1[0]);\n itemData.of.setAttribute(attr2, pt1[1]);\n }\n }\n\n var stops;\n var i;\n var len;\n var stop;\n\n if (itemData.g._cmdf || isFirstFrame) {\n stops = itemData.cst;\n var cValues = itemData.g.c;\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n stop.setAttribute('offset', cValues[i * 4] + '%');\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n }\n }\n\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n var oValues = itemData.g.o;\n\n if (itemData.g._collapsable) {\n stops = itemData.cst;\n } else {\n stops = itemData.ost;\n }\n\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n\n if (!itemData.g._collapsable) {\n stop.setAttribute('offset', oValues[i * 2] + '%');\n }\n\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n }\n }\n\n if (styleData.t === 1) {\n if (itemData.e._mdf || isFirstFrame) {\n gfill.setAttribute('x2', pt2[0]);\n gfill.setAttribute('y2', pt2[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('x2', pt2[0]);\n itemData.of.setAttribute('y2', pt2[1]);\n }\n }\n } else {\n var rad;\n\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n gfill.setAttribute('r', rad);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('r', rad);\n }\n }\n\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n if (!rad) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n }\n\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n gfill.setAttribute('fx', x);\n gfill.setAttribute('fy', y);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('fx', x);\n itemData.of.setAttribute('fy', y);\n }\n } // gfill.setAttribute('fy','200');\n\n }\n }\n\n function renderStroke(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n }\n\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n }\n\n if (itemData.w._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\n if (styleElem.msElem) {\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n }\n }\n }\n\n return ob;\n }();\n\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\n\n\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n return elementData;\n };\n\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n\n i += 1;\n }\n\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (!this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n };\n\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = false;\n }\n\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n\n this.setElementStyles(itemsData[i]);\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n len = ownStyles.length;\n\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n\n this.renderShape();\n\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n\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])) {\n this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n\n if (data.d && data.d.sid) {\n data.d = elem.globalData.slotManager.getProp(data.d);\n }\n\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n\n return obj;\n };\n\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n\n return this.kf;\n };\n\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n\n i += 1;\n }\n\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n\n return this.data.d.k[this.keysIndex].s;\n };\n\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n var shouldCombineNext = false;\n var currentChars = '';\n\n while (i < len) {\n shouldCombine = shouldCombineNext;\n shouldCombineNext = false;\n charCode = text.charCodeAt(i);\n currentChars = text.charAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n shouldCombine = true; // It's a potential surrogate pair (this is the High surrogate)\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n if (FontManager.isRegionalFlag(text, i)) {\n currentChars = text.substr(i, 14);\n } else {\n secondCharCode = text.charCodeAt(i + 1); // It's a surrogate pair (this is the Low surrogate)\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (FontManager.isModifier(charCode, secondCharCode)) {\n currentChars = text.substr(i, 2);\n shouldCombine = true;\n } else if (FontManager.isFlagEmoji(text.substr(i, 4))) {\n currentChars = text.substr(i, 4);\n } else {\n currentChars = text.substr(i, 2);\n }\n }\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isVariationSelector(charCode)) {\n shouldCombine = true;\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n shouldCombine = true;\n shouldCombineNext = true;\n }\n\n if (shouldCombine) {\n charactersArray[charactersArray.length - 1] += currentChars;\n shouldCombine = false;\n } else {\n charactersArray.push(currentChars);\n }\n\n i += currentChars.length;\n }\n\n return charactersArray;\n };\n\n TextProperty.prototype.completeTextData = function (documentData) {\n documentData.__complete = true;\n var fontManager = this.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n } //\n\n\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n\n default:\n documentData.justifyOffset = 0;\n }\n }\n\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n\n ind = 0;\n based = animatorData.s.b;\n\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n\n ind += 1;\n }\n }\n\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.setCurrentData(dData);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n\n mult = easer(mult);\n } // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n\n var threshold = 0.5 - smoothness * 0.5;\n\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n\n if (this._pathData.r.v) {\n paths = paths.reverse();\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n\n for (i = 0; i < len; i += 1) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n i = len;\n\n if (mask.v.c) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n this._pathData.pi = pathInfo;\n }\n\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO; //\n\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n\n isNewLine = false;\n }\n }\n\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n } //\n\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n\n default:\n break;\n }\n\n currentLine = letters[i].line;\n }\n\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n\n flag = true; // Force alignment only works with a single line for now\n\n if (this._pathData.a.v) {\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);\n currentLength += this._pathData.f.v;\n }\n\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n }\n\n letterO = elemOpacity;\n }\n\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n };\n\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n var j;\n var jLen = shapes.length;\n var pathNodes;\n var shapeStr = '';\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n\n return shapeStr;\n };\n\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n matrixHelper.translate(0, -documentData.ls, 0);\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(xPos, yPos, 0);\n };\n\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n\n ITextElement.prototype.emptyProp = new LetterProps();\n\n ITextElement.prototype.destroy = function () {};\n\n ITextElement.prototype.validateText = function () {\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\n };\n\n var emptyShapeData = {\n shapes: []\n };\n\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n\n i += 1;\n }\n\n textContents.push(currentTextContent);\n return textContents;\n };\n\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\n // but since text internal content gets only rendered once and then it's never rerendered,\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\n // Avoiding cloning is preferred since cloning each character shape data is expensive\n if (data.shapes && data.shapes.length) {\n var shape = data.shapes[0];\n\n if (shape.it) {\n var shapeItem = shape.it[shape.it.length - 1];\n\n if (shapeItem.s) {\n shapeItem.s.k[0] = scale;\n shapeItem.s.k[1] = scale;\n }\n }\n }\n\n return data;\n };\n\n SVGTextLottieElement.prototype.buildNewText = function () {\n this.addDynamicProperty(this);\n var i;\n var len;\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n if (documentData.fc) {\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n } else {\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n }\n\n if (documentData.sc) {\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n this.layerElement.setAttribute('stroke-width', documentData.sw);\n }\n\n this.layerElement.setAttribute('font-size', documentData.finalSize);\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (fontData.fClass) {\n this.layerElement.setAttribute('class', fontData.fClass);\n } else {\n this.layerElement.setAttribute('font-family', fontData.fFamily);\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n this.layerElement.setAttribute('font-style', fStyle);\n this.layerElement.setAttribute('font-weight', fWeight);\n }\n\n this.layerElement.setAttribute('aria-label', documentData.t);\n var letters = documentData.l || [];\n var usesGlyphs = !!this.globalData.fontManager.chars;\n len = letters.length;\n var tSpan;\n var matrixHelper = this.mHelper;\n var shapeStr = '';\n var singleShape = this.data.singleShape;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n if (singleShape && !usesGlyphs && !documentData.sz) {\n var tElement = this.textContainer;\n var justify = 'start';\n\n switch (documentData.j) {\n case 1:\n justify = 'end';\n break;\n\n case 2:\n justify = 'middle';\n break;\n\n default:\n justify = 'start';\n break;\n }\n\n tElement.setAttribute('text-anchor', justify);\n tElement.setAttribute('letter-spacing', trackingOffset);\n var textContent = this.buildTextContents(documentData.finalText);\n len = textContent.length;\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n for (i = 0; i < len; i += 1) {\n tSpan = this.textSpans[i].span || createNS('tspan');\n tSpan.textContent = textContent[i];\n tSpan.setAttribute('x', 0);\n tSpan.setAttribute('y', yPos);\n tSpan.style.display = 'inherit';\n tElement.appendChild(tSpan);\n\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n glyph: null\n };\n }\n\n this.textSpans[i].span = tSpan;\n yPos += documentData.finalLineHeight;\n }\n\n this.layerElement.appendChild(tElement);\n } else {\n var cachedSpansLength = this.textSpans.length;\n var charData;\n\n for (i = 0; i < len; i += 1) {\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n childSpan: null,\n glyph: null\n };\n }\n\n if (!usesGlyphs || !singleShape || i === 0) {\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\n if (cachedSpansLength <= i) {\n tSpan.setAttribute('stroke-linecap', 'butt');\n tSpan.setAttribute('stroke-linejoin', 'round');\n tSpan.setAttribute('stroke-miterlimit', '4');\n this.textSpans[i].span = tSpan;\n\n if (usesGlyphs) {\n var childSpan = createNS('g');\n tSpan.appendChild(childSpan);\n this.textSpans[i].childSpan = childSpan;\n }\n\n this.textSpans[i].span = tSpan;\n this.layerElement.appendChild(tSpan);\n }\n\n tSpan.style.display = 'inherit';\n }\n\n matrixHelper.reset();\n\n if (singleShape) {\n if (letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n xPos += trackingOffset;\n }\n\n if (usesGlyphs) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var glyphElement; // t === 1 means the character has been replaced with an animated shaped\n\n if (charData.t === 1) {\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n } else {\n var data = emptyShapeData;\n\n if (charData.data && charData.data.shapes) {\n data = this.buildShapeData(charData.data, documentData.finalSize);\n }\n\n glyphElement = new SVGShapeElement(data, this.globalData, this);\n }\n\n if (this.textSpans[i].glyph) {\n var glyph = this.textSpans[i].glyph;\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\n glyph.destroy();\n }\n\n this.textSpans[i].glyph = glyphElement;\n glyphElement._debug = true;\n glyphElement.prepareFrame(0);\n glyphElement.renderFrame();\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\n // this might have issues with strokes and might need a different solution\n\n if (charData.t === 1) {\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n }\n } else {\n if (singleShape) {\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n }\n\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n } //\n\n }\n\n if (singleShape && tSpan) {\n tSpan.setAttribute('d', shapeStr);\n }\n }\n\n while (i < this.textSpans.length) {\n this.textSpans[i].span.style.display = 'none';\n i += 1;\n }\n\n this._sizeChanged = true;\n };\n\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\n this.renderInnerContent();\n\n if (this._sizeChanged) {\n this._sizeChanged = false;\n var textBox = this.layerElement.getBBox();\n this.bbox = {\n top: textBox.y,\n left: textBox.x,\n width: textBox.width,\n height: textBox.height\n };\n }\n\n return this.bbox;\n };\n\n SVGTextLottieElement.prototype.getValue = function () {\n var i;\n var len = this.textSpans.length;\n var glyphElement;\n this.renderedFrame = this.comp.renderedFrame;\n\n for (i = 0; i < len; i += 1) {\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\n if (glyphElement._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n SVGTextLottieElement.prototype.renderInnerContent = function () {\n this.validateText();\n\n if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([IImageElement], ISolidElement);\n\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n NullElement.prototype.renderFrame = function () {};\n\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n\n NullElement.prototype.destroy = function () {};\n\n NullElement.prototype.sourceRectAtTime = function () {};\n\n NullElement.prototype.hide = function () {};\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n\n extendPrototype([BaseRenderer], SVGRendererBase);\n\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n this.svgElement.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n\n if (this.renderConfig.width) {\n this.svgElement.setAttribute('width', this.renderConfig.width);\n }\n\n if (this.renderConfig.height) {\n this.svgElement.setAttribute('height', this.renderConfig.height);\n }\n\n if (this.renderConfig.className) {\n this.svgElement.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.svgElement.setAttribute('id', this.renderConfig.id);\n }\n\n if (this.renderConfig.focusable !== undefined) {\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n }\n\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\n\n var defs = this.globalData.defs;\n this.setupGlobalData(animData, defs);\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.data = animData;\n var maskElement = createNS('clipPath');\n var rect = createNS('rect');\n rect.setAttribute('width', animData.w);\n rect.setAttribute('height', animData.h);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', 0);\n var maskId = createElementID();\n maskElement.setAttribute('id', maskId);\n maskElement.appendChild(rect);\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n defs.appendChild(maskElement);\n this.layers = animData.layers;\n this.elements = createSizedArray(animData.layers.length);\n };\n\n SVGRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.layerElement = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n SVGRendererBase.prototype.updateContainerSize = function () {};\n\n SVGRendererBase.prototype.findIndexByInd = function (ind) {\n var i = 0;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ind === ind) {\n return i;\n }\n }\n\n return -1;\n };\n\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n\n element.initExpressions();\n }\n\n this.appendElementInPos(element, pos);\n\n if (this.layers[pos].tt) {\n var elementIndex = 'tp' in this.layers[pos] ? this.findIndexByInd(this.layers[pos].tp) : pos - 1;\n\n if (elementIndex === -1) {\n return;\n }\n\n if (!this.elements[elementIndex] || this.elements[elementIndex] === true) {\n this.buildItem(elementIndex);\n this.addPendingElement(element);\n } else {\n var matteElement = elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[pos].tt);\n element.setMatte(matteMask);\n }\n }\n };\n\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n\n while (i < len) {\n if (this.elements[i] === element) {\n var elementIndex = 'tp' in element.data ? this.findIndexByInd(element.data.tp) : i - 1;\n var matteElement = this.elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[i].tt);\n element.setMatte(matteMask);\n break;\n }\n\n i += 1;\n }\n }\n }\n };\n\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n } // console.log('-------');\n // console.log('FRAME ',num);\n\n\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n\n if (!newElement) {\n return;\n }\n\n var i = 0;\n var nextElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n\n i += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n\n this.hide();\n };\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\n\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n\n var i;\n var len = this.elements.length;\n\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n },\n width: config && config.width,\n height: config && config.height,\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n\n extendPrototype([SVGRendererBase], SVGRenderer);\n\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function ShapeTransformManager() {\n this.sequences = {};\n this.sequenceList = [];\n this.transform_key_count = 0;\n }\n\n ShapeTransformManager.prototype = {\n addTransformSequence: function addTransformSequence(transforms) {\n var i;\n var len = transforms.length;\n var key = '_';\n\n for (i = 0; i < len; i += 1) {\n key += transforms[i].transform.key + '_';\n }\n\n var sequence = this.sequences[key];\n\n if (!sequence) {\n sequence = {\n transforms: [].concat(transforms),\n finalTransform: new Matrix(),\n _mdf: false\n };\n this.sequences[key] = sequence;\n this.sequenceList.push(sequence);\n }\n\n return sequence;\n },\n processSequence: function processSequence(sequence, isFirstFrame) {\n var i = 0;\n var len = sequence.transforms.length;\n var _mdf = isFirstFrame;\n\n while (i < len && !isFirstFrame) {\n if (sequence.transforms[i].transform.mProps._mdf) {\n _mdf = true;\n break;\n }\n\n i += 1;\n }\n\n if (_mdf) {\n sequence.finalTransform.reset();\n\n for (i = len - 1; i >= 0; i -= 1) {\n sequence.finalTransform.multiply(sequence.transforms[i].transform.mProps.v);\n }\n }\n\n sequence._mdf = _mdf;\n },\n processSequences: function processSequences(isFirstFrame) {\n var i;\n var len = this.sequenceList.length;\n\n for (i = 0; i < len; i += 1) {\n this.processSequence(this.sequenceList[i], isFirstFrame);\n }\n },\n getNewKey: function getNewKey() {\n this.transform_key_count += 1;\n return '_' + this.transform_key_count;\n }\n };\n\n var lumaLoader = function lumaLoader() {\n var id = '__lottie_element_luma_buffer';\n var lumaBuffer = null;\n var lumaBufferCtx = null;\n var svg = null; // This alternate solution has a slight delay before the filter is applied, resulting in a flicker on the first frame.\n // Keeping this here for reference, and in the future, if offscreen canvas supports url filters, this can be used.\n // For now, neither of them work for offscreen canvas, so canvas workers can't support the luma track matte mask.\n // Naming it solution 2 to mark the extra comment lines.\n\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 */\n\n function createLumaSvgFilter() {\n var _svg = createNS('svg');\n\n var fil = createNS('filter');\n var matrix = createNS('feColorMatrix');\n fil.setAttribute('id', id);\n matrix.setAttribute('type', 'matrix');\n matrix.setAttribute('color-interpolation-filters', 'sRGB');\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');\n fil.appendChild(matrix);\n\n _svg.appendChild(fil);\n\n _svg.setAttribute('id', id + '_svg');\n\n if (featureSupport.svgLumaHidden) {\n _svg.style.display = 'none';\n }\n\n return _svg;\n }\n\n function loadLuma() {\n if (!lumaBuffer) {\n svg = createLumaSvgFilter();\n document.body.appendChild(svg);\n lumaBuffer = createTag('canvas');\n lumaBufferCtx = lumaBuffer.getContext('2d'); // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n lumaBufferCtx.fillStyle = 'rgba(0,0,0,0)';\n lumaBufferCtx.fillRect(0, 0, 1, 1);\n }\n }\n\n function getLuma(canvas) {\n if (!lumaBuffer) {\n loadLuma();\n }\n\n lumaBuffer.width = canvas.width;\n lumaBuffer.height = canvas.height; // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n return lumaBuffer;\n }\n\n return {\n load: loadLuma,\n get: getLuma\n };\n };\n\n function createCanvas(width, height) {\n if (featureSupport.offscreenCanvas) {\n return new OffscreenCanvas(width, height);\n }\n\n var canvas = createTag('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n\n var assetLoader = function () {\n return {\n loadLumaCanvas: lumaLoader.load,\n getLumaCanvas: lumaLoader.get,\n createCanvas: createCanvas\n };\n }();\n\n var registeredEffects = {};\n\n function CVEffects(elem) {\n var i;\n var len = elem.data.ef ? elem.data.ef.length : 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(elem.effectsManager.effectElements[i], elem);\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n CVEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n CVEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect(id, effect) {\n registeredEffects[id] = {\n effect: effect\n };\n }\n\n function CVMaskElement(data, element) {\n this.data = data;\n this.element = element;\n this.masksProperties = this.data.masksProperties || [];\n this.viewData = createSizedArray(this.masksProperties.length);\n var i;\n var len = this.masksProperties.length;\n var hasMasks = false;\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n hasMasks = true;\n }\n\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n }\n\n this.hasMasks = hasMasks;\n\n if (hasMasks) {\n this.element.addRenderableComponent(this);\n }\n }\n\n CVMaskElement.prototype.renderFrame = function () {\n if (!this.hasMasks) {\n return;\n }\n\n var transform = this.element.finalTransform.mat;\n var ctx = this.element.canvasContext;\n var i;\n var len = this.masksProperties.length;\n var pt;\n var pts;\n var data;\n ctx.beginPath();\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n if (this.masksProperties[i].inv) {\n ctx.moveTo(0, 0);\n ctx.lineTo(this.element.globalData.compSize.w, 0);\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n ctx.lineTo(0, this.element.globalData.compSize.h);\n ctx.lineTo(0, 0);\n }\n\n data = this.viewData[i].v;\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n ctx.moveTo(pt[0], pt[1]);\n var j;\n var jLen = data._length;\n\n for (j = 1; j < jLen; j += 1) {\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n }\n\n this.element.globalData.renderer.save(true);\n ctx.clip();\n };\n\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n CVMaskElement.prototype.destroy = function () {\n this.element = null;\n };\n\n function CVBaseElement() {}\n\n var operationsMap = {\n 1: 'source-in',\n 2: 'source-out',\n 3: 'source-in',\n 4: 'source-out'\n };\n CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n // If the layer is masked we will use two buffers to store each different states of the drawing\n // This solution is not ideal for several reason. But unfortunately, because of the recursive\n // nature of the render tree, it's the only simple way to make sure one inner mask doesn't override an outer mask.\n // TODO: try to reduce the size of these buffers to the size of the composition contaning the layer\n // It might be challenging because the layer most likely is transformed in some way\n if (this.data.tt >= 1) {\n this.buffers = [];\n var canvasContext = this.globalData.canvasContext;\n var bufferCanvas = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas);\n var bufferCanvas2 = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas2);\n\n if (this.data.tt >= 3 && !document._isProxy) {\n assetLoader.loadLumaCanvas();\n }\n }\n\n this.canvasContext = this.globalData.canvasContext;\n this.transformCanvas = this.globalData.transformCanvas;\n this.renderableEffectsManager = new CVEffects(this);\n this.searchEffectTransforms();\n },\n createContent: function createContent() {},\n setBlendMode: function setBlendMode() {\n var globalData = this.globalData;\n\n if (globalData.blendMode !== this.data.bm) {\n globalData.blendMode = this.data.bm;\n var blendModeValue = getBlendMode(this.data.bm);\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new CVMaskElement(this.data, this);\n this.transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n },\n hideElement: function hideElement() {\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n this.hidden = true;\n }\n },\n showElement: function showElement() {\n if (this.isInRange && !this.isTransparent) {\n this.hidden = false;\n this._isFirstFrame = true;\n this.maskManager._isFirstFrame = true;\n }\n },\n clearCanvas: function clearCanvas(canvasContext) {\n canvasContext.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w * this.transformCanvas.sx, this.transformCanvas.h * this.transformCanvas.sy);\n },\n prepareLayer: function prepareLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[0];\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx); // on the first buffer we store the current state of the global drawing\n\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // The next four lines are to clear the canvas\n // TODO: Check if there is a way to clear the canvas without resetting the transform\n\n this.currentTransform = this.canvasContext.getTransform();\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform);\n }\n },\n exitLayer: function exitLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[1]; // On the second buffer we store the current state of the global drawing\n // that only contains the content of this layer\n // (if it is a composition, it also includes the nested layers)\n\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx);\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // We clear the canvas again\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform); // We draw the mask\n\n var mask = this.comp.getElementById('tp' in this.data ? this.data.tp : this.data.ind - 1);\n mask.renderFrame(true); // We draw the second buffer (that contains the content of this layer)\n\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\n // the _isProxy check is to avoid drawing a fake canvas in workers that will throw an error\n\n if (this.data.tt >= 3 && !document._isProxy) {\n // We copy the painted mask to a buffer that has a color matrix filter applied to it\n // that applies the rgb values to the alpha channel\n var lumaBuffer = assetLoader.getLumaCanvas(this.canvasContext.canvas);\n var lumaBufferCtx = lumaBuffer.getContext('2d');\n lumaBufferCtx.drawImage(this.canvasContext.canvas, 0, 0);\n this.clearCanvas(this.canvasContext); // we repaint the context with the mask applied to it\n\n this.canvasContext.drawImage(lumaBuffer, 0, 0);\n }\n\n this.canvasContext.globalCompositeOperation = operationsMap[this.data.tt];\n this.canvasContext.drawImage(buffer, 0, 0); // We finally draw the first buffer (that contains the content of the global drawing)\n // We use destination-over to draw the global drawing below the current layer\n\n this.canvasContext.globalCompositeOperation = 'destination-over';\n this.canvasContext.drawImage(this.buffers[0], 0, 0);\n this.canvasContext.setTransform(this.currentTransform); // We reset the globalCompositeOperation to source-over, the standard type of operation\n\n this.canvasContext.globalCompositeOperation = 'source-over';\n }\n },\n renderFrame: function renderFrame(forceRender) {\n if (this.hidden || this.data.hd) {\n return;\n }\n\n if (this.data.td === 1 && !forceRender) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.prepareLayer();\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.localMat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.localOpacity);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\n this.exitLayer();\n\n if (this.maskManager.hasMasks) {\n this.globalData.renderer.restore(true);\n }\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.canvasContext = null;\n this.data = null;\n this.globalData = null;\n this.maskManager.destroy();\n },\n mHelper: new Matrix()\n };\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\n function CVShapeData(element, data, styles, transformsManager) {\n this.styledShapes = [];\n this.tr = [0, 0, 0, 0, 0, 0];\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n var i;\n var len = styles.length;\n var styledShape;\n\n for (i = 0; i < len; i += 1) {\n if (!styles[i].closed) {\n styledShape = {\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\n trNodes: []\n };\n this.styledShapes.push(styledShape);\n styles[i].elements.push(styledShape);\n }\n }\n }\n\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\n function CVShapeElement(data, globalData, comp) {\n this.shapes = [];\n this.shapesData = data.shapes;\n this.stylesList = [];\n this.itemsData = [];\n this.prevViewData = [];\n this.shapeModifiers = [];\n this.processedElements = [];\n this.transformsManager = new ShapeTransformManager();\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n CVShapeElement.prototype.transformHelper = {\n opacity: 1,\n _opMdf: false\n };\n CVShapeElement.prototype.dashResetter = [];\n\n CVShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n };\n\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n var styleElem = {\n data: data,\n type: data.ty,\n preTransforms: this.transformsManager.addTransformSequence(transforms),\n transforms: [],\n elements: [],\n closed: data.hd === true\n };\n var elementData = {};\n\n if (data.ty === 'fl' || data.ty === 'st') {\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\n if (!elementData.c.k) {\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n }\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n elementData.h = PropertyFactory.getProp(this, data.h || {\n k: 0\n }, 0, 0.01, this);\n elementData.a = PropertyFactory.getProp(this, data.a || {\n k: 0\n }, 0, degToRads, this);\n elementData.g = new GradientProperty(this, data.g, this);\n }\n\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\n if (data.ty === 'st' || data.ty === 'gs') {\n styleElem.lc = lineCapEnum[data.lc || 2];\n styleElem.lj = lineJoinEnum[data.lj || 2];\n\n if (data.lj == 1) {\n // eslint-disable-line eqeqeq\n styleElem.ml = data.ml;\n }\n\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\n if (!elementData.w.k) {\n styleElem.wi = elementData.w.v;\n }\n\n if (data.d) {\n var d = new DashProperty(this, data.d, 'canvas', this);\n elementData.d = d;\n\n if (!elementData.d.k) {\n styleElem.da = elementData.d.dashArray;\n styleElem[\"do\"] = elementData.d.dashoffset[0];\n }\n }\n } else {\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n }\n\n this.stylesList.push(styleElem);\n elementData.style = styleElem;\n return elementData;\n };\n\n CVShapeElement.prototype.createGroupElement = function () {\n var elementData = {\n it: [],\n prevViewData: []\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createTransformElement = function (data) {\n var elementData = {\n transform: {\n opacity: 1,\n _opMdf: false,\n key: this.transformsManager.getNewKey(),\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\n }\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createShapeElement = function (data) {\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n return elementData;\n };\n\n CVShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n };\n\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.push(transform);\n }\n }\n };\n\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.pop();\n }\n }\n };\n\n CVShapeElement.prototype.closeStyles = function (styles) {\n var i;\n var len = styles.length;\n\n for (i = 0; i < len; i += 1) {\n styles[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var processedPos;\n var modifier;\n var currentTransform;\n var ownTransforms = [].concat(transforms);\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._shouldRender = shouldRender;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n } else {\n itemsData[i].style.closed = false;\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n currentTransform = this.createTransformElement(arr[i]);\n itemsData[i] = currentTransform;\n }\n\n ownTransforms.push(itemsData[i]);\n this.addTransformToStyleList(itemsData[i]);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i]);\n }\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n shouldRender = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n this.removeTransformFromStyleList();\n this.closeStyles(ownStyles);\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.renderInnerContent = function () {\n this.transformHelper.opacity = 1;\n this.transformHelper._opMdf = false;\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n };\n\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n groupTransform.opacity = parentTransform.opacity;\n groupTransform.opacity *= groupTransform.op.v;\n groupTransform._opMdf = true;\n }\n };\n\n CVShapeElement.prototype.drawLayer = function () {\n var i;\n var len = this.stylesList.length;\n var j;\n var jLen;\n var k;\n var kLen;\n var elems;\n var nodes;\n var renderer = this.globalData.renderer;\n var ctx = this.globalData.canvasContext;\n var type;\n var currentStyle;\n\n for (i = 0; i < len; i += 1) {\n currentStyle = this.stylesList[i];\n type = currentStyle.type; // Skipping style when\n // Stroke width equals 0\n // style should not be rendered (extra unused repeaters)\n // current opacity equals 0\n // global opacity equals 0\n\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n renderer.save();\n elems = currentStyle.elements;\n\n if (type === 'st' || type === 'gs') {\n renderer.ctxStrokeStyle(type === 'st' ? currentStyle.co : currentStyle.grd); // ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n\n renderer.ctxLineWidth(currentStyle.wi); // ctx.lineWidth = currentStyle.wi;\n\n renderer.ctxLineCap(currentStyle.lc); // ctx.lineCap = currentStyle.lc;\n\n renderer.ctxLineJoin(currentStyle.lj); // ctx.lineJoin = currentStyle.lj;\n\n renderer.ctxMiterLimit(currentStyle.ml || 0); // ctx.miterLimit = currentStyle.ml || 0;\n } else {\n renderer.ctxFillStyle(type === 'fl' ? currentStyle.co : currentStyle.grd); // ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n }\n\n renderer.ctxOpacity(currentStyle.coOp);\n\n if (type !== 'st' && type !== 'gs') {\n ctx.beginPath();\n }\n\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n jLen = elems.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (type === 'st' || type === 'gs') {\n ctx.beginPath();\n\n if (currentStyle.da) {\n ctx.setLineDash(currentStyle.da);\n ctx.lineDashOffset = currentStyle[\"do\"];\n }\n }\n\n nodes = elems[j].trNodes;\n kLen = nodes.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (nodes[k].t === 'm') {\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n } else if (nodes[k].t === 'c') {\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n } else {\n ctx.closePath();\n }\n }\n\n if (type === 'st' || type === 'gs') {\n // ctx.stroke();\n renderer.ctxStroke();\n\n if (currentStyle.da) {\n ctx.setLineDash(this.dashResetter);\n }\n }\n }\n\n if (type !== 'st' && type !== 'gs') {\n // ctx.fill(currentStyle.r);\n this.globalData.renderer.ctxFill(currentStyle.r);\n }\n\n renderer.restore();\n }\n }\n };\n\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n var i;\n var len = items.length - 1;\n var groupTransform;\n groupTransform = parentTransform;\n\n for (i = len; i >= 0; i -= 1) {\n if (items[i].ty === 'tr') {\n groupTransform = data[i].transform;\n this.renderShapeTransform(parentTransform, groupTransform);\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n this.renderPath(items[i], data[i]);\n } else if (items[i].ty === 'fl') {\n this.renderFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'st') {\n this.renderStroke(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n this.renderGradientFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gr') {\n this.renderShape(groupTransform, items[i].it, data[i].it);\n } else if (items[i].ty === 'tm') {//\n }\n }\n\n if (isMain) {\n this.drawLayer();\n }\n };\n\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n var shapeNodes = styledShape.trNodes;\n var paths = shape.paths;\n var i;\n var len;\n var j;\n var jLen = paths._length;\n shapeNodes.length = 0;\n var groupTransformMat = styledShape.transforms.finalTransform;\n\n for (j = 0; j < jLen; j += 1) {\n var pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes.v) {\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n if (i === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n });\n }\n\n if (len === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n if (pathNodes.c && len) {\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n });\n shapeNodes.push({\n t: 'z'\n });\n }\n }\n }\n\n styledShape.trNodes = shapeNodes;\n }\n };\n\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n if (pathData.hd !== true && pathData._shouldRender) {\n var i;\n var len = itemData.styledShapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n }\n }\n };\n\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n };\n\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var grd;\n\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n var ctx = this.globalData.canvasContext;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (styleData.t === 1) {\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n } else {\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n }\n\n var i;\n var len = styleData.g.p;\n var cValues = itemData.g.c;\n var opacity = 1;\n\n for (i = 0; i < len; i += 1) {\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\n opacity = itemData.g.o[i * 2 + 1];\n }\n\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n }\n\n styleElem.grd = grd;\n }\n\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n };\n\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || this._isFirstFrame)) {\n styleElem.da = d.dashArray;\n styleElem[\"do\"] = d.dashoffset[0];\n }\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n\n if (itemData.w._mdf || this._isFirstFrame) {\n styleElem.wi = itemData.w.v;\n }\n };\n\n CVShapeElement.prototype.destroy = function () {\n this.shapesData = null;\n this.globalData = null;\n this.canvasContext = null;\n this.stylesList.length = 0;\n this.itemsData.length = 0;\n };\n\n function CVTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.yOffset = 0;\n this.fillColorAnim = false;\n this.strokeColorAnim = false;\n this.strokeWidthAnim = false;\n this.stroke = false;\n this.fill = false;\n this.justifyOffset = 0;\n this.currentRender = null;\n this.renderType = 'canvas';\n this.values = {\n fill: 'rgba(0,0,0,0)',\n stroke: 'rgba(0,0,0,0)',\n sWidth: 0,\n fValue: ''\n };\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\n CVTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var hasFill = false;\n\n if (documentData.fc) {\n hasFill = true;\n this.values.fill = this.buildColor(documentData.fc);\n } else {\n this.values.fill = 'rgba(0,0,0,0)';\n }\n\n this.fill = hasFill;\n var hasStroke = false;\n\n if (documentData.sc) {\n hasStroke = true;\n this.values.stroke = this.buildColor(documentData.sc);\n this.values.sWidth = documentData.sw;\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n var i;\n var len;\n var letters = documentData.l;\n var matrixHelper = this.mHelper;\n this.stroke = hasStroke;\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n var charData;\n var shapeData;\n var k;\n var kLen;\n var shapes;\n var j;\n var jLen;\n var pathNodes;\n var commands;\n var pathArr;\n var singleShape = this.data.singleShape;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n shapeData = charData && charData.data || {};\n matrixHelper.reset();\n\n if (singleShape && letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n jLen = shapes.length;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n }\n\n commands = createSizedArray(jLen - 1);\n var commandsCounter = 0;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n kLen = shapes[j].ks.k.i.length;\n pathNodes = shapes[j].ks.k;\n pathArr = [];\n\n for (k = 1; k < kLen; k += 1) {\n if (k === 1) {\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n commands[commandsCounter] = pathArr;\n commandsCounter += 1;\n }\n }\n\n if (singleShape) {\n xPos += letters[i].l;\n xPos += trackingOffset;\n }\n\n if (this.textSpans[cnt]) {\n this.textSpans[cnt].elem = commands;\n } else {\n this.textSpans[cnt] = {\n elem: commands\n };\n }\n\n cnt += 1;\n }\n };\n\n CVTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n this.globalData.renderer.ctxLineCap('butt'); // ctx.lineCap = 'butt';\n\n this.globalData.renderer.ctxLineJoin('miter'); // ctx.lineJoin = 'miter';\n\n this.globalData.renderer.ctxMiterLimit(4); // ctx.miterLimit = 4;\n\n if (!this.data.singleShape) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n }\n\n var i;\n var len;\n var j;\n var jLen;\n var k;\n var kLen;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var lastFill = null;\n var lastStroke = null;\n var lastStrokeW = null;\n var commands;\n var pathArr;\n var renderer = this.globalData.renderer;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n\n if (renderedLetter) {\n renderer.save();\n renderer.ctxTransform(renderedLetter.p);\n renderer.ctxOpacity(renderedLetter.o);\n }\n\n if (this.fill) {\n if (renderedLetter && renderedLetter.fc) {\n if (lastFill !== renderedLetter.fc) {\n renderer.ctxFillStyle(renderedLetter.fc);\n lastFill = renderedLetter.fc; // ctx.fillStyle = renderedLetter.fc;\n }\n } else if (lastFill !== this.values.fill) {\n lastFill = this.values.fill;\n renderer.ctxFillStyle(this.values.fill); // ctx.fillStyle = this.values.fill;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxFill(); // this.globalData.canvasContext.fill();\n /// ctx.fillText(this.textSpans[i].val,0,0);\n }\n\n if (this.stroke) {\n if (renderedLetter && renderedLetter.sw) {\n if (lastStrokeW !== renderedLetter.sw) {\n lastStrokeW = renderedLetter.sw;\n renderer.ctxLineWidth(renderedLetter.sw); // ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n renderer.ctxLineWidth(this.values.sWidth); // ctx.lineWidth = this.values.sWidth;\n }\n\n if (renderedLetter && renderedLetter.sc) {\n if (lastStroke !== renderedLetter.sc) {\n lastStroke = renderedLetter.sc;\n renderer.ctxStrokeStyle(renderedLetter.sc); // ctx.strokeStyle = renderedLetter.sc;\n }\n } else if (lastStroke !== this.values.stroke) {\n lastStroke = this.values.stroke;\n renderer.ctxStrokeStyle(this.values.stroke); // ctx.strokeStyle = this.values.stroke;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxStroke(); // this.globalData.canvasContext.stroke();\n /// ctx.strokeText(letters[i].val,0,0);\n }\n\n if (renderedLetter) {\n this.globalData.renderer.restore();\n }\n }\n }\n };\n\n function CVImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.img = globalData.imageLoader.getAsset(this.assetData);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVImageElement.prototype.createContent = function () {\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n var canvas = createTag('canvas');\n canvas.width = this.assetData.w;\n canvas.height = this.assetData.h;\n var ctx = canvas.getContext('2d');\n var imgW = this.img.width;\n var imgH = this.img.height;\n var imgRel = imgW / imgH;\n var canvasRel = this.assetData.w / this.assetData.h;\n var widthCrop;\n var heightCrop;\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\n heightCrop = imgH;\n widthCrop = heightCrop * canvasRel;\n } else {\n widthCrop = imgW;\n heightCrop = widthCrop / canvasRel;\n }\n\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n this.img = canvas;\n }\n };\n\n CVImageElement.prototype.renderInnerContent = function () {\n this.canvasContext.drawImage(this.img, 0, 0);\n };\n\n CVImageElement.prototype.destroy = function () {\n this.img = null;\n };\n\n function CVSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVSolidElement.prototype.renderInnerContent = function () {\n // var ctx = this.canvasContext;\n this.globalData.renderer.ctxFillStyle(this.data.sc); // ctx.fillStyle = this.data.sc;\n\n this.globalData.renderer.ctxFillRect(0, 0, this.data.sw, this.data.sh); // ctx.fillRect(0, 0, this.data.sw, this.data.sh);\n //\n };\n\n function CanvasRendererBase() {}\n\n extendPrototype([BaseRenderer], CanvasRendererBase);\n\n CanvasRendererBase.prototype.createShape = function (data) {\n return new CVShapeElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createText = function (data) {\n return new CVTextElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createImage = function (data) {\n return new CVImageElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createSolid = function (data) {\n return new CVSolidElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n CanvasRendererBase.prototype.ctxTransform = function (props) {\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n return;\n }\n\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n };\n\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n };\n\n CanvasRendererBase.prototype.ctxFillStyle = function (value) {\n this.canvasContext.fillStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxStrokeStyle = function (value) {\n this.canvasContext.strokeStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxLineWidth = function (value) {\n this.canvasContext.lineWidth = value;\n };\n\n CanvasRendererBase.prototype.ctxLineCap = function (value) {\n this.canvasContext.lineCap = value;\n };\n\n CanvasRendererBase.prototype.ctxLineJoin = function (value) {\n this.canvasContext.lineJoin = value;\n };\n\n CanvasRendererBase.prototype.ctxMiterLimit = function (value) {\n this.canvasContext.miterLimit = value;\n };\n\n CanvasRendererBase.prototype.ctxFill = function (rule) {\n this.canvasContext.fill(rule);\n };\n\n CanvasRendererBase.prototype.ctxFillRect = function (x, y, w, h) {\n this.canvasContext.fillRect(x, y, w, h);\n };\n\n CanvasRendererBase.prototype.ctxStroke = function () {\n this.canvasContext.stroke();\n };\n\n CanvasRendererBase.prototype.reset = function () {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n this.contextData.reset();\n };\n\n CanvasRendererBase.prototype.save = function () {\n this.canvasContext.save();\n };\n\n CanvasRendererBase.prototype.restore = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n if (actionFlag) {\n this.globalData.blendMode = 'source-over';\n }\n\n this.contextData.restore(actionFlag);\n };\n\n CanvasRendererBase.prototype.configAnimation = function (animData) {\n if (this.animationItem.wrapper) {\n this.animationItem.container = createTag('canvas');\n var containerStyle = this.animationItem.container.style;\n containerStyle.width = '100%';\n containerStyle.height = '100%';\n var origin = '0px 0px 0px';\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n containerStyle['-webkit-transform'] = origin;\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\n this.animationItem.wrapper.appendChild(this.animationItem.container);\n this.canvasContext = this.animationItem.container.getContext('2d');\n\n if (this.renderConfig.className) {\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\n }\n } else {\n this.canvasContext = this.renderConfig.context;\n }\n\n this.contextData.setContext(this.canvasContext);\n this.data = animData;\n this.layers = animData.layers;\n this.transformCanvas = {\n w: animData.w,\n h: animData.h,\n sx: 0,\n sy: 0,\n tx: 0,\n ty: 0\n };\n this.setupGlobalData(animData, document.body);\n this.globalData.canvasContext = this.canvasContext;\n this.globalData.renderer = this;\n this.globalData.isDashed = false;\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.globalData.transformCanvas = this.transformCanvas;\n this.elements = createSizedArray(animData.layers.length);\n this.updateContainerSize();\n };\n\n CanvasRendererBase.prototype.updateContainerSize = function (width, height) {\n this.reset();\n var elementWidth;\n var elementHeight;\n\n if (width) {\n elementWidth = width;\n elementHeight = height;\n this.canvasContext.canvas.width = elementWidth;\n this.canvasContext.canvas.height = elementHeight;\n } else {\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n } else {\n elementWidth = this.canvasContext.canvas.width;\n elementHeight = this.canvasContext.canvas.height;\n }\n\n this.canvasContext.canvas.width = elementWidth * this.renderConfig.dpr;\n this.canvasContext.canvas.height = elementHeight * this.renderConfig.dpr;\n }\n\n var elementRel;\n var animationRel;\n\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n var par = this.renderConfig.preserveAspectRatio.split(' ');\n var fillType = par[1] || 'meet';\n var pos = par[0] || 'xMidYMid';\n var xPos = pos.substr(0, 4);\n var yPos = pos.substr(4);\n elementRel = elementWidth / elementHeight;\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\n\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n } else {\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n }\n\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.tx = 0;\n }\n\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.ty = 0;\n }\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n } else {\n this.transformCanvas.sx = this.renderConfig.dpr;\n this.transformCanvas.sy = this.renderConfig.dpr;\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n }\n\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];\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.globalData.canvasContext = null;\n this.animationItem.container = null;\n this.destroyed = true;\n };\n\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\n return;\n }\n\n this.renderedFrame = num;\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\n this.globalData.frameId += 1;\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\n // console.log('NEW: ',num);\n\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n if (this.renderConfig.clearCanvas === true) {\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n } else {\n this.save();\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n\n if (this.renderConfig.clearCanvas !== true) {\n this.restore();\n }\n }\n };\n\n CanvasRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n var element = this.createItem(this.layers[pos], this, this.globalData);\n elements[pos] = element;\n element.initExpressions();\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\n };\n\n CanvasRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n CanvasRendererBase.prototype.hide = function () {\n this.animationItem.container.style.display = 'none';\n };\n\n CanvasRendererBase.prototype.show = function () {\n this.animationItem.container.style.display = 'block';\n };\n\n function CanvasContext() {\n this.opacity = -1;\n this.transform = createTypedArray('float32', 16);\n this.fillStyle = '';\n this.strokeStyle = '';\n this.lineWidth = '';\n this.lineCap = '';\n this.lineJoin = '';\n this.miterLimit = '';\n this.id = Math.random();\n }\n\n function CVContextData() {\n this.stack = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n var i;\n var len = 15;\n\n for (i = 0; i < len; i += 1) {\n var canvasContext = new CanvasContext();\n this.stack[i] = canvasContext;\n }\n\n this._length = len;\n this.nativeContext = null;\n this.transformMat = new Matrix();\n this.currentOpacity = 1; //\n\n this.currentFillStyle = '';\n this.appliedFillStyle = ''; //\n\n this.currentStrokeStyle = '';\n this.appliedStrokeStyle = ''; //\n\n this.currentLineWidth = '';\n this.appliedLineWidth = ''; //\n\n this.currentLineCap = '';\n this.appliedLineCap = ''; //\n\n this.currentLineJoin = '';\n this.appliedLineJoin = ''; //\n\n this.appliedMiterLimit = '';\n this.currentMiterLimit = '';\n }\n\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var i = 0;\n\n for (i = this._length; i < newLength; i += 1) {\n this.stack[i] = new CanvasContext();\n }\n\n this._length = newLength;\n };\n\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.stack[this.cArrPos].opacity = 1;\n };\n\n CVContextData.prototype.restore = function (forceRestore) {\n this.cArrPos -= 1;\n var currentContext = this.stack[this.cArrPos];\n var transform = currentContext.transform;\n var i;\n var arr = this.cTr.props;\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = transform[i];\n }\n\n if (forceRestore) {\n this.nativeContext.restore();\n var prevStack = this.stack[this.cArrPos + 1];\n this.appliedFillStyle = prevStack.fillStyle;\n this.appliedStrokeStyle = prevStack.strokeStyle;\n this.appliedLineWidth = prevStack.lineWidth;\n this.appliedLineCap = prevStack.lineCap;\n this.appliedLineJoin = prevStack.lineJoin;\n this.appliedMiterLimit = prevStack.miterLimit;\n }\n\n this.nativeContext.setTransform(transform[0], transform[1], transform[4], transform[5], transform[12], transform[13]);\n\n if (forceRestore || currentContext.opacity !== -1 && this.currentOpacity !== currentContext.opacity) {\n this.nativeContext.globalAlpha = currentContext.opacity;\n this.currentOpacity = currentContext.opacity;\n }\n\n this.currentFillStyle = currentContext.fillStyle;\n this.currentStrokeStyle = currentContext.strokeStyle;\n this.currentLineWidth = currentContext.lineWidth;\n this.currentLineCap = currentContext.lineCap;\n this.currentLineJoin = currentContext.lineJoin;\n this.currentMiterLimit = currentContext.miterLimit;\n };\n\n CVContextData.prototype.save = function (saveOnNativeFlag) {\n if (saveOnNativeFlag) {\n this.nativeContext.save();\n }\n\n var props = this.cTr.props;\n\n if (this._length <= this.cArrPos) {\n this.duplicate();\n }\n\n var currentStack = this.stack[this.cArrPos];\n var i;\n\n for (i = 0; i < 16; i += 1) {\n currentStack.transform[i] = props[i];\n }\n\n this.cArrPos += 1;\n var newStack = this.stack[this.cArrPos];\n newStack.opacity = currentStack.opacity;\n newStack.fillStyle = currentStack.fillStyle;\n newStack.strokeStyle = currentStack.strokeStyle;\n newStack.lineWidth = currentStack.lineWidth;\n newStack.lineCap = currentStack.lineCap;\n newStack.lineJoin = currentStack.lineJoin;\n newStack.miterLimit = currentStack.miterLimit;\n };\n\n CVContextData.prototype.setOpacity = function (value) {\n this.stack[this.cArrPos].opacity = value;\n };\n\n CVContextData.prototype.setContext = function (value) {\n this.nativeContext = value;\n };\n\n CVContextData.prototype.fillStyle = function (value) {\n if (this.stack[this.cArrPos].fillStyle !== value) {\n this.currentFillStyle = value;\n this.stack[this.cArrPos].fillStyle = value;\n }\n };\n\n CVContextData.prototype.strokeStyle = function (value) {\n if (this.stack[this.cArrPos].strokeStyle !== value) {\n this.currentStrokeStyle = value;\n this.stack[this.cArrPos].strokeStyle = value;\n }\n };\n\n CVContextData.prototype.lineWidth = function (value) {\n if (this.stack[this.cArrPos].lineWidth !== value) {\n this.currentLineWidth = value;\n this.stack[this.cArrPos].lineWidth = value;\n }\n };\n\n CVContextData.prototype.lineCap = function (value) {\n if (this.stack[this.cArrPos].lineCap !== value) {\n this.currentLineCap = value;\n this.stack[this.cArrPos].lineCap = value;\n }\n };\n\n CVContextData.prototype.lineJoin = function (value) {\n if (this.stack[this.cArrPos].lineJoin !== value) {\n this.currentLineJoin = value;\n this.stack[this.cArrPos].lineJoin = value;\n }\n };\n\n CVContextData.prototype.miterLimit = function (value) {\n if (this.stack[this.cArrPos].miterLimit !== value) {\n this.currentMiterLimit = value;\n this.stack[this.cArrPos].miterLimit = value;\n }\n };\n\n CVContextData.prototype.transform = function (props) {\n this.transformMat.cloneFromProps(props); // Taking the last transform value from the stored stack of transforms\n\n var currentTransform = this.cTr; // Applying the last transform value after the new transform to respect the order of transformations\n\n this.transformMat.multiply(currentTransform); // Storing the new transformed value in the stored transform\n\n currentTransform.cloneFromProps(this.transformMat.props);\n var trProps = currentTransform.props; // Applying the new transform to the canvas\n\n this.nativeContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n\n CVContextData.prototype.opacity = function (op) {\n var currentOpacity = this.stack[this.cArrPos].opacity;\n currentOpacity *= op < 0 ? 0 : op;\n\n if (this.stack[this.cArrPos].opacity !== currentOpacity) {\n if (this.currentOpacity !== op) {\n this.nativeContext.globalAlpha = op;\n this.currentOpacity = op;\n }\n\n this.stack[this.cArrPos].opacity = currentOpacity;\n }\n };\n\n CVContextData.prototype.fill = function (rule) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fill(rule);\n };\n\n CVContextData.prototype.fillRect = function (x, y, w, h) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fillRect(x, y, w, h);\n };\n\n CVContextData.prototype.stroke = function () {\n if (this.appliedStrokeStyle !== this.currentStrokeStyle) {\n this.appliedStrokeStyle = this.currentStrokeStyle;\n this.nativeContext.strokeStyle = this.appliedStrokeStyle;\n }\n\n if (this.appliedLineWidth !== this.currentLineWidth) {\n this.appliedLineWidth = this.currentLineWidth;\n this.nativeContext.lineWidth = this.appliedLineWidth;\n }\n\n if (this.appliedLineCap !== this.currentLineCap) {\n this.appliedLineCap = this.currentLineCap;\n this.nativeContext.lineCap = this.appliedLineCap;\n }\n\n if (this.appliedLineJoin !== this.currentLineJoin) {\n this.appliedLineJoin = this.currentLineJoin;\n this.nativeContext.lineJoin = this.appliedLineJoin;\n }\n\n if (this.appliedMiterLimit !== this.currentMiterLimit) {\n this.appliedMiterLimit = this.currentMiterLimit;\n this.nativeContext.miterLimit = this.appliedMiterLimit;\n }\n\n this.nativeContext.stroke();\n };\n\n function CVCompElement(data, globalData, comp) {\n this.completeLayers = false;\n this.layers = data.layers;\n this.pendingElements = [];\n this.elements = createSizedArray(this.layers.length);\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\n CVCompElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(this.data.w, 0);\n ctx.lineTo(this.data.w, this.data.h);\n ctx.lineTo(0, this.data.h);\n ctx.lineTo(0, 0);\n ctx.clip();\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n CVCompElement.prototype.destroy = function () {\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.layers = null;\n this.elements = null;\n };\n\n CVCompElement.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function CanvasRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || '',\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n\n if (this.renderConfig.clearCanvas) {\n this.ctxTransform = this.contextData.transform.bind(this.contextData);\n this.ctxOpacity = this.contextData.opacity.bind(this.contextData);\n this.ctxFillStyle = this.contextData.fillStyle.bind(this.contextData);\n this.ctxStrokeStyle = this.contextData.strokeStyle.bind(this.contextData);\n this.ctxLineWidth = this.contextData.lineWidth.bind(this.contextData);\n this.ctxLineCap = this.contextData.lineCap.bind(this.contextData);\n this.ctxLineJoin = this.contextData.lineJoin.bind(this.contextData);\n this.ctxMiterLimit = this.contextData.miterLimit.bind(this.contextData);\n this.ctxFill = this.contextData.fill.bind(this.contextData);\n this.ctxFillRect = this.contextData.fillRect.bind(this.contextData);\n this.ctxStroke = this.contextData.stroke.bind(this.contextData);\n this.save = this.contextData.save.bind(this.contextData);\n }\n }\n\n extendPrototype([CanvasRendererBase], CanvasRenderer);\n\n CanvasRenderer.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function HBaseElement() {}\n\n HBaseElement.prototype = {\n checkBlendMode: function checkBlendMode() {},\n initRendererElement: function initRendererElement() {\n this.baseElement = createTag(this.data.tg || 'div');\n\n if (this.data.hasMask) {\n this.svgElement = createNS('svg');\n this.layerElement = createNS('g');\n this.maskedElement = this.layerElement;\n this.svgElement.appendChild(this.layerElement);\n this.baseElement.appendChild(this.svgElement);\n } else {\n this.layerElement = this.baseElement;\n }\n\n styleDiv(this.baseElement);\n },\n createContainerElements: function createContainerElements() {\n this.renderableEffectsManager = new CVEffects(this);\n this.transformedElement = this.baseElement;\n this.maskedElement = this.layerElement;\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\n if (this.finalTransform._matMdf) {\n var matrixValue = this.finalTransform.mat.toCSS();\n transformedElementStyle.transform = matrixValue;\n transformedElementStyle.webkitTransform = matrixValue;\n }\n\n if (this.finalTransform._opMdf) {\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.layerElement = null;\n this.transformedElement = null;\n\n if (this.matteElement) {\n this.matteElement = null;\n }\n\n if (this.maskManager) {\n this.maskManager.destroy();\n this.maskManager = null;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n },\n addEffects: function addEffects() {},\n setMatte: function setMatte() {}\n };\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\n function HSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n HSolidElement.prototype.createContent = function () {\n var rect;\n\n if (this.data.hasMask) {\n rect = createNS('rect');\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.svgElement.setAttribute('width', this.data.sw);\n this.svgElement.setAttribute('height', this.data.sh);\n } else {\n rect = createTag('div');\n rect.style.width = this.data.sw + 'px';\n rect.style.height = this.data.sh + 'px';\n rect.style.backgroundColor = this.data.sc;\n }\n\n this.layerElement.appendChild(rect);\n };\n\n function HShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.shapesContainer = createNS('g');\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n }\n\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n HShapeElement.prototype.createContent = function () {\n var cont;\n this.baseElement.style.fontSize = 0;\n\n if (this.data.hasMask) {\n this.layerElement.appendChild(this.shapesContainer);\n cont = this.svgElement;\n } else {\n cont = createNS('svg');\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\n cont.setAttribute('width', size.w);\n cont.setAttribute('height', size.h);\n cont.appendChild(this.shapesContainer);\n this.layerElement.appendChild(cont);\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n this.filterUniqueShapes();\n this.shapeCont = cont;\n };\n\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n var i;\n var len = transformers.length;\n\n for (i = 0; i < len; i += 1) {\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n }\n\n return point;\n };\n\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n var shape = item.sh.v;\n var transformers = item.transformers;\n var i;\n var len = shape._length;\n var vPoint;\n var oPoint;\n var nextIPoint;\n var nextVPoint;\n\n if (len <= 1) {\n return;\n }\n\n for (i = 0; i < len - 1; i += 1) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n\n if (shape.c) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n };\n\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n var bounds = this.shapeBoundingBox;\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n };\n\n HShapeElement.prototype.shapeBoundingBox = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n HShapeElement.prototype.tempBoundingBox = {\n x: 0,\n xMax: 0,\n y: 0,\n yMax: 0,\n width: 0,\n height: 0\n };\n\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n // eslint-disable-line no-plusplus\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n b |= 0; // eslint-disable-line no-bitwise\n\n a |= 0; // eslint-disable-line no-bitwise\n\n c |= 0; // eslint-disable-line no-bitwise\n\n if (a === 0 && b === 0) {//\n } else if (a === 0) {\n t = -c / b;\n\n if (t > 0 && t < 1) {\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n }\n } else {\n b2ac = b * b - 4 * c * a;\n\n if (b2ac >= 0) {\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n }\n }\n }\n\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n };\n\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n };\n\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n var i;\n var len = itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n if (itemsData[i] && itemsData[i].sh) {\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n } else if (itemsData[i] && itemsData[i].it) {\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\n } else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\n this.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\n }\n }\n };\n\n HShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\n var width = 0;\n\n if (widthProperty.keyframes) {\n for (var i = 0; i < widthProperty.keyframes.length; i += 1) {\n var kfw = widthProperty.keyframes[i].s;\n\n if (kfw > width) {\n width = kfw;\n }\n }\n\n width *= widthProperty.mult;\n } else {\n width = widthProperty.v * widthProperty.mult;\n }\n\n boundingBox.x -= width;\n boundingBox.xMax += width;\n boundingBox.y -= width;\n boundingBox.yMax += width;\n };\n\n HShapeElement.prototype.currentBoxContains = function (box) {\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;\n };\n\n HShapeElement.prototype.renderInnerContent = function () {\n this._renderShapeFrame();\n\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\n var tempBoundingBox = this.tempBoundingBox;\n var max = 999999;\n tempBoundingBox.x = max;\n tempBoundingBox.xMax = -max;\n tempBoundingBox.y = max;\n tempBoundingBox.yMax = -max;\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n if (this.currentBoxContains(tempBoundingBox)) {\n return;\n }\n\n var changed = false;\n\n if (this.currentBBox.w !== tempBoundingBox.width) {\n this.currentBBox.w = tempBoundingBox.width;\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\n changed = true;\n }\n\n if (this.currentBBox.h !== tempBoundingBox.height) {\n this.currentBBox.h = tempBoundingBox.height;\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\n changed = true;\n }\n\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n this.currentBBox.w = tempBoundingBox.width;\n this.currentBBox.h = tempBoundingBox.height;\n this.currentBBox.x = tempBoundingBox.x;\n this.currentBBox.y = tempBoundingBox.y;\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n var shapeStyle = this.shapeCont.style;\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n shapeStyle.transform = shapeTransform;\n shapeStyle.webkitTransform = shapeTransform;\n }\n }\n };\n\n function HTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.textPaths = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n this.renderType = 'svg';\n this.isMasked = false;\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n HTextElement.prototype.createContent = function () {\n this.isMasked = this.checkMasks();\n\n if (this.isMasked) {\n this.renderType = 'svg';\n this.compW = this.comp.data.w;\n this.compH = this.comp.data.h;\n this.svgElement.setAttribute('width', this.compW);\n this.svgElement.setAttribute('height', this.compH);\n var g = createNS('g');\n this.maskedElement.appendChild(g);\n this.innerElem = g;\n } else {\n this.renderType = 'html';\n this.innerElem = this.layerElement;\n }\n\n this.checkParenting();\n };\n\n HTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var innerElemStyle = this.innerElem.style;\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n innerElemStyle.fill = textColor;\n innerElemStyle.color = textColor;\n\n if (documentData.sc) {\n innerElemStyle.stroke = this.buildColor(documentData.sc);\n innerElemStyle.strokeWidth = documentData.sw + 'px';\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (!this.globalData.fontManager.chars) {\n innerElemStyle.fontSize = documentData.finalSize + 'px';\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\n\n if (fontData.fClass) {\n this.innerElem.className = fontData.fClass;\n } else {\n innerElemStyle.fontFamily = fontData.fFamily;\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n innerElemStyle.fontStyle = fStyle;\n innerElemStyle.fontWeight = fWeight;\n }\n }\n\n var i;\n var len;\n var letters = documentData.l;\n len = letters.length;\n var tSpan;\n var tParent;\n var tCont;\n var matrixHelper = this.mHelper;\n var shapes;\n var shapeStr = '';\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.globalData.fontManager.chars) {\n if (!this.textPaths[cnt]) {\n tSpan = createNS('path');\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n tSpan.setAttribute('stroke-miterlimit', '4');\n } else {\n tSpan = this.textPaths[cnt];\n }\n\n if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tCont = tParent.children[0];\n } else {\n tParent = createTag('div');\n tParent.style.lineHeight = 0;\n tCont = createNS('svg');\n tCont.appendChild(tSpan);\n styleDiv(tParent);\n }\n }\n } else if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tSpan = this.textPaths[cnt];\n } else {\n tParent = createTag('span');\n styleDiv(tParent);\n tSpan = createTag('span');\n styleDiv(tSpan);\n tParent.appendChild(tSpan);\n }\n } else {\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n } // tSpan.setAttribute('visibility', 'hidden');\n\n\n if (this.globalData.fontManager.chars) {\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var shapeData;\n\n if (charData) {\n shapeData = charData.data;\n } else {\n shapeData = null;\n }\n\n matrixHelper.reset();\n\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\n shapes = shapeData.shapes[0].it;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n shapeStr = this.createPathShape(matrixHelper, shapes);\n tSpan.setAttribute('d', shapeStr);\n }\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent);\n\n if (shapeData && shapeData.shapes) {\n // document.body.appendChild is needed to get exact measure of shape\n document.body.appendChild(tCont);\n var boundingBox = tCont.getBBox();\n tCont.setAttribute('width', boundingBox.width + 2);\n tCont.setAttribute('height', boundingBox.height + 2);\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n var tContStyle = tCont.style;\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n tContStyle.transform = tContTranslation;\n tContStyle.webkitTransform = tContTranslation;\n letters[i].yOffset = boundingBox.y - 1;\n } else {\n tCont.setAttribute('width', 1);\n tCont.setAttribute('height', 1);\n }\n\n tParent.appendChild(tCont);\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } else {\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent); //\n\n var tStyle = tSpan.style;\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n tStyle.transform = tSpanTranslation;\n tStyle.webkitTransform = tSpanTranslation;\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } //\n\n\n if (!this.isMasked) {\n this.textSpans[cnt] = tParent;\n } else {\n this.textSpans[cnt] = tSpan;\n }\n\n this.textSpans[cnt].style.display = 'block';\n this.textPaths[cnt] = tSpan;\n cnt += 1;\n }\n\n while (cnt < this.textSpans.length) {\n this.textSpans[cnt].style.display = 'none';\n cnt += 1;\n }\n };\n\n HTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var svgStyle;\n\n if (this.data.singleShape) {\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\n return;\n }\n\n if (this.isMasked && this.finalTransform._matMdf) {\n // Todo Benchmark if using this is better than getBBox\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n svgStyle = this.svgElement.style;\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n svgStyle.transform = translation;\n svgStyle.webkitTransform = translation;\n }\n }\n\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n return;\n }\n\n var i;\n var len;\n var count = 0;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var textPath;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n count += 1;\n } else {\n textSpan = this.textSpans[i];\n textPath = this.textPaths[i];\n renderedLetter = renderedLetters[count];\n count += 1;\n\n if (renderedLetter._mdf.m) {\n if (!this.isMasked) {\n textSpan.style.webkitTransform = renderedLetter.m;\n textSpan.style.transform = renderedLetter.m;\n } else {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n textSpan.style.opacity = renderedLetter.o;\n\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\n textPath.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\n textPath.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\n textPath.setAttribute('fill', renderedLetter.fc);\n textPath.style.color = renderedLetter.fc;\n }\n }\n }\n\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n var boundingBox = this.innerElem.getBBox();\n\n if (this.currentBBox.w !== boundingBox.width) {\n this.currentBBox.w = boundingBox.width;\n this.svgElement.setAttribute('width', boundingBox.width);\n }\n\n if (this.currentBBox.h !== boundingBox.height) {\n this.currentBBox.h = boundingBox.height;\n this.svgElement.setAttribute('height', boundingBox.height);\n }\n\n var margin = 1;\n\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) {\n this.currentBBox.w = boundingBox.width + margin * 2;\n this.currentBBox.h = boundingBox.height + margin * 2;\n this.currentBBox.x = boundingBox.x - margin;\n this.currentBBox.y = boundingBox.y - margin;\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n svgStyle = this.svgElement.style;\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n svgStyle.transform = svgTransform;\n svgStyle.webkitTransform = svgTransform;\n }\n }\n };\n\n function HCameraElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initHierarchy();\n var getProp = PropertyFactory.getProp;\n this.pe = getProp(this, data.pe, 0, 0, this);\n\n if (data.ks.p.s) {\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\n } else {\n this.p = getProp(this, data.ks.p, 1, 0, this);\n }\n\n if (data.ks.a) {\n this.a = getProp(this, data.ks.a, 1, 0, this);\n }\n\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\n var i;\n var len = data.ks.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.ks.or.k[i].to = null;\n data.ks.or.k[i].ti = null;\n }\n }\n\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\n this.or.sh = true;\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n this.mat = new Matrix();\n this._prevMat = new Matrix();\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n this.finalTransform = {\n mProp: this\n };\n }\n\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n HCameraElement.prototype.setup = function () {\n var i;\n var len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n // [perspectiveElem,container]\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n perspectiveStyle = comp.perspectiveElem.style;\n containerStyle = comp.container.style;\n var perspective = this.pe.v + 'px';\n var origin = '0px 0px 0px';\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n perspectiveStyle.perspective = perspective;\n perspectiveStyle.webkitPerspective = perspective;\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n perspectiveStyle.transform = matrix;\n perspectiveStyle.webkitTransform = matrix;\n }\n }\n };\n\n HCameraElement.prototype.createElements = function () {};\n\n HCameraElement.prototype.hide = function () {};\n\n HCameraElement.prototype.renderFrame = function () {\n var _mdf = this._isFirstFrame;\n var i;\n var len;\n\n if (this.hierarchy) {\n len = this.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n }\n }\n\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) {\n this.mat.reset();\n\n if (this.hierarchy) {\n len = this.hierarchy.length - 1;\n\n for (i = len; i >= 0; i -= 1) {\n var mTransf = this.hierarchy[i].finalTransform.mProp;\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n }\n }\n\n if (this.p) {\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n } else {\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n }\n\n if (this.a) {\n var diffVector;\n\n if (this.p) {\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]];\n } else {\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n }\n\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\n }\n\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n this.mat.translate(0, 0, this.pe.v);\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\n\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n if (hasMatrixChanged) {\n var matValue = this.mat.toCSS();\n containerStyle = comp.container.style;\n containerStyle.transform = matValue;\n containerStyle.webkitTransform = matValue;\n }\n\n if (this.pe._mdf) {\n perspectiveStyle = comp.perspectiveElem.style;\n perspectiveStyle.perspective = this.pe.v + 'px';\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\n }\n }\n }\n\n this.mat.clone(this._prevMat);\n }\n }\n\n this._isFirstFrame = false;\n };\n\n HCameraElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n HCameraElement.prototype.destroy = function () {};\n\n HCameraElement.prototype.getBaseElement = function () {\n return null;\n };\n\n function HImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n HImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n var img = new Image();\n\n if (this.data.hasMask) {\n this.imageElem = createNS('image');\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.imageElem);\n this.baseElement.setAttribute('width', this.assetData.w);\n this.baseElement.setAttribute('height', this.assetData.h);\n } else {\n this.layerElement.appendChild(img);\n }\n\n img.crossOrigin = 'anonymous';\n img.src = assetPath;\n\n if (this.data.ln) {\n this.baseElement.setAttribute('id', this.data.ln);\n }\n };\n\n function HybridRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([BaseRenderer], HybridRendererBase);\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n HybridRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newDOMElement = element.getBaseElement();\n\n if (!newDOMElement) {\n return;\n }\n\n var layer = this.layers[pos];\n\n if (!layer.ddd || !this.supports3d) {\n if (this.threeDElements) {\n this.addTo3dContainer(newDOMElement, pos);\n } else {\n var i = 0;\n var nextDOMElement;\n var nextLayer;\n var tmpDOMElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n nextLayer = this.elements[i];\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n nextDOMElement = tmpDOMElement || nextDOMElement;\n }\n\n i += 1;\n }\n\n if (nextDOMElement) {\n if (!layer.ddd || !this.supports3d) {\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\n }\n } else if (!layer.ddd || !this.supports3d) {\n this.layerElement.appendChild(newDOMElement);\n }\n }\n } else {\n this.addTo3dContainer(newDOMElement, pos);\n }\n };\n\n HybridRendererBase.prototype.createShape = function (data) {\n if (!this.supports3d) {\n return new SVGShapeElement(data, this.globalData, this);\n }\n\n return new HShapeElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createText = function (data) {\n if (!this.supports3d) {\n return new SVGTextLottieElement(data, this.globalData, this);\n }\n\n return new HTextElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createCamera = function (data) {\n this.camera = new HCameraElement(data, this.globalData, this);\n return this.camera;\n };\n\n HybridRendererBase.prototype.createImage = function (data) {\n if (!this.supports3d) {\n return new IImageElement(data, this.globalData, this);\n }\n\n return new HImageElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createSolid = function (data) {\n if (!this.supports3d) {\n return new ISolidElement(data, this.globalData, this);\n }\n\n return new HSolidElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n return this.threeDElements[i].perspectiveElem;\n }\n\n i += 1;\n }\n\n return null;\n };\n\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n var perspectiveElem = createTag('div');\n var style;\n var containerStyle;\n styleDiv(perspectiveElem);\n var container = createTag('div');\n styleDiv(container);\n\n if (type === '3d') {\n style = perspectiveElem.style;\n style.width = this.globalData.compSize.w + 'px';\n style.height = this.globalData.compSize.h + 'px';\n var center = '50% 50%';\n style.webkitTransformOrigin = center;\n style.mozTransformOrigin = center;\n style.transformOrigin = center;\n containerStyle = container.style;\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n containerStyle.transform = matrix;\n containerStyle.webkitTransform = matrix;\n }\n\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n var threeDContainerData = {\n container: container,\n perspectiveElem: perspectiveElem,\n startPos: pos,\n endPos: pos,\n type: type\n };\n this.threeDElements.push(threeDContainerData);\n return threeDContainerData;\n };\n\n HybridRendererBase.prototype.build3dContainers = function () {\n var i;\n var len = this.layers.length;\n var lastThreeDContainerData;\n var currentContainer = '';\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\n if (currentContainer !== '3d') {\n currentContainer = '3d';\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n } else {\n if (currentContainer !== '2d') {\n currentContainer = '2d';\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n }\n }\n\n len = this.threeDElements.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n }\n };\n\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (pos <= this.threeDElements[i].endPos) {\n var j = this.threeDElements[i].startPos;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.threeDElements[i].container.insertBefore(elem, nextElement);\n } else {\n this.threeDElements[i].container.appendChild(elem);\n }\n\n break;\n }\n\n i += 1;\n }\n };\n\n HybridRendererBase.prototype.configAnimation = function (animData) {\n var resizerElem = createTag('div');\n var wrapper = this.animationItem.wrapper;\n var style = resizerElem.style;\n style.width = animData.w + 'px';\n style.height = animData.h + 'px';\n this.resizerElem = resizerElem;\n styleDiv(resizerElem);\n style.transformStyle = 'flat';\n style.mozTransformStyle = 'flat';\n style.webkitTransformStyle = 'flat';\n\n if (this.renderConfig.className) {\n resizerElem.setAttribute('class', this.renderConfig.className);\n }\n\n wrapper.appendChild(resizerElem);\n style.overflow = 'hidden';\n var svg = createNS('svg');\n svg.setAttribute('width', '1');\n svg.setAttribute('height', '1');\n styleDiv(svg);\n this.resizerElem.appendChild(svg);\n var defs = createNS('defs');\n svg.appendChild(defs);\n this.data = animData; // Mask animation\n\n this.setupGlobalData(animData, svg);\n this.globalData.defs = defs;\n this.layers = animData.layers;\n this.layerElement = this.resizerElem;\n this.build3dContainers();\n this.updateContainerSize();\n };\n\n HybridRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.animationItem.container = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n HybridRendererBase.prototype.updateContainerSize = function () {\n var elementWidth = this.animationItem.wrapper.offsetWidth;\n var elementHeight = this.animationItem.wrapper.offsetHeight;\n var elementRel = elementWidth / elementHeight;\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n var sx;\n var sy;\n var tx;\n var ty;\n\n if (animationRel > elementRel) {\n sx = elementWidth / this.globalData.compSize.w;\n sy = elementWidth / this.globalData.compSize.w;\n tx = 0;\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\n } else {\n sx = elementHeight / this.globalData.compSize.h;\n sy = elementHeight / this.globalData.compSize.h;\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n ty = 0;\n }\n\n var style = this.resizerElem.style;\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n style.transform = style.webkitTransform;\n };\n\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n HybridRendererBase.prototype.hide = function () {\n this.resizerElem.style.display = 'none';\n };\n\n HybridRendererBase.prototype.show = function () {\n this.resizerElem.style.display = 'block';\n };\n\n HybridRendererBase.prototype.initItems = function () {\n this.buildAllItems();\n\n if (this.camera) {\n this.camera.setup();\n } else {\n var cWidth = this.globalData.compSize.w;\n var cHeight = this.globalData.compSize.h;\n var i;\n var len = this.threeDElements.length;\n\n for (i = 0; i < len; i += 1) {\n var style = this.threeDElements[i].perspectiveElem.style;\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n style.perspective = style.webkitPerspective;\n }\n }\n };\n\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n var floatingContainer = createTag('div');\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n function HCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = !data.hasMask;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n HCompElement.prototype.createContainerElements = function () {\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n if (this.data.hasMask) {\n this.svgElement.setAttribute('width', this.data.w);\n this.svgElement.setAttribute('height', this.data.h);\n this.transformedElement = this.baseElement;\n } else {\n this.transformedElement = this.layerElement;\n }\n };\n\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n var j = 0;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(elem, nextElement);\n } else {\n this.layerElement.appendChild(elem);\n }\n };\n\n HCompElement.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n function HybridRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n },\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([HybridRendererBase], HybridRenderer);\n\n HybridRenderer.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n var CompExpressionInterface = function () {\n return function (comp) {\n function _thisLayerFunction(name) {\n var i = 0;\n var len = comp.layers.length;\n\n while (i < len) {\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n return comp.elements[i].layerInterface;\n }\n\n i += 1;\n }\n\n return null; // return {active:false};\n }\n\n Object.defineProperty(_thisLayerFunction, '_name', {\n value: comp.data.nm\n });\n _thisLayerFunction.layer = _thisLayerFunction;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n _thisLayerFunction.displayStartTime = 0;\n _thisLayerFunction.numLayers = comp.layers.length;\n return _thisLayerFunction;\n };\n }();\n\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); }\n\n /* eslint-disable */\n\n /*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\n function seedRandom(pool, math) {\n //\n // The following constants are related to IEEE 754 limits.\n //\n var global = this,\n width = 256,\n // each RC4 output is 0 <= x < 256\n chunks = 6,\n // at least six RC4 outputs for each double\n digits = 52,\n // there are 52 significant digits in a double\n rngname = 'random',\n // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n //\n // seedrandom()\n // This is the seedrandom function described above.\n //\n\n function seedrandom(seed, options, callback) {\n var key = [];\n options = options === true ? {\n entropy: true\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n\n var prng = function prng() {\n var n = arc4.g(chunks),\n // Start with a numerator n < 2 ^ 48\n d = startdenom,\n // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n\n while (n < significance) {\n // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n\n d *= width; // denominator and generating a\n\n x = arc4.g(1); // new least-significant-byte.\n }\n\n while (n >= overflow) {\n // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n\n d /= 2; // right using integer math until\n\n x >>>= 1; // we have exactly the desired bits.\n }\n\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function () {\n return arc4.g(4) | 0;\n };\n\n prng.quick = function () {\n return arc4.g(4) / 0x100000000;\n };\n\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\n\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) {\n copy(state, arc4);\n } // Only provide the .state method if requested via options.state.\n\n\n prng.state = function () {\n return copy(arc4, {});\n };\n } // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n if (is_math_call) {\n math[rngname] = prng;\n return seed;\n } // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\n }\n\n math['seed' + rngname] = seedrandom; //\n // ARC4\n //\n // An ARC4 implementation. The constructor takes a key in the form of\n // an array of at most (width) integers that should be 0 <= x < (width).\n //\n // The g(count) method returns a pseudorandom integer that concatenates\n // the next (count) outputs from ARC4. Its return value is a number x\n // that is in the range 0 <= x < (width ^ count).\n //\n\n function ARC4(key) {\n var t,\n keylen = key.length,\n me = this,\n i = 0,\n j = me.i = me.j = 0,\n s = me.S = []; // The empty key [] is treated as [0].\n\n if (!keylen) {\n key = [keylen++];\n } // Set up S using the standard key scheduling algorithm.\n\n\n while (i < width) {\n s[i] = i++;\n }\n\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n s[j] = t;\n } // The \"g\" method returns the next (count) outputs as one number.\n\n\n me.g = function (count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t,\n r = 0,\n i = me.i,\n j = me.j,\n s = me.S;\n\n while (count--) {\n t = s[i = mask & i + 1];\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n }\n\n me.i = i;\n me.j = j;\n return r; // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n };\n } //\n // copy()\n // Copies internal state of ARC4 to or from a plain object.\n //\n\n\n function copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n } //\n // flatten()\n // Converts an object tree to nested arrays of strings.\n //\n\n\n function flatten(obj, depth) {\n var result = [],\n typ = _typeof$2(obj),\n prop;\n\n if (depth && typ == 'object') {\n for (prop in obj) {\n try {\n result.push(flatten(obj[prop], depth - 1));\n } catch (e) {}\n }\n }\n\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\n } //\n // mixkey()\n // Mixes a string seed into a key that is an array of integers, and\n // returns a shortened string seed that is equivalent to the result key.\n //\n\n\n function mixkey(seed, key) {\n var stringseed = seed + '',\n smear,\n j = 0;\n\n while (j < stringseed.length) {\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n }\n\n return tostring(key);\n } //\n // autoseed()\n // Returns an object for autoseeding, using window.crypto and Node crypto\n // module if available.\n //\n\n\n function autoseed() {\n try {\n if (nodecrypto) {\n return tostring(nodecrypto.randomBytes(width));\n }\n\n var out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\n }\n } //\n // tostring()\n // Converts an array of charcodes to a string\n //\n\n\n function tostring(a) {\n return String.fromCharCode.apply(0, a);\n } //\n // When seedrandom.js is loaded, we immediately mix a few bits\n // from the built-in RNG into the entropy pool. Because we do\n // not want to interfere with deterministic PRNG state later,\n // seedrandom will not call math.random on its own again after\n // initialization.\n //\n\n\n mixkey(math.random(), pool); //\n // Nodejs and AMD support: export the implementation as a module using\n // either convention.\n //\n // End anonymous scope, and pass initial values.\n }\n\n ;\n\n function initialize$2(BMMath) {\n seedRandom([], BMMath);\n }\n\n var propTypes = {\n SHAPE: 'shape'\n };\n\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); }\n\n var ExpressionManager = function () {\n 'use strict';\n\n var ob = {};\n var Math = BMMath;\n var window = null;\n var document = null;\n var XMLHttpRequest = null;\n var fetch = null;\n var frames = null;\n var _lottieGlobal = {};\n initialize$2(BMMath);\n\n function resetFrame() {\n _lottieGlobal = {};\n }\n\n function $bm_isInstanceOfArray(arr) {\n return arr.constructor === Array || arr.constructor === Float32Array;\n }\n\n function isNumerable(tOfV, v) {\n return tOfV === 'number' || v instanceof Number || tOfV === 'boolean' || tOfV === 'string';\n }\n\n function $bm_neg(a) {\n var tOfA = _typeof$1(a);\n\n if (tOfA === 'number' || a instanceof Number || tOfA === 'boolean') {\n return -a;\n }\n\n if ($bm_isInstanceOfArray(a)) {\n var i;\n var lenA = a.length;\n var retArr = [];\n\n for (i = 0; i < lenA; i += 1) {\n retArr[i] = -a[i];\n }\n\n return retArr;\n }\n\n if (a.propType) {\n return a.v;\n }\n\n return -a;\n }\n\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n\n function sum(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b) || tOfA === 'string' || tOfB === 'string') {\n return a + b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] += b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a + b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] + b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n var add = sum;\n\n function sub(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n if (tOfA === 'string') {\n a = parseInt(a, 10);\n }\n\n if (tOfB === 'string') {\n b = parseInt(b, 10);\n }\n\n return a - b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] -= b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a - b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] - b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n function mul(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a * b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] * b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a * b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function div(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a / b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] / b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a / b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function mod(a, b) {\n if (typeof a === 'string') {\n a = parseInt(a, 10);\n }\n\n if (typeof b === 'string') {\n b = parseInt(b, 10);\n }\n\n return a % b;\n }\n\n var $bm_sum = sum;\n var $bm_sub = sub;\n var $bm_mul = mul;\n var $bm_div = div;\n var $bm_mod = mod;\n\n function clamp(num, min, max) {\n if (min > max) {\n var mm = max;\n max = min;\n min = mm;\n }\n\n return Math.min(Math.max(num, min), max);\n }\n\n function radiansToDegrees(val) {\n return val / degToRads;\n }\n\n var radians_to_degrees = radiansToDegrees;\n\n function degreesToRadians(val) {\n return val * degToRads;\n }\n\n var degrees_to_radians = radiansToDegrees;\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n function length(arr1, arr2) {\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\n arr2 = arr2 || 0;\n return Math.abs(arr1 - arr2);\n }\n\n if (!arr2) {\n arr2 = helperLengthArray;\n }\n\n var i;\n var len = Math.min(arr1.length, arr2.length);\n var addedLength = 0;\n\n for (i = 0; i < len; i += 1) {\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\n }\n\n return Math.sqrt(addedLength);\n }\n\n function normalize(vec) {\n return div(vec, length(vec));\n }\n\n function rgbToHsl(val) {\n var r = val[0];\n var g = val[1];\n var b = val[2];\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n\n if (max === min) {\n h = 0; // achromatic\n\n s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return [h, s, l, val[3]];\n }\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n function hslToRgb(val) {\n var h = val[0];\n var s = val[1];\n var l = val[2];\n var r;\n var g;\n var b;\n\n if (s === 0) {\n r = l; // achromatic\n\n b = l; // achromatic\n\n g = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [r, g, b, val[3]];\n }\n\n function linear(t, tMin, tMax, value1, value2) {\n if (value1 === undefined || value2 === undefined) {\n value1 = tMin;\n value2 = tMax;\n tMin = 0;\n tMax = 1;\n }\n\n if (tMax < tMin) {\n var _tMin = tMax;\n tMax = tMin;\n tMin = _tMin;\n }\n\n if (t <= tMin) {\n return value1;\n }\n\n if (t >= tMax) {\n return value2;\n }\n\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n if (!value1.length) {\n return value1 + (value2 - value1) * perc;\n }\n\n var i;\n var len = value1.length;\n var arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n }\n\n return arr;\n }\n\n function random(min, max) {\n if (max === undefined) {\n if (min === undefined) {\n min = 0;\n max = 1;\n } else {\n max = min;\n min = undefined;\n }\n }\n\n if (max.length) {\n var i;\n var len = max.length;\n\n if (!min) {\n min = createTypedArray('float32', len);\n }\n\n var arr = createTypedArray('float32', len);\n var rnd = BMMath.random();\n\n for (i = 0; i < len; i += 1) {\n arr[i] = min[i] + rnd * (max[i] - min[i]);\n }\n\n return arr;\n }\n\n if (min === undefined) {\n min = 0;\n }\n\n var rndm = BMMath.random();\n return min + rndm * (max - min);\n }\n\n function createPath(points, inTangents, outTangents, closed) {\n var i;\n var len = points.length;\n var path = shapePool.newElement();\n path.setPathData(!!closed, len);\n var arrPlaceholder = [0, 0];\n var inVertexPoint;\n var outVertexPoint;\n\n for (i = 0; i < len; i += 1) {\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n }\n\n return path;\n }\n\n function initiateExpression(elem, data, property) {\n // Bail out if we don't want expressions\n function noOp(_value) {\n return _value;\n }\n\n if (!elem.globalData.renderConfig.runExpressions) {\n return noOp;\n }\n\n var val = data.x;\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n var _needsRandom = val.indexOf('random') !== -1;\n\n var elemType = elem.data.ty;\n var transform;\n var $bm_transform;\n var content;\n var effect;\n var thisProperty = property;\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\n Object.defineProperty(thisProperty, 'value', {\n get: function get() {\n return thisProperty.v;\n }\n });\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n elem.comp.displayStartTime = 0;\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n var width = elem.data.sw ? elem.data.sw : 0;\n var height = elem.data.sh ? elem.data.sh : 0;\n var name = elem.data.nm;\n var loopIn;\n var loop_in;\n var loopOut;\n var loop_out;\n var smooth;\n var toWorld;\n var fromWorld;\n var fromComp;\n var toComp;\n var fromCompToSurface;\n var position;\n var rotation;\n var anchorPoint;\n var scale;\n var thisLayer;\n var thisComp;\n var mask;\n var valueAtTime;\n var velocityAtTime;\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\n var numKeys = property.kf ? data.k.length : 0;\n var active = !this.data || this.data.hd !== true;\n\n var wiggle = function wiggle(freq, amp) {\n var iWiggle;\n var j;\n var lenWiggle = this.pv.length ? this.pv.length : 1;\n var addedAmps = createTypedArray('float32', lenWiggle);\n freq = 5;\n var iterations = Math.floor(time * freq);\n iWiggle = 0;\n j = 0;\n\n while (iWiggle < iterations) {\n // var rnd = BMMath.random();\n for (j = 0; j < lenWiggle; j += 1) {\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n }\n\n iWiggle += 1;\n } // var rnd2 = BMMath.random();\n\n\n var periods = time * freq;\n var perc = periods - Math.floor(periods);\n var arr = createTypedArray('float32', lenWiggle);\n\n if (lenWiggle > 1) {\n for (j = 0; j < lenWiggle; j += 1) {\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n }\n\n return arr;\n }\n\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n }.bind(this);\n\n if (thisProperty.loopIn) {\n loopIn = thisProperty.loopIn.bind(thisProperty);\n loop_in = loopIn;\n }\n\n if (thisProperty.loopOut) {\n loopOut = thisProperty.loopOut.bind(thisProperty);\n loop_out = loopOut;\n }\n\n if (thisProperty.smooth) {\n smooth = thisProperty.smooth.bind(thisProperty);\n }\n\n function loopInDuration(type, duration) {\n return loopIn(type, duration, true);\n }\n\n function loopOutDuration(type, duration) {\n return loopOut(type, duration, true);\n }\n\n if (this.getValueAtTime) {\n valueAtTime = this.getValueAtTime.bind(this);\n }\n\n if (this.getVelocityAtTime) {\n velocityAtTime = this.getVelocityAtTime.bind(this);\n }\n\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n function lookAt(elem1, elem2) {\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n return [yaw, pitch, 0];\n }\n\n function easeOut(t, tMin, tMax, val1, val2) {\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n }\n\n function easeIn(t, tMin, tMax, val1, val2) {\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n }\n\n function ease(t, tMin, tMax, val1, val2) {\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n }\n\n function applyEase(fn, t, tMin, tMax, val1, val2) {\n if (val1 === undefined) {\n val1 = tMin;\n val2 = tMax;\n } else {\n t = (t - tMin) / (tMax - tMin);\n }\n\n if (t > 1) {\n t = 1;\n } else if (t < 0) {\n t = 0;\n }\n\n var mult = fn(t);\n\n if ($bm_isInstanceOfArray(val1)) {\n var iKey;\n var lenKey = val1.length;\n var arr = createTypedArray('float32', lenKey);\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n }\n\n return arr;\n }\n\n return (val2 - val1) * mult + val1;\n }\n\n function nearestKey(time) {\n var iKey;\n var lenKey = data.k.length;\n var index;\n var keyTime;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n index = 0;\n keyTime = 0;\n } else {\n index = -1;\n time *= elem.comp.globalData.frameRate;\n\n if (time < data.k[0].t) {\n index = 1;\n keyTime = data.k[0].t;\n } else {\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n if (time === data.k[iKey].t) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n break;\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n index = iKey + 2;\n keyTime = data.k[iKey + 1].t;\n } else {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n\n break;\n }\n }\n\n if (index === -1) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n }\n }\n\n var obKey = {};\n obKey.index = index;\n obKey.time = keyTime / elem.comp.globalData.frameRate;\n return obKey;\n }\n\n function key(ind) {\n var obKey;\n var iKey;\n var lenKey;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n throw new Error('The property has no keyframe at index ' + ind);\n }\n\n ind -= 1;\n obKey = {\n time: data.k[ind].t / elem.comp.globalData.frameRate,\n value: []\n };\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n lenKey = arr.length;\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n obKey[iKey] = arr[iKey];\n obKey.value[iKey] = arr[iKey];\n }\n\n return obKey;\n }\n\n function framesToTime(fr, fps) {\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return fr / fps;\n }\n\n function timeToFrames(t, fps) {\n if (!t && t !== 0) {\n t = time;\n }\n\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return t * fps;\n }\n\n function seedRandom(seed) {\n BMMath.seedrandom(randSeed + seed);\n }\n\n function sourceRectAtTime() {\n return elem.sourceRectAtTime();\n }\n\n function substring(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substring(init);\n }\n\n return value.substring(init, end);\n }\n\n return '';\n }\n\n function substr(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substr(init);\n }\n\n return value.substr(init, end);\n }\n\n return '';\n }\n\n function posterizeTime(framesPerSecond) {\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n value = valueAtTime(time);\n }\n\n var time;\n var velocity;\n var value;\n var text;\n var textIndex;\n var textTotal;\n var selectorValue;\n var index = elem.data.ind;\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n var parent;\n var randSeed = Math.floor(Math.random() * 1000000);\n var globalData = elem.globalData;\n\n function executeExpression(_value) {\n // globalData.pushExpression();\n value = _value;\n\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n return value;\n }\n\n if (this.propType === 'textSelector') {\n textIndex = this.textIndex;\n textTotal = this.textTotal;\n selectorValue = this.selectorValue;\n }\n\n if (!thisLayer) {\n text = elem.layerInterface.text;\n thisLayer = elem.layerInterface;\n thisComp = elem.comp.compInterface;\n toWorld = thisLayer.toWorld.bind(thisLayer);\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\n fromComp = thisLayer.fromComp.bind(thisLayer);\n toComp = thisLayer.toComp.bind(thisLayer);\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n fromCompToSurface = fromComp;\n }\n\n if (!transform) {\n transform = elem.layerInterface('ADBE Transform Group');\n $bm_transform = transform;\n\n if (transform) {\n anchorPoint = transform.anchorPoint;\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\n }\n }\n\n if (elemType === 4 && !content) {\n content = thisLayer('ADBE Root Vectors Group');\n }\n\n if (!effect) {\n effect = thisLayer(4);\n }\n\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n if (hasParent && !parent) {\n parent = elem.hierarchy[0].layerInterface;\n }\n\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\n if (_needsRandom) {\n seedRandom(randSeed + time);\n }\n\n if (needsVelocity) {\n velocity = velocityAtTime(time);\n }\n\n expression_function();\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n // Changed this to a ternary operation because Rollup failed compiling it correctly\n\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\n return scoped_bm_rt;\n } // Bundlers will see these as dead code and unless we reference them\n\n\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];\n return executeExpression;\n }\n\n ob.initiateExpression = initiateExpression;\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, _lottieGlobal];\n ob.resetFrame = resetFrame;\n return ob;\n }();\n\n var Expressions = function () {\n var ob = {};\n ob.initExpressions = initExpressions;\n ob.resetFrame = ExpressionManager.resetFrame;\n\n function initExpressions(animation) {\n var stackCount = 0;\n var registers = [];\n\n function pushExpression() {\n stackCount += 1;\n }\n\n function popExpression() {\n stackCount -= 1;\n\n if (stackCount === 0) {\n releaseInstances();\n }\n }\n\n function registerExpressionProperty(expression) {\n if (registers.indexOf(expression) === -1) {\n registers.push(expression);\n }\n }\n\n function releaseInstances() {\n var i;\n var len = registers.length;\n\n for (i = 0; i < len; i += 1) {\n registers[i].release();\n }\n\n registers.length = 0;\n }\n\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n animation.renderer.globalData.pushExpression = pushExpression;\n animation.renderer.globalData.popExpression = popExpression;\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n }\n\n return ob;\n }();\n\n var MaskManagerInterface = function () {\n function MaskInterface(mask, data) {\n this._mask = mask;\n this._data = data;\n }\n\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n get: function get() {\n if (this._mask.prop.k) {\n this._mask.prop.getValue();\n }\n\n return this._mask.prop;\n }\n });\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n get: function get() {\n if (this._mask.op.k) {\n this._mask.op.getValue();\n }\n\n return this._mask.op.v * 100;\n }\n });\n\n var MaskManager = function MaskManager(maskManager) {\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n var i;\n var len = maskManager.viewData.length;\n\n for (i = 0; i < len; i += 1) {\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n }\n\n var maskFunction = function maskFunction(name) {\n i = 0;\n\n while (i < len) {\n if (maskManager.masksProperties[i].nm === name) {\n return _masksInterfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n return maskFunction;\n };\n\n return MaskManager;\n }();\n\n var ExpressionPropertyInterface = function () {\n var defaultUnidimensionalValue = {\n pv: 0,\n v: 0,\n mult: 1\n };\n var defaultMultidimensionalValue = {\n pv: [0, 0, 0],\n v: [0, 0, 0],\n mult: 1\n };\n\n function completeProperty(expressionValue, property, type) {\n Object.defineProperty(expressionValue, 'velocity', {\n get: function get() {\n return property.getVelocityAtTime(property.comp.currentFrame);\n }\n });\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n expressionValue.key = function (pos) {\n if (!expressionValue.numKeys) {\n return 0;\n }\n\n var value = '';\n\n if ('s' in property.keyframes[pos - 1]) {\n value = property.keyframes[pos - 1].s;\n } else if ('e' in property.keyframes[pos - 2]) {\n value = property.keyframes[pos - 2].e;\n } else {\n value = property.keyframes[pos - 2].s;\n }\n\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n valueProp.value = type === 'unidimensional' ? value[0] : value;\n return valueProp;\n };\n\n expressionValue.valueAtTime = property.getValueAtTime;\n expressionValue.speedAtTime = property.getSpeedAtTime;\n expressionValue.velocityAtTime = property.getVelocityAtTime;\n expressionValue.propertyGroup = property.propertyGroup;\n }\n\n function UnidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultUnidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var val = property.pv * mult;\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n val = property.v * mult;\n\n if (expressionValue.value !== val) {\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n }\n\n return expressionValue;\n };\n }\n\n function MultidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultMultidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var len = property.data && property.data.l || property.pv.length;\n var expressionValue = createTypedArray('float32', len);\n var arrValue = createTypedArray('float32', len);\n expressionValue.value = arrValue;\n completeProperty(expressionValue, property, 'multidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n for (var i = 0; i < len; i += 1) {\n arrValue[i] = property.v[i] * mult;\n expressionValue[i] = arrValue[i];\n }\n\n return expressionValue;\n };\n } // TODO: try to avoid using this getter\n\n\n function defaultGetter() {\n return defaultUnidimensionalValue;\n }\n\n return function (property) {\n if (!property) {\n return defaultGetter;\n }\n\n if (property.propType === 'unidimensional') {\n return UnidimensionalPropertyInterface(property);\n }\n\n return MultidimensionalPropertyInterface(property);\n };\n }();\n\n var TransformExpressionInterface = function () {\n return function (transform) {\n function _thisFunction(name) {\n switch (name) {\n case 'scale':\n case 'Scale':\n case 'ADBE Scale':\n case 6:\n return _thisFunction.scale;\n\n case 'rotation':\n case 'Rotation':\n case 'ADBE Rotation':\n case 'ADBE Rotate Z':\n case 10:\n return _thisFunction.rotation;\n\n case 'ADBE Rotate X':\n return _thisFunction.xRotation;\n\n case 'ADBE Rotate Y':\n return _thisFunction.yRotation;\n\n case 'position':\n case 'Position':\n case 'ADBE Position':\n case 2:\n return _thisFunction.position;\n\n case 'ADBE Position_0':\n return _thisFunction.xPosition;\n\n case 'ADBE Position_1':\n return _thisFunction.yPosition;\n\n case 'ADBE Position_2':\n return _thisFunction.zPosition;\n\n case 'anchorPoint':\n case 'AnchorPoint':\n case 'Anchor Point':\n case 'ADBE AnchorPoint':\n case 1:\n return _thisFunction.anchorPoint;\n\n case 'opacity':\n case 'Opacity':\n case 11:\n return _thisFunction.opacity;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisFunction, 'rotation', {\n get: ExpressionPropertyInterface(transform.r || transform.rz)\n });\n Object.defineProperty(_thisFunction, 'zRotation', {\n get: ExpressionPropertyInterface(transform.rz || transform.r)\n });\n Object.defineProperty(_thisFunction, 'xRotation', {\n get: ExpressionPropertyInterface(transform.rx)\n });\n Object.defineProperty(_thisFunction, 'yRotation', {\n get: ExpressionPropertyInterface(transform.ry)\n });\n Object.defineProperty(_thisFunction, 'scale', {\n get: ExpressionPropertyInterface(transform.s)\n });\n\n var _px;\n\n var _py;\n\n var _pz;\n\n var _transformFactory;\n\n if (transform.p) {\n _transformFactory = ExpressionPropertyInterface(transform.p);\n } else {\n _px = ExpressionPropertyInterface(transform.px);\n _py = ExpressionPropertyInterface(transform.py);\n\n if (transform.pz) {\n _pz = ExpressionPropertyInterface(transform.pz);\n }\n }\n\n Object.defineProperty(_thisFunction, 'position', {\n get: function get() {\n if (transform.p) {\n return _transformFactory();\n }\n\n return [_px(), _py(), _pz ? _pz() : 0];\n }\n });\n Object.defineProperty(_thisFunction, 'xPosition', {\n get: ExpressionPropertyInterface(transform.px)\n });\n Object.defineProperty(_thisFunction, 'yPosition', {\n get: ExpressionPropertyInterface(transform.py)\n });\n Object.defineProperty(_thisFunction, 'zPosition', {\n get: ExpressionPropertyInterface(transform.pz)\n });\n Object.defineProperty(_thisFunction, 'anchorPoint', {\n get: ExpressionPropertyInterface(transform.a)\n });\n Object.defineProperty(_thisFunction, 'opacity', {\n get: ExpressionPropertyInterface(transform.o)\n });\n Object.defineProperty(_thisFunction, 'skew', {\n get: ExpressionPropertyInterface(transform.sk)\n });\n Object.defineProperty(_thisFunction, 'skewAxis', {\n get: ExpressionPropertyInterface(transform.sa)\n });\n Object.defineProperty(_thisFunction, 'orientation', {\n get: ExpressionPropertyInterface(transform.or)\n });\n return _thisFunction;\n };\n }();\n\n var LayerExpressionInterface = function () {\n function getMatrix(time) {\n var toWorldMat = new Matrix();\n\n if (time !== undefined) {\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\n propMatrix.clone(toWorldMat);\n } else {\n var transformMat = this._elem.finalTransform.mProp;\n transformMat.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat;\n }\n\n function toWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.applyPoint(toWorldMat, arr);\n }\n\n function toWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.applyPoint(toWorldMat, arr);\n }\n\n function fromWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.invertPoint(toWorldMat, arr);\n }\n\n function fromWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.invertPoint(toWorldMat, arr);\n }\n\n function applyPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n }\n\n function invertPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.inversePoint(arr);\n }\n\n function fromComp(arr) {\n var toWorldMat = new Matrix();\n toWorldMat.reset();\n\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n function sampleImage() {\n return [1, 1, 1, 1];\n }\n\n return function (elem) {\n var transformInterface;\n\n function _registerMaskInterface(maskManager) {\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n }\n\n function _registerEffectsInterface(effects) {\n _thisLayerFunction.effect = effects;\n }\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Root Vectors Group':\n case 'Contents':\n case 2:\n return _thisLayerFunction.shapeInterface;\n\n case 1:\n case 6:\n case 'Transform':\n case 'transform':\n case 'ADBE Transform Group':\n return transformInterface;\n\n case 4:\n case 'ADBE Effect Parade':\n case 'effects':\n case 'Effects':\n return _thisLayerFunction.effect;\n\n case 'ADBE Text Properties':\n return _thisLayerFunction.textInterface;\n\n default:\n return null;\n }\n }\n\n _thisLayerFunction.getMatrix = getMatrix;\n _thisLayerFunction.invertPoint = invertPoint;\n _thisLayerFunction.applyPoint = applyPoint;\n _thisLayerFunction.toWorld = toWorld;\n _thisLayerFunction.toWorldVec = toWorldVec;\n _thisLayerFunction.fromWorld = fromWorld;\n _thisLayerFunction.fromWorldVec = fromWorldVec;\n _thisLayerFunction.toComp = toWorld;\n _thisLayerFunction.fromComp = fromComp;\n _thisLayerFunction.sampleImage = sampleImage;\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n _thisLayerFunction._elem = elem;\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n Object.defineProperties(_thisLayerFunction, {\n hasParent: {\n get: function get() {\n return elem.hierarchy.length;\n }\n },\n parent: {\n get: function get() {\n return elem.hierarchy[0].layerInterface;\n }\n },\n rotation: getDescriptor(transformInterface, 'rotation'),\n scale: getDescriptor(transformInterface, 'scale'),\n position: getDescriptor(transformInterface, 'position'),\n opacity: getDescriptor(transformInterface, 'opacity'),\n anchorPoint: anchorPointDescriptor,\n anchor_point: anchorPointDescriptor,\n transform: {\n get: function get() {\n return transformInterface;\n }\n },\n active: {\n get: function get() {\n return elem.isInRange;\n }\n }\n });\n _thisLayerFunction.startTime = elem.data.st;\n _thisLayerFunction.index = elem.data.ind;\n _thisLayerFunction.source = elem.data.refId;\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n _thisLayerFunction._name = elem.data.nm;\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n return _thisLayerFunction;\n };\n }();\n\n var propertyGroupFactory = function () {\n return function (interfaceFunction, parentPropertyGroup) {\n return function (val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return parentPropertyGroup(val - 1);\n };\n };\n }();\n\n var PropertyInterface = function () {\n return function (propertyName, propertyGroup) {\n var interfaceFunction = {\n _name: propertyName\n };\n\n function _propertyGroup(val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return propertyGroup(val - 1);\n }\n\n return _propertyGroup;\n };\n }();\n\n var EffectsExpressionInterface = function () {\n var ob = {\n createEffectsInterface: createEffectsInterface\n };\n\n function createEffectsInterface(elem, propertyGroup) {\n if (elem.effectsManager) {\n var effectElements = [];\n var effectsData = elem.data.ef;\n var i;\n var len = elem.effectsManager.effectElements.length;\n\n for (i = 0; i < len; i += 1) {\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n }\n\n var effects = elem.data.ef || [];\n\n var groupInterface = function groupInterface(name) {\n i = 0;\n len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n return effectElements[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n Object.defineProperty(groupInterface, 'numProperties', {\n get: function get() {\n return effects.length;\n }\n });\n return groupInterface;\n }\n\n return null;\n }\n\n function createGroupInterface(data, elements, propertyGroup, elem) {\n function groupInterface(name) {\n var effects = data.ef;\n var i = 0;\n var len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n if (effects[i].ty === 5) {\n return effectElements[i];\n }\n\n return effectElements[i]();\n }\n\n i += 1;\n }\n\n throw new Error();\n }\n\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n var effectElements = [];\n var i;\n var len = data.ef.length;\n\n for (i = 0; i < len; i += 1) {\n if (data.ef[i].ty === 5) {\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n } else {\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n }\n }\n\n if (data.mn === 'ADBE Color Control') {\n Object.defineProperty(groupInterface, 'color', {\n get: function get() {\n return effectElements[0]();\n }\n });\n }\n\n Object.defineProperties(groupInterface, {\n numProperties: {\n get: function get() {\n return data.np;\n }\n },\n _name: {\n value: data.nm\n },\n propertyGroup: {\n value: _propertyGroup\n }\n });\n groupInterface.enabled = data.en !== 0;\n groupInterface.active = groupInterface.enabled;\n return groupInterface;\n }\n\n function createValueInterface(element, type, elem, propertyGroup) {\n var expressionProperty = ExpressionPropertyInterface(element.p);\n\n function interfaceFunction() {\n if (type === 10) {\n return elem.comp.compInterface(element.p.v);\n }\n\n return expressionProperty();\n }\n\n if (element.p.setGroupProperty) {\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n }\n\n return interfaceFunction;\n }\n\n return ob;\n }();\n\n var ShapePathInterface = function () {\n return function pathInterfaceFactory(shape, view, propertyGroup) {\n var prop = view.sh;\n\n function interfaceFunction(val) {\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n return interfaceFunction.path;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n path: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n shape: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n _name: {\n value: shape.nm\n },\n ix: {\n value: shape.ix\n },\n propertyIndex: {\n value: shape.ix\n },\n mn: {\n value: shape.mn\n },\n propertyGroup: {\n value: propertyGroup\n }\n });\n return interfaceFunction;\n };\n }();\n\n var ShapeExpressionInterface = function () {\n function iterateElements(shapes, view, propertyGroup) {\n var arr = [];\n var i;\n var len = shapes ? shapes.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'fl') {\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'st') {\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tm') {\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n } else if (shapes[i].ty === 'el') {\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sr') {\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sh') {\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rc') {\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rd') {\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rp') {\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'gf') {\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else {\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n }\n }\n\n return arr;\n }\n\n function contentsInterfaceFactory(shape, view, propertyGroup) {\n var interfaces;\n\n var interfaceFunction = function _interfaceFunction(value) {\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n if (typeof value === 'number') {\n return interfaces[value - 1];\n }\n\n return null;\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n interfaceFunction.numProperties = interfaces.length;\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.transform = transformInterface;\n interfaceFunction.propertyIndex = shape.cix;\n interfaceFunction._name = shape.nm;\n return interfaceFunction;\n }\n\n function groupInterfaceFactory(shape, view, propertyGroup) {\n var interfaceFunction = function _interfaceFunction(value) {\n switch (value) {\n case 'ADBE Vectors Group':\n case 'Contents':\n case 2:\n return interfaceFunction.content;\n // Not necessary for now. Keeping them here in case a new case appears\n // case 'ADBE Vector Transform Group':\n // case 3:\n\n default:\n return interfaceFunction.transform;\n }\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.content = content;\n interfaceFunction.transform = transformInterface;\n Object.defineProperty(interfaceFunction, '_name', {\n get: function get() {\n return shape.nm;\n }\n }); // interfaceFunction.content = interfaceFunction;\n\n interfaceFunction.numProperties = shape.np;\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.nm = shape.nm;\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function fillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Start Point' || val === 'start point') {\n return interfaceFunction.startPoint;\n }\n\n if (val === 'End Point' || val === 'end point') {\n return interfaceFunction.endPoint;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n startPoint: {\n get: ExpressionPropertyInterface(view.s)\n },\n endPoint: {\n get: ExpressionPropertyInterface(view.e)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n type: {\n get: function get() {\n return 'a';\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function defaultInterfaceFactory() {\n function interfaceFunction() {\n return null;\n }\n\n return interfaceFunction;\n }\n\n function strokeInterfaceFactory(shape, view, propertyGroup) {\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n function addPropertyToDashOb(i) {\n Object.defineProperty(dashOb, shape.d[i].nm, {\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n });\n }\n\n var i;\n var len = shape.d ? shape.d.length : 0;\n var dashOb = {};\n\n for (i = 0; i < len; i += 1) {\n addPropertyToDashOb(i);\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n }\n\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n if (val === 'Stroke Width' || val === 'stroke width') {\n return interfaceFunction.strokeWidth;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n strokeWidth: {\n get: ExpressionPropertyInterface(view.w)\n },\n dash: {\n get: function get() {\n return dashOb;\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n return interfaceFunction;\n }\n\n function trimInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === shape.e.ix || val === 'End' || val === 'end') {\n return interfaceFunction.end;\n }\n\n if (val === shape.s.ix) {\n return interfaceFunction.start;\n }\n\n if (val === shape.o.ix) {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.propertyGroup = propertyGroup;\n Object.defineProperties(interfaceFunction, {\n start: {\n get: ExpressionPropertyInterface(view.s)\n },\n end: {\n get: ExpressionPropertyInterface(view.e)\n },\n offset: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function transformInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.a.ix === value || value === 'Anchor Point') {\n return interfaceFunction.anchorPoint;\n }\n\n if (shape.o.ix === value || value === 'Opacity') {\n return interfaceFunction.opacity;\n }\n\n if (shape.p.ix === value || value === 'Position') {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n return interfaceFunction.rotation;\n }\n\n if (shape.s.ix === value || value === 'Scale') {\n return interfaceFunction.scale;\n }\n\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n return interfaceFunction.skew;\n }\n\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n return interfaceFunction.skewAxis;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (view.transform.mProps.sk) {\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n }\n\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n opacity: {\n get: ExpressionPropertyInterface(view.transform.mProps.o)\n },\n position: {\n get: ExpressionPropertyInterface(view.transform.mProps.p)\n },\n anchorPoint: {\n get: ExpressionPropertyInterface(view.transform.mProps.a)\n },\n scale: {\n get: ExpressionPropertyInterface(view.transform.mProps.s)\n },\n rotation: {\n get: ExpressionPropertyInterface(view.transform.mProps.r)\n },\n skew: {\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\n },\n skewAxis: {\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.ty = 'tr';\n interfaceFunction.mn = shape.mn;\n interfaceFunction.propertyGroup = propertyGroup;\n return interfaceFunction;\n }\n\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.s.ix === value) {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function starInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.rotation;\n }\n\n if (shape.pt.ix === value) {\n return interfaceFunction.points;\n }\n\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n return interfaceFunction.outerRadius;\n }\n\n if (shape.os.ix === value) {\n return interfaceFunction.outerRoundness;\n }\n\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n return interfaceFunction.innerRadius;\n }\n\n if (shape.is && shape.is.ix === value) {\n return interfaceFunction.innerRoundness;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (shape.ir) {\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n }\n\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n rotation: {\n get: ExpressionPropertyInterface(prop.r)\n },\n points: {\n get: ExpressionPropertyInterface(prop.pt)\n },\n outerRadius: {\n get: ExpressionPropertyInterface(prop.or)\n },\n outerRoundness: {\n get: ExpressionPropertyInterface(prop.os)\n },\n innerRadius: {\n get: ExpressionPropertyInterface(prop.ir)\n },\n innerRoundness: {\n get: ExpressionPropertyInterface(prop.is)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function rectInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.roundness;\n }\n\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n roundness: {\n get: ExpressionPropertyInterface(prop.r)\n },\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function roundedInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.r.ix === value || value === 'Round Corners 1') {\n return interfaceFunction.radius;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n radius: {\n get: ExpressionPropertyInterface(prop.rd)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.c.ix === value || value === 'Copies') {\n return interfaceFunction.copies;\n }\n\n if (shape.o.ix === value || value === 'Offset') {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n copies: {\n get: ExpressionPropertyInterface(prop.c)\n },\n offset: {\n get: ExpressionPropertyInterface(prop.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n return function (shapes, view, propertyGroup) {\n var interfaces;\n\n function _interfaceFunction(value) {\n if (typeof value === 'number') {\n value = value === undefined ? 1 : value;\n\n if (value === 0) {\n return propertyGroup;\n }\n\n return interfaces[value - 1];\n }\n\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function parentGroupWrapper() {\n return propertyGroup;\n }\n\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n _interfaceFunction.numProperties = interfaces.length;\n _interfaceFunction._name = 'Contents';\n return _interfaceFunction;\n };\n }();\n\n var TextExpressionInterface = function () {\n return function (elem) {\n var _sourceText;\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Text Document':\n return _thisLayerFunction.sourceText;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\n get: function get() {\n elem.textProperty.getValue();\n var stringValue = elem.textProperty.currentData.t;\n\n if (!_sourceText || stringValue !== _sourceText.value) {\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n\n Object.defineProperty(_sourceText, 'style', {\n get: function get() {\n return {\n fillColor: elem.textProperty.currentData.fc\n };\n }\n });\n }\n\n return _sourceText;\n }\n });\n return _thisLayerFunction;\n };\n }();\n\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); }\n\n var FootageInterface = function () {\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n var currentPropertyName = '';\n var currentProperty = elem.getFootageData();\n\n function init() {\n currentPropertyName = '';\n currentProperty = elem.getFootageData();\n return searchProperty;\n }\n\n function searchProperty(value) {\n if (currentProperty[value]) {\n currentPropertyName = value;\n currentProperty = currentProperty[value];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n var propertyNameIndex = value.indexOf(currentPropertyName);\n\n if (propertyNameIndex !== -1) {\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n currentProperty = currentProperty[index];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n return '';\n }\n\n return init;\n };\n\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n function interfaceFunction(value) {\n if (value === 'Outline') {\n return interfaceFunction.outlineInterface();\n }\n\n return null;\n }\n\n interfaceFunction._name = 'Outline';\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n return interfaceFunction;\n };\n\n return function (elem) {\n function _interfaceFunction(value) {\n if (value === 'Data') {\n return _interfaceFunction.dataInterface;\n }\n\n return null;\n }\n\n _interfaceFunction._name = 'Data';\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n return _interfaceFunction;\n };\n }();\n\n var interfaces = {\n layer: LayerExpressionInterface,\n effects: EffectsExpressionInterface,\n comp: CompExpressionInterface,\n shape: ShapeExpressionInterface,\n text: TextExpressionInterface,\n footage: FootageInterface\n };\n\n function getInterface(type) {\n return interfaces[type] || null;\n }\n\n var expressionHelpers = function () {\n function searchExpressions(elem, data, prop) {\n if (data.x) {\n prop.k = true;\n prop.x = true;\n prop.initiateExpression = ExpressionManager.initiateExpression;\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n }\n }\n\n function getValueAtTime(frameNum) {\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastFrame) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n this._cachingAtTime.lastFrame = frameNum;\n }\n\n return this._cachingAtTime.value;\n }\n\n function getSpeedAtTime(frameNum) {\n var delta = -0.01;\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var speed = 0;\n\n if (v1.length) {\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n speed += Math.pow(v2[i] - v1[i], 2);\n }\n\n speed = Math.sqrt(speed) * 100;\n } else {\n speed = 0;\n }\n\n return speed;\n }\n\n function getVelocityAtTime(frameNum) {\n if (this.vel !== undefined) {\n return this.vel;\n }\n\n var delta = -0.001; // frameNum += this.elem.data.st;\n\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var velocity;\n\n if (v1.length) {\n velocity = createTypedArray('float32', v1.length);\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n // removing frameRate\n // if needed, don't add it here\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n velocity[i] = (v2[i] - v1[i]) / delta;\n }\n } else {\n velocity = (v2 - v1) / delta;\n }\n\n return velocity;\n }\n\n function getStaticValueAtTime() {\n return this.pv;\n }\n\n function setGroupProperty(propertyGroup) {\n this.propertyGroup = propertyGroup;\n }\n\n return {\n searchExpressions: searchExpressions,\n getSpeedAtTime: getSpeedAtTime,\n getVelocityAtTime: getVelocityAtTime,\n getValueAtTime: getValueAtTime,\n getStaticValueAtTime: getStaticValueAtTime,\n setGroupProperty: setGroupProperty\n };\n }();\n\n function addPropertyDecorator() {\n function loopOut(type, duration, durationFlag) {\n if (!this.k || !this.keyframes) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n if (currentFrame <= lastKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var firstKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n } else {\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n }\n\n firstKeyFrame = lastKeyFrame - cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (iterations % 2 !== 0) {\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n }\n\n return ret;\n }\n\n return (endV - initV) * repeats + current;\n } else if (type === 'continue') {\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(lastValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n }\n\n return ret;\n }\n\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n }\n\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function loopIn(type, duration, durationFlag) {\n if (!this.k) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var firstKeyFrame = keyframes[0].t;\n\n if (currentFrame >= firstKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var lastKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n lastKeyFrame = keyframes[duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n } else {\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n }\n\n lastKeyFrame = firstKeyFrame + cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n if (iterations % 2 === 0) {\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n }\n\n return ret;\n }\n\n return current - (endV - initV) * repeats;\n } else if (type === 'continue') {\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(firstValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return ret;\n }\n\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function smooth(width, samples) {\n if (!this.k) {\n return this.pv;\n }\n\n width = (width || 0.4) * 0.5;\n samples = Math.floor(samples || 5);\n\n if (samples <= 1) {\n return this.pv;\n }\n\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n var initFrame = currentTime - width;\n var endFrame = currentTime + width;\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n var i = 0;\n var j = 0;\n var value;\n\n if (this.pv.length) {\n value = createTypedArray('float32', this.pv.length);\n } else {\n value = 0;\n }\n\n var sampleValue;\n\n while (i < samples) {\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] += sampleValue[j];\n }\n } else {\n value += sampleValue;\n }\n\n i += 1;\n }\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] /= samples;\n }\n } else {\n value /= samples;\n }\n\n return value;\n }\n\n function getTransformValueAtTime(time) {\n if (!this._transformCachingAtTime) {\n this._transformCachingAtTime = {\n v: new Matrix()\n };\n } /// /\n\n\n var matrix = this._transformCachingAtTime.v;\n matrix.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n var anchor = this.a.getValueAtTime(time);\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\n }\n\n if (this.appliedTransformations < 2) {\n var scale = this.s.getValueAtTime(time);\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n var skew = this.sk.getValueAtTime(time);\n var skewAxis = this.sa.getValueAtTime(time);\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n var rotation = this.r.getValueAtTime(time);\n matrix.rotate(-rotation * this.r.mult);\n } else if (!this.r && this.appliedTransformations < 4) {\n var rotationZ = this.rz.getValueAtTime(time);\n var rotationY = this.ry.getValueAtTime(time);\n var rotationX = this.rx.getValueAtTime(time);\n var orientation = this.or.getValueAtTime(time);\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);\n }\n\n if (this.data.p && this.data.p.s) {\n var positionX = this.px.getValueAtTime(time);\n var positionY = this.py.getValueAtTime(time);\n\n if (this.data.p.z) {\n var positionZ = this.pz.getValueAtTime(time);\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\n } else {\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n }\n } else {\n var position = this.p.getValueAtTime(time);\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\n }\n\n return matrix; /// /\n }\n\n function getTransformStaticValueAtTime() {\n return this.v.clone(new Matrix());\n }\n\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n var prop = getTransformProperty(elem, data, container);\n\n if (prop.dynamicProperties.length) {\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n return prop;\n };\n\n var propertyGetProp = PropertyFactory.getProp;\n\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n // prop.loopOut = loopOut;\n // prop.loopIn = loopIn;\n\n if (prop.kf) {\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n prop.loopOut = loopOut;\n prop.loopIn = loopIn;\n prop.smooth = smooth;\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n prop.numKeys = data.a === 1 ? data.k.length : 0;\n prop.propertyIndex = data.ix;\n var value = 0;\n\n if (type !== 0) {\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n }\n\n prop._cachingAtTime = {\n lastFrame: initialDefaultFrame,\n lastIndex: 0,\n value: value\n };\n expressionHelpers.searchExpressions(elem, data, prop);\n\n if (prop.k) {\n container.addDynamicProperty(prop);\n }\n\n return prop;\n };\n\n function getShapeValueAtTime(frameNum) {\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n if (!this._cachingAtTime) {\n this._cachingAtTime = {\n shapeValue: shapePool.clone(this.pv),\n lastIndex: 0,\n lastTime: initialDefaultFrame\n };\n }\n\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastTime) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n this._cachingAtTime.lastTime = frameNum;\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n }\n\n return this._cachingAtTime.shapeValue;\n }\n\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n function ShapeExpressions() {}\n\n ShapeExpressions.prototype = {\n vertices: function vertices(prop, time) {\n if (this.k) {\n this.getValue();\n }\n\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n var i;\n var len = shapePath._length;\n var vertices = shapePath[prop];\n var points = shapePath.v;\n var arr = createSizedArray(len);\n\n for (i = 0; i < len; i += 1) {\n if (prop === 'i' || prop === 'o') {\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n } else {\n arr[i] = [vertices[i][0], vertices[i][1]];\n }\n }\n\n return arr;\n },\n points: function points(time) {\n return this.vertices('v', time);\n },\n inTangents: function inTangents(time) {\n return this.vertices('i', time);\n },\n outTangents: function outTangents(time) {\n return this.vertices('o', time);\n },\n isClosed: function isClosed() {\n return this.v.c;\n },\n pointOnPath: function pointOnPath(perc, time) {\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n if (!this._segmentsLength) {\n this._segmentsLength = bez.getSegmentsLength(shapePath);\n }\n\n var segmentsLength = this._segmentsLength;\n var lengths = segmentsLength.lengths;\n var lengthPos = segmentsLength.totalLength * perc;\n var i = 0;\n var len = lengths.length;\n var accumulatedLength = 0;\n var pt;\n\n while (i < len) {\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n var initIndex = i;\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n break;\n } else {\n accumulatedLength += lengths[i].addedLength;\n }\n\n i += 1;\n }\n\n if (!pt) {\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n }\n\n return pt;\n },\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n if (perc == 1) {\n // eslint-disable-line eqeqeq\n perc = this.v.c;\n } else if (perc == 0) {\n // eslint-disable-line eqeqeq\n perc = 0.999;\n }\n\n var pt1 = this.pointOnPath(perc, time);\n var pt2 = this.pointOnPath(perc + 0.001, time);\n var xLength = pt2[0] - pt1[0];\n var yLength = pt2[1] - pt1[1];\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n if (magnitude === 0) {\n return [0, 0];\n }\n\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n return unitVector;\n },\n tangentOnPath: function tangentOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'tangent');\n },\n normalOnPath: function normalOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'normal');\n },\n setGroupProperty: expressionHelpers.setGroupProperty,\n getValueAtTime: expressionHelpers.getStaticValueAtTime\n };\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n prop.propertyIndex = data.ix;\n prop.lock = false;\n\n if (type === 3) {\n expressionHelpers.searchExpressions(elem, data.pt, prop);\n } else if (type === 4) {\n expressionHelpers.searchExpressions(elem, data.ks, prop);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n };\n }\n\n function initialize$1() {\n addPropertyDecorator();\n }\n\n function addDecorator() {\n function searchExpressions() {\n if (this.data.d.x) {\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n this.addEffect(this.getExpressionValue.bind(this));\n return true;\n }\n\n return null;\n }\n\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n var newValue = this.calculateExpression(text);\n\n if (currentValue.t !== newValue) {\n var newData = {};\n this.copyData(newData, currentValue);\n newData.t = newValue.toString();\n newData.__complete = false;\n return newData;\n }\n\n return currentValue;\n };\n\n TextProperty.prototype.searchProperty = function () {\n var isKeyframed = this.searchKeyframes();\n var hasExpressions = this.searchExpressions();\n this.kf = isKeyframed || hasExpressions;\n return this.kf;\n };\n\n TextProperty.prototype.searchExpressions = searchExpressions;\n }\n\n function initialize() {\n addDecorator();\n }\n\n function SVGComposableEffect() {}\n\n SVGComposableEffect.prototype = {\n createMergeNode: function createMergeNode(resultId, ins) {\n var feMerge = createNS('feMerge');\n feMerge.setAttribute('result', resultId);\n var feMergeNode;\n var i;\n\n for (i = 0; i < ins.length; i += 1) {\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', ins[i]);\n feMerge.appendChild(feMergeNode);\n feMerge.appendChild(feMergeNode);\n }\n\n return feMerge;\n }\n };\n\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';\n\n function SVGTintFilter(filter, filterManager, elem, id, source) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', linearFilterValue + ' 1 0');\n this.linearFilter = feColorMatrix;\n feColorMatrix.setAttribute('result', id + '_tint_1');\n filter.appendChild(feColorMatrix);\n feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id + '_tint_2');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n var feMerge = this.createMergeNode(id, [source, id + '_tint_1', id + '_tint_2']);\n filter.appendChild(feMerge);\n }\n\n extendPrototype([SVGComposableEffect], SVGTintFilter);\n\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var colorBlack = this.filterManager.effectElements[0].p.v;\n var colorWhite = this.filterManager.effectElements[1].p.v;\n var opacity = this.filterManager.effectElements[2].p.v / 100;\n this.linearFilter.setAttribute('values', linearFilterValue + ' ' + opacity + ' 0');\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');\n }\n };\n\n function SVGFillFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id);\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n }\n\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color = this.filterManager.effectElements[2].p.v;\n var opacity = this.filterManager.effectElements[6].p.v;\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');\n }\n };\n\n function SVGStrokeEffect(fil, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.elem = elem;\n this.paths = [];\n }\n\n SVGStrokeEffect.prototype.initialize = function () {\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n var path;\n var groupPath;\n var i;\n var len;\n\n if (this.filterManager.effectElements[1].p.v === 1) {\n len = this.elem.maskManager.masksProperties.length;\n i = 0;\n } else {\n i = this.filterManager.effectElements[0].p.v - 1;\n len = i + 1;\n }\n\n groupPath = createNS('g');\n groupPath.setAttribute('fill', 'none');\n groupPath.setAttribute('stroke-linecap', 'round');\n groupPath.setAttribute('stroke-dashoffset', 1);\n\n for (i; i < len; i += 1) {\n path = createNS('path');\n groupPath.appendChild(path);\n this.paths.push({\n p: path,\n m: i\n });\n }\n\n if (this.filterManager.effectElements[10].p.v === 3) {\n var mask = createNS('mask');\n var id = createElementID();\n mask.setAttribute('id', id);\n mask.setAttribute('mask-type', 'alpha');\n mask.appendChild(groupPath);\n this.elem.globalData.defs.appendChild(mask);\n var g = createNS('g');\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\n while (elemChildren[0]) {\n g.appendChild(elemChildren[0]);\n }\n\n this.elem.layerElement.appendChild(g);\n this.masker = mask;\n groupPath.setAttribute('stroke', '#fff');\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (this.filterManager.effectElements[10].p.v === 2) {\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\n while (elemChildren.length) {\n this.elem.layerElement.removeChild(elemChildren[0]);\n }\n }\n\n this.elem.layerElement.appendChild(groupPath);\n this.elem.layerElement.removeAttribute('mask');\n groupPath.setAttribute('stroke', '#fff');\n }\n\n this.initialized = true;\n this.pathMasker = groupPath;\n };\n\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n if (!this.initialized) {\n this.initialize();\n }\n\n var i;\n var len = this.paths.length;\n var mask;\n var path;\n\n for (i = 0; i < len; i += 1) {\n if (this.paths[i].m !== -1) {\n mask = this.elem.maskManager.viewData[this.paths[i].m];\n path = this.paths[i].p;\n\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n path.setAttribute('d', mask.lastPath);\n }\n\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) {\n var dasharrayValue;\n\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var l = path.getTotalLength();\n dasharrayValue = '0 0 0 ' + l * s + ' ';\n var lineLength = l * (e - s);\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n var units = Math.floor(lineLength / segment);\n var j;\n\n for (j = 0; j < units; j += 1) {\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n }\n\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\n } else {\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n }\n\n path.setAttribute('stroke-dasharray', dasharrayValue);\n }\n }\n }\n\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n }\n\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n }\n\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\n var color = this.filterManager.effectElements[3].p.v;\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n }\n }\n };\n\n function SVGTritoneFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n filter.appendChild(feColorMatrix);\n var feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n this.matrixFilter = feComponentTransfer;\n var feFuncR = createNS('feFuncR');\n feFuncR.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncR);\n this.feFuncR = feFuncR;\n var feFuncG = createNS('feFuncG');\n feFuncG.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncG);\n this.feFuncG = feFuncG;\n var feFuncB = createNS('feFuncB');\n feFuncB.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncB);\n this.feFuncB = feFuncB;\n filter.appendChild(feComponentTransfer);\n }\n\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color1 = this.filterManager.effectElements[0].p.v;\n var color2 = this.filterManager.effectElements[1].p.v;\n var color3 = this.filterManager.effectElements[2].p.v;\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n this.feFuncR.setAttribute('tableValues', tableR);\n this.feFuncG.setAttribute('tableValues', tableG);\n this.feFuncB.setAttribute('tableValues', tableB);\n }\n };\n\n function SVGProLevelsFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var effectElements = this.filterManager.effectElements;\n var feComponentTransfer = createNS('feComponentTransfer'); // Red\n\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n } // Green\n\n\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n } // Blue\n\n\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n } // Alpha\n\n\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n } // RGB\n\n\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n }\n\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n filter.appendChild(feComponentTransfer);\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n }\n\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n var feFunc = createNS(type);\n feFunc.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFunc);\n return feFunc;\n };\n\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n var cnt = 0;\n var segments = 256;\n var perc;\n var min = Math.min(inputBlack, inputWhite);\n var max = Math.max(inputBlack, inputWhite);\n var table = Array.call(null, {\n length: segments\n });\n var colorValue;\n var pos = 0;\n var outputDelta = outputWhite - outputBlack;\n var inputDelta = inputWhite - inputBlack;\n\n while (cnt <= 256) {\n perc = cnt / 256;\n\n if (perc <= min) {\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n } else if (perc >= max) {\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n } else {\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n }\n\n table[pos] = colorValue;\n pos += 1;\n cnt += 256 / (segments - 1);\n }\n\n return table.join(' ');\n };\n\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var val;\n var effectElements = this.filterManager.effectElements;\n\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)) {\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n this.feFuncRComposed.setAttribute('tableValues', val);\n this.feFuncGComposed.setAttribute('tableValues', val);\n this.feFuncBComposed.setAttribute('tableValues', val);\n }\n\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)) {\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n this.feFuncR.setAttribute('tableValues', val);\n }\n\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)) {\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n this.feFuncG.setAttribute('tableValues', val);\n }\n\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)) {\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n this.feFuncB.setAttribute('tableValues', val);\n }\n\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)) {\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n this.feFuncA.setAttribute('tableValues', val);\n }\n }\n };\n\n function SVGDropShadowEffect(filter, filterManager, elem, id, source) {\n var globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\n var filterSize = filterManager.data.fs || globalFilterSize;\n filter.setAttribute('x', filterSize.x || globalFilterSize.x);\n filter.setAttribute('y', filterSize.y || globalFilterSize.y);\n filter.setAttribute('width', filterSize.width || globalFilterSize.width);\n filter.setAttribute('height', filterSize.height || globalFilterSize.height);\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\n feGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\n feGaussianBlur.setAttribute('stdDeviation', '0');\n this.feGaussianBlur = feGaussianBlur;\n filter.appendChild(feGaussianBlur);\n var feOffset = createNS('feOffset');\n feOffset.setAttribute('dx', '25');\n feOffset.setAttribute('dy', '0');\n feOffset.setAttribute('in', id + '_drop_shadow_1');\n feOffset.setAttribute('result', id + '_drop_shadow_2');\n this.feOffset = feOffset;\n filter.appendChild(feOffset);\n var feFlood = createNS('feFlood');\n feFlood.setAttribute('flood-color', '#00ff00');\n feFlood.setAttribute('flood-opacity', '1');\n feFlood.setAttribute('result', id + '_drop_shadow_3');\n this.feFlood = feFlood;\n filter.appendChild(feFlood);\n var feComposite = createNS('feComposite');\n feComposite.setAttribute('in', id + '_drop_shadow_3');\n feComposite.setAttribute('in2', id + '_drop_shadow_2');\n feComposite.setAttribute('operator', 'in');\n feComposite.setAttribute('result', id + '_drop_shadow_4');\n filter.appendChild(feComposite);\n var feMerge = this.createMergeNode(id, [id + '_drop_shadow_4', source]);\n filter.appendChild(feMerge); //\n }\n\n extendPrototype([SVGComposableEffect], SVGDropShadowEffect);\n\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n }\n\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\n var col = this.filterManager.effectElements[0].p.v;\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n }\n\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n }\n\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n var distance = this.filterManager.effectElements[3].p.v;\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n var x = distance * Math.cos(angle);\n var y = distance * Math.sin(angle);\n this.feOffset.setAttribute('dx', x);\n this.feOffset.setAttribute('dy', y);\n }\n }\n };\n\n var _svgMatteSymbols = [];\n\n function SVGMatte3Effect(filterElem, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.filterElem = filterElem;\n this.elem = elem;\n elem.matteElement = createNS('g');\n elem.matteElement.appendChild(elem.layerElement);\n elem.matteElement.appendChild(elem.transformedElement);\n elem.baseElement = elem.matteElement;\n }\n\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\n var i = 0;\n var len = _svgMatteSymbols.length;\n\n while (i < len) {\n if (_svgMatteSymbols[i] === mask) {\n return _svgMatteSymbols[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n var parentNode = mask.layerElement.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n var children = parentNode.children;\n var i = 0;\n var len = children.length;\n\n while (i < len) {\n if (children[i] === mask.layerElement) {\n break;\n }\n\n i += 1;\n }\n\n var nextChild;\n\n if (i <= len - 2) {\n nextChild = children[i + 1];\n }\n\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n\n if (nextChild) {\n parentNode.insertBefore(useElem, nextChild);\n } else {\n parentNode.appendChild(useElem);\n }\n };\n\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n if (!this.findSymbol(mask)) {\n var symbolId = createElementID();\n var masker = createNS('mask');\n masker.setAttribute('id', mask.layerId);\n masker.setAttribute('mask-type', 'alpha');\n\n _svgMatteSymbols.push(mask);\n\n var defs = elem.globalData.defs;\n defs.appendChild(masker);\n var symbol = createNS('symbol');\n symbol.setAttribute('id', symbolId);\n this.replaceInParent(mask, symbolId);\n symbol.appendChild(mask.layerElement);\n defs.appendChild(symbol);\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n masker.appendChild(useElem);\n mask.data.hd = false;\n mask.show();\n }\n\n elem.setMatte(mask.layerId);\n };\n\n SVGMatte3Effect.prototype.initialize = function () {\n var ind = this.filterManager.effectElements[0].p.v;\n var elements = this.elem.comp.elements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i] && elements[i].data.ind === ind) {\n this.setElementAsMask(this.elem, elements[i]);\n }\n\n i += 1;\n }\n\n this.initialized = true;\n };\n\n SVGMatte3Effect.prototype.renderFrame = function () {\n if (!this.initialized) {\n this.initialize();\n }\n };\n\n function SVGGaussianBlurEffect(filter, filterManager, elem, id) {\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\n filter.setAttribute('x', '-100%');\n filter.setAttribute('y', '-100%');\n filter.setAttribute('width', '300%');\n filter.setAttribute('height', '300%');\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('result', id);\n filter.appendChild(feGaussianBlur);\n this.feGaussianBlur = feGaussianBlur;\n }\n\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n // Empirical value, matching AE's blur appearance.\n var kBlurrinessToSigma = 0.3;\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n //\n // 1 -> horizontal & vertical\n // 2 -> horizontal only\n // 3 -> vertical only\n //\n\n var dimensions = this.filterManager.effectElements[1].p.v;\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\n //\n // 0 -> off -> duplicate\n // 1 -> on -> wrap\n\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n }\n };\n\n function TransformEffect() {}\n\n TransformEffect.prototype.init = function (effectsManager) {\n this.effectsManager = effectsManager;\n this.type = effectTypes.TRANSFORM_EFFECT;\n this.matrix = new Matrix();\n this.opacity = -1;\n this._mdf = false;\n this._opMdf = false;\n };\n\n TransformEffect.prototype.renderFrame = function (forceFrame) {\n this._opMdf = false;\n this._mdf = false;\n\n if (forceFrame || this.effectsManager._mdf) {\n var effectElements = this.effectsManager.effectElements;\n var anchor = effectElements[0].p.v;\n var position = effectElements[1].p.v;\n var isUniformScale = effectElements[2].p.v === 1;\n var scaleHeight = effectElements[3].p.v;\n var scaleWidth = isUniformScale ? scaleHeight : effectElements[4].p.v;\n var skew = effectElements[5].p.v;\n var skewAxis = effectElements[6].p.v;\n var rotation = effectElements[7].p.v;\n this.matrix.reset();\n this.matrix.translate(-anchor[0], -anchor[1], anchor[2]);\n this.matrix.scale(scaleWidth * 0.01, scaleHeight * 0.01, 1);\n this.matrix.rotate(-rotation * degToRads);\n this.matrix.skewFromAxis(-skew * degToRads, (skewAxis + 90) * degToRads);\n this.matrix.translate(position[0], position[1], 0);\n this._mdf = true;\n\n if (this.opacity !== effectElements[8].p.v) {\n this.opacity = effectElements[8].p.v;\n this._opMdf = true;\n }\n }\n };\n\n function SVGTransformEffect(_, filterManager) {\n this.init(filterManager);\n }\n\n extendPrototype([TransformEffect], SVGTransformEffect);\n\n function CVTransformEffect(effectsManager) {\n this.init(effectsManager);\n }\n\n extendPrototype([TransformEffect], CVTransformEffect);\n\n registerRenderer('canvas', CanvasRenderer);\n registerRenderer('html', HybridRenderer);\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier);\n ShapeModifiers.registerModifier('zz', ZigZagModifier);\n ShapeModifiers.registerModifier('op', OffsetPathModifier); // Registering expression plugin\n\n setExpressionsPlugin(Expressions);\n setExpressionInterfaces(getInterface);\n initialize$1();\n initialize(); // Registering svg effects\n\n registerEffect$1(20, SVGTintFilter, true);\n registerEffect$1(21, SVGFillFilter, true);\n registerEffect$1(22, SVGStrokeEffect, false);\n registerEffect$1(23, SVGTritoneFilter, true);\n registerEffect$1(24, SVGProLevelsFilter, true);\n registerEffect$1(25, SVGDropShadowEffect, true);\n registerEffect$1(28, SVGMatte3Effect, false);\n registerEffect$1(29, SVGGaussianBlurEffect, true);\n registerEffect$1(35, SVGTransformEffect, false);\n registerEffect(35, CVTransformEffect);\n\n return lottie;\n\n}));\n","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _innerSlider = require(\"./inner-slider\");\n\nvar _json2mq = _interopRequireDefault(require(\"json2mq\"));\n\nvar _defaultProps = _interopRequireDefault(require(\"./default-props\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || 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\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar enquire = (0, _innerSliderUtils.canUseDOM)() && require(\"enquire.js\");\n\nvar Slider = /*#__PURE__*/function (_React$Component) {\n _inherits(Slider, _React$Component);\n\n var _super = _createSuper(Slider);\n\n function Slider(props) {\n var _this;\n\n _classCallCheck(this, Slider);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"innerSliderRefHandler\", function (ref) {\n return _this.innerSlider = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n return _this.innerSlider.slickPrev();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n return _this.innerSlider.slickNext();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return _this.innerSlider.slickGoTo(slide, dontAnimate);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPause\", function () {\n return _this.innerSlider.pause(\"paused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPlay\", function () {\n return _this.innerSlider.autoPlay(\"play\");\n });\n\n _this.state = {\n breakpoint: null\n };\n _this._responsiveMediaHandlers = [];\n return _this;\n }\n\n _createClass(Slider, [{\n key: \"media\",\n value: function media(query, handler) {\n // javascript handler for css media query\n enquire.register(query, handler);\n\n this._responsiveMediaHandlers.push({\n query: query,\n handler: handler\n });\n } // handles responsive breakpoints\n\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n // performance monitoring\n //if (process.env.NODE_ENV !== 'production') {\n //const { whyDidYouUpdate } = require('why-did-you-update')\n //whyDidYouUpdate(React)\n //}\n if (this.props.responsive) {\n var breakpoints = this.props.responsive.map(function (breakpt) {\n return breakpt.breakpoint;\n }); // sort them in increasing order of their numerical value\n\n breakpoints.sort(function (x, y) {\n return x - y;\n });\n breakpoints.forEach(function (breakpoint, index) {\n // media query for each breakpoint\n var bQuery;\n\n if (index === 0) {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: 0,\n maxWidth: breakpoint\n });\n } else {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: breakpoints[index - 1] + 1,\n maxWidth: breakpoint\n });\n } // when not using server side rendering\n\n\n (0, _innerSliderUtils.canUseDOM)() && _this2.media(bQuery, function () {\n _this2.setState({\n breakpoint: breakpoint\n });\n });\n }); // Register media query for full screen. Need to support resize from small to large\n // convert javascript object to media query string\n\n var query = (0, _json2mq[\"default\"])({\n minWidth: breakpoints.slice(-1)[0]\n });\n (0, _innerSliderUtils.canUseDOM)() && this.media(query, function () {\n _this2.setState({\n breakpoint: null\n });\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._responsiveMediaHandlers.forEach(function (obj) {\n enquire.unregister(obj.query, obj.handler);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var settings;\n var newProps;\n\n if (this.state.breakpoint) {\n newProps = this.props.responsive.filter(function (resp) {\n return resp.breakpoint === _this3.state.breakpoint;\n });\n settings = newProps[0].settings === \"unslick\" ? \"unslick\" : _objectSpread(_objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props), newProps[0].settings);\n } else {\n settings = _objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props);\n } // force scrolling by one if centerMode is on\n\n\n if (settings.centerMode) {\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 in centerMode, you are using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToScroll = 1;\n } // force showing one slide and scrolling by one if the fade mode is on\n\n\n if (settings.fade) {\n if (settings.slidesToShow > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToShow should be equal to 1 when fade is true, you're using \".concat(settings.slidesToShow));\n }\n\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 when fade is true, you're using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToShow = 1;\n settings.slidesToScroll = 1;\n } // makes sure that children is an array, even when there is only 1 child\n\n\n var children = _react[\"default\"].Children.toArray(this.props.children); // Children may contain false or null, so we should filter them\n // children may also contain string filled with spaces (in certain cases where we use jsx strings)\n\n\n children = children.filter(function (child) {\n if (typeof child === \"string\") {\n return !!child.trim();\n }\n\n return !!child;\n }); // rows and slidesPerRow logic is handled here\n\n if (settings.variableWidth && (settings.rows > 1 || settings.slidesPerRow > 1)) {\n console.warn(\"variableWidth is not supported in case of rows > 1 or slidesPerRow > 1\");\n settings.variableWidth = false;\n }\n\n var newChildren = [];\n var currentWidth = null;\n\n for (var i = 0; i < children.length; i += settings.rows * settings.slidesPerRow) {\n var newSlide = [];\n\n for (var j = i; j < i + settings.rows * settings.slidesPerRow; j += settings.slidesPerRow) {\n var row = [];\n\n for (var k = j; k < j + settings.slidesPerRow; k += 1) {\n if (settings.variableWidth && children[k].props.style) {\n currentWidth = children[k].props.style.width;\n }\n\n if (k >= children.length) break;\n row.push( /*#__PURE__*/_react[\"default\"].cloneElement(children[k], {\n key: 100 * i + 10 * j + k,\n tabIndex: -1,\n style: {\n width: \"\".concat(100 / settings.slidesPerRow, \"%\"),\n display: \"inline-block\"\n }\n }));\n }\n\n newSlide.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: 10 * i + j\n }, row));\n }\n\n if (settings.variableWidth) {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i,\n style: {\n width: currentWidth\n }\n }, newSlide));\n } else {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i\n }, newSlide));\n }\n }\n\n if (settings === \"unslick\") {\n var className = \"regular slider \" + (this.props.className || \"\");\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: className\n }, children);\n } else if (newChildren.length <= settings.slidesToShow) {\n settings.unslick = true;\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(_innerSlider.InnerSlider, _extends({\n style: this.props.style,\n ref: this.innerSliderRefHandler\n }, settings), newChildren);\n }\n }]);\n\n return Slider;\n}(_react[\"default\"].Component);\n\nexports[\"default\"] = Slider;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.InnerSlider = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _initialState = _interopRequireDefault(require(\"./initial-state\"));\n\nvar _lodash = _interopRequireDefault(require(\"lodash.debounce\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nvar _track = require(\"./track\");\n\nvar _dots = require(\"./dots\");\n\nvar _arrows = require(\"./arrows\");\n\nvar _resizeObserverPolyfill = _interopRequireDefault(require(\"resize-observer-polyfill\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || 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\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; }\n\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; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar InnerSlider = /*#__PURE__*/function (_React$Component) {\n _inherits(InnerSlider, _React$Component);\n\n var _super = _createSuper(InnerSlider);\n\n function InnerSlider(props) {\n var _this;\n\n _classCallCheck(this, InnerSlider);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"listRefHandler\", function (ref) {\n return _this.list = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"trackRefHandler\", function (ref) {\n return _this.track = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"adaptHeight\", function () {\n if (_this.props.adaptiveHeight && _this.list) {\n var elem = _this.list.querySelector(\"[data-index=\\\"\".concat(_this.state.currentSlide, \"\\\"]\"));\n\n _this.list.style.height = (0, _innerSliderUtils.getHeight)(elem) + \"px\";\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidMount\", function () {\n _this.props.onInit && _this.props.onInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n\n var spec = _objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props);\n\n _this.updateState(spec, true, function () {\n _this.adaptHeight();\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n });\n\n if (_this.props.lazyLoad === \"progressive\") {\n _this.lazyLoadTimer = setInterval(_this.progressiveLazyLoad, 1000);\n }\n\n _this.ro = new _resizeObserverPolyfill[\"default\"](function () {\n if (_this.state.animating) {\n _this.onWindowResized(false); // don't set trackStyle hence don't break animation\n\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.onWindowResized();\n }, _this.props.speed));\n } else {\n _this.onWindowResized();\n }\n });\n\n _this.ro.observe(_this.list);\n\n document.querySelectorAll && Array.prototype.forEach.call(document.querySelectorAll(\".slick-slide\"), function (slide) {\n slide.onfocus = _this.props.pauseOnFocus ? _this.onSlideFocus : null;\n slide.onblur = _this.props.pauseOnFocus ? _this.onSlideBlur : null;\n });\n\n if (window.addEventListener) {\n window.addEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.attachEvent(\"onresize\", _this.onWindowResized);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentWillUnmount\", function () {\n if (_this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n }\n\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n }\n\n if (_this.callbackTimers.length) {\n _this.callbackTimers.forEach(function (timer) {\n return clearTimeout(timer);\n });\n\n _this.callbackTimers = [];\n }\n\n if (window.addEventListener) {\n window.removeEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.detachEvent(\"onresize\", _this.onWindowResized);\n }\n\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n _this.ro.disconnect();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidUpdate\", function (prevProps) {\n _this.checkImagesLoad();\n\n _this.props.onReInit && _this.props.onReInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n } // if (this.props.onLazyLoad) {\n // this.props.onLazyLoad([leftMostSlide])\n // }\n\n\n _this.adaptHeight();\n\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n\n var setTrackStyle = _this.didPropsChange(prevProps);\n\n setTrackStyle && _this.updateState(spec, setTrackStyle, function () {\n if (_this.state.currentSlide >= _react[\"default\"].Children.count(_this.props.children)) {\n _this.changeSlide({\n message: \"index\",\n index: _react[\"default\"].Children.count(_this.props.children) - _this.props.slidesToShow,\n currentSlide: _this.state.currentSlide\n });\n }\n\n if (_this.props.autoplay) {\n _this.autoPlay(\"update\");\n } else {\n _this.pause(\"paused\");\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onWindowResized\", function (setTrackStyle) {\n if (_this.debouncedResize) _this.debouncedResize.cancel();\n _this.debouncedResize = (0, _lodash[\"default\"])(function () {\n return _this.resizeWindow(setTrackStyle);\n }, 50);\n\n _this.debouncedResize();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"resizeWindow\", function () {\n var setTrackStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var isTrackMounted = Boolean(_this.track && _this.track.node); // prevent warning: setting state on unmounted component (server side rendering)\n\n if (!isTrackMounted) return;\n\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n\n _this.updateState(spec, setTrackStyle, function () {\n if (_this.props.autoplay) _this.autoPlay(\"update\");else _this.pause(\"paused\");\n }); // animating state should be cleared while resizing, otherwise autoplay stops working\n\n\n _this.setState({\n animating: false\n });\n\n clearTimeout(_this.animationEndCallback);\n delete _this.animationEndCallback;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateState\", function (spec, setTrackStyle, callback) {\n var updatedState = (0, _innerSliderUtils.initializedState)(spec);\n spec = _objectSpread(_objectSpread(_objectSpread({}, spec), updatedState), {}, {\n slideIndex: updatedState.currentSlide\n });\n var targetLeft = (0, _innerSliderUtils.getTrackLeft)(spec);\n spec = _objectSpread(_objectSpread({}, spec), {}, {\n left: targetLeft\n });\n var trackStyle = (0, _innerSliderUtils.getTrackCSS)(spec);\n\n if (setTrackStyle || _react[\"default\"].Children.count(_this.props.children) !== _react[\"default\"].Children.count(spec.children)) {\n updatedState[\"trackStyle\"] = trackStyle;\n }\n\n _this.setState(updatedState, callback);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ssrInit\", function () {\n if (_this.props.variableWidth) {\n var _trackWidth = 0,\n _trackLeft = 0;\n var childrenWidths = [];\n var preClones = (0, _innerSliderUtils.getPreClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n var postClones = (0, _innerSliderUtils.getPostClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n\n _this.props.children.forEach(function (child) {\n childrenWidths.push(child.props.style.width);\n _trackWidth += child.props.style.width;\n });\n\n for (var i = 0; i < preClones; i++) {\n _trackLeft += childrenWidths[childrenWidths.length - 1 - i];\n _trackWidth += childrenWidths[childrenWidths.length - 1 - i];\n }\n\n for (var _i = 0; _i < postClones; _i++) {\n _trackWidth += childrenWidths[_i];\n }\n\n for (var _i2 = 0; _i2 < _this.state.currentSlide; _i2++) {\n _trackLeft += childrenWidths[_i2];\n }\n\n var _trackStyle = {\n width: _trackWidth + \"px\",\n left: -_trackLeft + \"px\"\n };\n\n if (_this.props.centerMode) {\n var currentWidth = \"\".concat(childrenWidths[_this.state.currentSlide], \"px\");\n _trackStyle.left = \"calc(\".concat(_trackStyle.left, \" + (100% - \").concat(currentWidth, \") / 2 ) \");\n }\n\n return {\n trackStyle: _trackStyle\n };\n }\n\n var childrenCount = _react[\"default\"].Children.count(_this.props.children);\n\n var spec = _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: childrenCount\n });\n\n var slideCount = (0, _innerSliderUtils.getPreClones)(spec) + (0, _innerSliderUtils.getPostClones)(spec) + childrenCount;\n var trackWidth = 100 / _this.props.slidesToShow * slideCount;\n var slideWidth = 100 / slideCount;\n var trackLeft = -slideWidth * ((0, _innerSliderUtils.getPreClones)(spec) + _this.state.currentSlide) * trackWidth / 100;\n\n if (_this.props.centerMode) {\n trackLeft += (100 - slideWidth * trackWidth / 100) / 2;\n }\n\n var trackStyle = {\n width: trackWidth + \"%\",\n left: trackLeft + \"%\"\n };\n return {\n slideWidth: slideWidth + \"%\",\n trackStyle: trackStyle\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"checkImagesLoad\", function () {\n var images = _this.list && _this.list.querySelectorAll && _this.list.querySelectorAll(\".slick-slide img\") || [];\n var imagesCount = images.length,\n loadedCount = 0;\n Array.prototype.forEach.call(images, function (image) {\n var handler = function handler() {\n return ++loadedCount && loadedCount >= imagesCount && _this.onWindowResized();\n };\n\n if (!image.onclick) {\n image.onclick = function () {\n return image.parentNode.focus();\n };\n } else {\n var prevClickHandler = image.onclick;\n\n image.onclick = function () {\n prevClickHandler();\n image.parentNode.focus();\n };\n }\n\n if (!image.onload) {\n if (_this.props.lazyLoad) {\n image.onload = function () {\n _this.adaptHeight();\n\n _this.callbackTimers.push(setTimeout(_this.onWindowResized, _this.props.speed));\n };\n } else {\n image.onload = handler;\n\n image.onerror = function () {\n handler();\n _this.props.onLazyLoadError && _this.props.onLazyLoadError();\n };\n }\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"progressiveLazyLoad\", function () {\n var slidesToLoad = [];\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n for (var index = _this.state.currentSlide; index < _this.state.slideCount + (0, _innerSliderUtils.getPostClones)(spec); index++) {\n if (_this.state.lazyLoadedList.indexOf(index) < 0) {\n slidesToLoad.push(index);\n break;\n }\n }\n\n for (var _index = _this.state.currentSlide - 1; _index >= -(0, _innerSliderUtils.getPreClones)(spec); _index--) {\n if (_this.state.lazyLoadedList.indexOf(_index) < 0) {\n slidesToLoad.push(_index);\n break;\n }\n }\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (state) {\n return {\n lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n } else {\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n delete _this.lazyLoadTimer;\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slideHandler\", function (index) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var _this$props = _this.props,\n asNavFor = _this$props.asNavFor,\n beforeChange = _this$props.beforeChange,\n onLazyLoad = _this$props.onLazyLoad,\n speed = _this$props.speed,\n afterChange = _this$props.afterChange; // capture currentslide before state is updated\n\n var currentSlide = _this.state.currentSlide;\n\n var _slideHandler = (0, _innerSliderUtils.slideHandler)(_objectSpread(_objectSpread(_objectSpread({\n index: index\n }, _this.props), _this.state), {}, {\n trackRef: _this.track,\n useCSS: _this.props.useCSS && !dontAnimate\n })),\n state = _slideHandler.state,\n nextState = _slideHandler.nextState;\n\n if (!state) return;\n beforeChange && beforeChange(currentSlide, state.currentSlide);\n var slidesToLoad = state.lazyLoadedList.filter(function (value) {\n return _this.state.lazyLoadedList.indexOf(value) < 0;\n });\n onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);\n\n if (!_this.props.waitForAnimate && _this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n afterChange && afterChange(currentSlide);\n delete _this.animationEndCallback;\n }\n\n _this.setState(state, function () {\n // asNavForIndex check is to avoid recursive calls of slideHandler in waitForAnimate=false mode\n if (asNavFor && _this.asNavForIndex !== index) {\n _this.asNavForIndex = index;\n asNavFor.innerSlider.slideHandler(index);\n }\n\n if (!nextState) return;\n _this.animationEndCallback = setTimeout(function () {\n var animating = nextState.animating,\n firstBatch = _objectWithoutProperties(nextState, [\"animating\"]);\n\n _this.setState(firstBatch, function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.setState({\n animating: animating\n });\n }, 10));\n\n afterChange && afterChange(state.currentSlide);\n delete _this.animationEndCallback;\n });\n }, speed);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"changeSlide\", function (options) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n var targetSlide = (0, _innerSliderUtils.changeSlide)(spec, options);\n if (targetSlide !== 0 && !targetSlide) return;\n\n if (dontAnimate === true) {\n _this.slideHandler(targetSlide, dontAnimate);\n } else {\n _this.slideHandler(targetSlide);\n }\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n\n if (_this.props.focusOnSelect) {\n var nodes = _this.list.querySelectorAll(\".slick-current\");\n\n nodes[0] && nodes[0].focus();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"clickHandler\", function (e) {\n if (_this.clickable === false) {\n e.stopPropagation();\n e.preventDefault();\n }\n\n _this.clickable = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"keyHandler\", function (e) {\n var dir = (0, _innerSliderUtils.keyHandler)(e, _this.props.accessibility, _this.props.rtl);\n dir !== \"\" && _this.changeSlide({\n message: dir\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"selectHandler\", function (options) {\n _this.changeSlide(options);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"disableBodyScroll\", function () {\n var preventDefault = function preventDefault(e) {\n e = e || window.event;\n if (e.preventDefault) e.preventDefault();\n e.returnValue = false;\n };\n\n window.ontouchmove = preventDefault;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"enableBodyScroll\", function () {\n window.ontouchmove = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeStart\", function (e) {\n if (_this.props.verticalSwiping) {\n _this.disableBodyScroll();\n }\n\n var state = (0, _innerSliderUtils.swipeStart)(e, _this.props.swipe, _this.props.draggable);\n state !== \"\" && _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeMove\", function (e) {\n var state = (0, _innerSliderUtils.swipeMove)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n\n if (state[\"swiping\"]) {\n _this.clickable = false;\n }\n\n _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeEnd\", function (e) {\n var state = (0, _innerSliderUtils.swipeEnd)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n var triggerSlideHandler = state[\"triggerSlideHandler\"];\n delete state[\"triggerSlideHandler\"];\n\n _this.setState(state);\n\n if (triggerSlideHandler === undefined) return;\n\n _this.slideHandler(triggerSlideHandler);\n\n if (_this.props.verticalSwiping) {\n _this.enableBodyScroll();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"touchEnd\", function (e) {\n _this.swipeEnd(e);\n\n _this.clickable = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n // this and fellow methods are wrapped in setTimeout\n // to make sure initialize setState has happened before\n // any of such methods are called\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"previous\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"next\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n slide = Number(slide);\n if (isNaN(slide)) return \"\";\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"index\",\n index: slide,\n currentSlide: _this.state.currentSlide\n }, dontAnimate);\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"play\", function () {\n var nextIndex;\n\n if (_this.props.rtl) {\n nextIndex = _this.state.currentSlide - _this.props.slidesToScroll;\n } else {\n if ((0, _innerSliderUtils.canGoNext)(_objectSpread(_objectSpread({}, _this.props), _this.state))) {\n nextIndex = _this.state.currentSlide + _this.props.slidesToScroll;\n } else {\n return false;\n }\n }\n\n _this.slideHandler(nextIndex);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"autoPlay\", function (playType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (playType === \"update\") {\n if (autoplaying === \"hovered\" || autoplaying === \"focused\" || autoplaying === \"paused\") {\n return;\n }\n } else if (playType === \"leave\") {\n if (autoplaying === \"paused\" || autoplaying === \"focused\") {\n return;\n }\n } else if (playType === \"blur\") {\n if (autoplaying === \"paused\" || autoplaying === \"hovered\") {\n return;\n }\n }\n\n _this.autoplayTimer = setInterval(_this.play, _this.props.autoplaySpeed + 50);\n\n _this.setState({\n autoplaying: \"playing\"\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"pause\", function (pauseType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n _this.autoplayTimer = null;\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (pauseType === \"paused\") {\n _this.setState({\n autoplaying: \"paused\"\n });\n } else if (pauseType === \"focused\") {\n if (autoplaying === \"hovered\" || autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"focused\"\n });\n }\n } else {\n // pauseType is 'hovered'\n if (autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"hovered\"\n });\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideFocus\", function () {\n return _this.props.autoplay && _this.pause(\"focused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideBlur\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"focused\" && _this.autoPlay(\"blur\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"render\", function () {\n var className = (0, _classnames[\"default\"])(\"slick-slider\", _this.props.className, {\n \"slick-vertical\": _this.props.vertical,\n \"slick-initialized\": true\n });\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n var trackProps = (0, _innerSliderUtils.extractObject)(spec, [\"fade\", \"cssEase\", \"speed\", \"infinite\", \"centerMode\", \"focusOnSelect\", \"currentSlide\", \"lazyLoad\", \"lazyLoadedList\", \"rtl\", \"slideWidth\", \"slideHeight\", \"listHeight\", \"vertical\", \"slidesToShow\", \"slidesToScroll\", \"slideCount\", \"trackStyle\", \"variableWidth\", \"unslick\", \"centerPadding\", \"targetSlide\", \"useCSS\"]);\n var pauseOnHover = _this.props.pauseOnHover;\n trackProps = _objectSpread(_objectSpread({}, trackProps), {}, {\n onMouseEnter: pauseOnHover ? _this.onTrackOver : null,\n onMouseLeave: pauseOnHover ? _this.onTrackLeave : null,\n onMouseOver: pauseOnHover ? _this.onTrackOver : null,\n focusOnSelect: _this.props.focusOnSelect && _this.clickable ? _this.selectHandler : null\n });\n var dots;\n\n if (_this.props.dots === true && _this.state.slideCount >= _this.props.slidesToShow) {\n var dotProps = (0, _innerSliderUtils.extractObject)(spec, [\"dotsClass\", \"slideCount\", \"slidesToShow\", \"currentSlide\", \"slidesToScroll\", \"clickHandler\", \"children\", \"customPaging\", \"infinite\", \"appendDots\"]);\n var pauseOnDotsHover = _this.props.pauseOnDotsHover;\n dotProps = _objectSpread(_objectSpread({}, dotProps), {}, {\n clickHandler: _this.changeSlide,\n onMouseEnter: pauseOnDotsHover ? _this.onDotsLeave : null,\n onMouseOver: pauseOnDotsHover ? _this.onDotsOver : null,\n onMouseLeave: pauseOnDotsHover ? _this.onDotsLeave : null\n });\n dots = /*#__PURE__*/_react[\"default\"].createElement(_dots.Dots, dotProps);\n }\n\n var prevArrow, nextArrow;\n var arrowProps = (0, _innerSliderUtils.extractObject)(spec, [\"infinite\", \"centerMode\", \"currentSlide\", \"slideCount\", \"slidesToShow\", \"prevArrow\", \"nextArrow\"]);\n arrowProps.clickHandler = _this.changeSlide;\n\n if (_this.props.arrows) {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.PrevArrow, arrowProps);\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.NextArrow, arrowProps);\n }\n\n var verticalHeightStyle = null;\n\n if (_this.props.vertical) {\n verticalHeightStyle = {\n height: _this.state.listHeight\n };\n }\n\n var centerPaddingStyle = null;\n\n if (_this.props.vertical === false) {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: \"0px \" + _this.props.centerPadding\n };\n }\n } else {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: _this.props.centerPadding + \" 0px\"\n };\n }\n }\n\n var listStyle = _objectSpread(_objectSpread({}, verticalHeightStyle), centerPaddingStyle);\n\n var touchMove = _this.props.touchMove;\n var listProps = {\n className: \"slick-list\",\n style: listStyle,\n onClick: _this.clickHandler,\n onMouseDown: touchMove ? _this.swipeStart : null,\n onMouseMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onMouseUp: touchMove ? _this.swipeEnd : null,\n onMouseLeave: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onTouchStart: touchMove ? _this.swipeStart : null,\n onTouchMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onTouchEnd: touchMove ? _this.touchEnd : null,\n onTouchCancel: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onKeyDown: _this.props.accessibility ? _this.keyHandler : null\n };\n var innerSliderProps = {\n className: className,\n dir: \"ltr\",\n style: _this.props.style\n };\n\n if (_this.props.unslick) {\n listProps = {\n className: \"slick-list\"\n };\n innerSliderProps = {\n className: className\n };\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", innerSliderProps, !_this.props.unslick ? prevArrow : \"\", /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: _this.listRefHandler\n }, listProps), /*#__PURE__*/_react[\"default\"].createElement(_track.Track, _extends({\n ref: _this.trackRefHandler\n }, trackProps), _this.props.children)), !_this.props.unslick ? nextArrow : \"\", !_this.props.unslick ? dots : \"\");\n });\n\n _this.list = null;\n _this.track = null;\n _this.state = _objectSpread(_objectSpread({}, _initialState[\"default\"]), {}, {\n currentSlide: _this.props.initialSlide,\n slideCount: _react[\"default\"].Children.count(_this.props.children)\n });\n _this.callbackTimers = [];\n _this.clickable = true;\n _this.debouncedResize = null;\n\n var ssrState = _this.ssrInit();\n\n _this.state = _objectSpread(_objectSpread({}, _this.state), ssrState);\n return _this;\n }\n\n _createClass(InnerSlider, [{\n key: \"didPropsChange\",\n value: function didPropsChange(prevProps) {\n var setTrackStyle = false;\n\n for (var _i3 = 0, _Object$keys = Object.keys(this.props); _i3 < _Object$keys.length; _i3++) {\n var key = _Object$keys[_i3];\n\n if (!prevProps.hasOwnProperty(key)) {\n setTrackStyle = true;\n break;\n }\n\n if (_typeof(prevProps[key]) === \"object\" || typeof prevProps[key] === \"function\") {\n continue;\n }\n\n if (prevProps[key] !== this.props[key]) {\n setTrackStyle = true;\n break;\n }\n }\n\n return setTrackStyle || _react[\"default\"].Children.count(this.props.children) !== _react[\"default\"].Children.count(prevProps.children);\n }\n }]);\n\n return InnerSlider;\n}(_react[\"default\"].Component);\n\nexports.InnerSlider = InnerSlider;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar initialState = {\n animating: false,\n autoplaying: null,\n currentDirection: 0,\n currentLeft: null,\n currentSlide: 0,\n direction: 1,\n dragging: false,\n edgeDragged: false,\n initialized: false,\n lazyLoadedList: [],\n listHeight: null,\n listWidth: null,\n scrolling: false,\n slideCount: null,\n slideHeight: null,\n slideWidth: null,\n swipeLeft: null,\n swiped: false,\n // used by swipeEvent. differentites between touch and swipe.\n swiping: false,\n touchObject: {\n startX: 0,\n startY: 0,\n curX: 0,\n curY: 0\n },\n trackStyle: {},\n trackWidth: 0,\n targetSlide: 0\n};\nvar _default = initialState;\nexports[\"default\"] = _default;","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Track = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || 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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// given specifications/props for a slide, fetch all the classes that need to be applied to the slide\nvar getSlideClasses = function getSlideClasses(spec) {\n var slickActive, slickCenter, slickCloned;\n var centerOffset, index;\n\n if (spec.rtl) {\n index = spec.slideCount - 1 - spec.index;\n } else {\n index = spec.index;\n }\n\n slickCloned = index < 0 || index >= spec.slideCount;\n\n if (spec.centerMode) {\n centerOffset = Math.floor(spec.slidesToShow / 2);\n slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n\n if (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset) {\n slickActive = true;\n }\n } else {\n slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow;\n }\n\n var focusedSlide;\n\n if (spec.targetSlide < 0) {\n focusedSlide = spec.targetSlide + spec.slideCount;\n } else if (spec.targetSlide >= spec.slideCount) {\n focusedSlide = spec.targetSlide - spec.slideCount;\n } else {\n focusedSlide = spec.targetSlide;\n }\n\n var slickCurrent = index === focusedSlide;\n return {\n \"slick-slide\": true,\n \"slick-active\": slickActive,\n \"slick-center\": slickCenter,\n \"slick-cloned\": slickCloned,\n \"slick-current\": slickCurrent // dubious in case of RTL\n\n };\n};\n\nvar getSlideStyle = function getSlideStyle(spec) {\n var style = {};\n\n if (spec.variableWidth === undefined || spec.variableWidth === false) {\n style.width = spec.slideWidth;\n }\n\n if (spec.fade) {\n style.position = \"relative\";\n\n if (spec.vertical) {\n style.top = -spec.index * parseInt(spec.slideHeight);\n } else {\n style.left = -spec.index * parseInt(spec.slideWidth);\n }\n\n style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n\n if (spec.useCSS) {\n style.transition = \"opacity \" + spec.speed + \"ms \" + spec.cssEase + \", \" + \"visibility \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nvar getKey = function getKey(child, fallbackKey) {\n return child.key || fallbackKey;\n};\n\nvar renderSlides = function renderSlides(spec) {\n var key;\n var slides = [];\n var preCloneSlides = [];\n var postCloneSlides = [];\n\n var childrenCount = _react[\"default\"].Children.count(spec.children);\n\n var startIndex = (0, _innerSliderUtils.lazyStartIndex)(spec);\n var endIndex = (0, _innerSliderUtils.lazyEndIndex)(spec);\n\n _react[\"default\"].Children.forEach(spec.children, function (elem, index) {\n var child;\n var childOnClickOptions = {\n message: \"children\",\n index: index,\n slidesToScroll: spec.slidesToScroll,\n currentSlide: spec.currentSlide\n }; // in case of lazyLoad, whether or not we want to fetch the slide\n\n if (!spec.lazyLoad || spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0) {\n child = elem;\n } else {\n child = /*#__PURE__*/_react[\"default\"].createElement(\"div\", null);\n }\n\n var childStyle = getSlideStyle(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n var slideClass = child.props.className || \"\";\n var slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n })); // push a cloned element of the desired slide\n\n slides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"original\" + getKey(child, index),\n \"data-index\": index,\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n tabIndex: \"-1\",\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({\n outline: \"none\"\n }, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n })); // if slide needs to be precloned or postcloned\n\n if (spec.infinite && spec.fade === false) {\n var preCloneNo = childrenCount - index;\n\n if (preCloneNo <= (0, _innerSliderUtils.getPreClones)(spec) && childrenCount !== spec.slidesToShow) {\n key = -preCloneNo;\n\n if (key >= startIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n preCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"precloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n\n if (childrenCount !== spec.slidesToShow) {\n key = childrenCount + index;\n\n if (key < endIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n postCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"postcloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n }\n });\n\n if (spec.rtl) {\n return preCloneSlides.concat(slides, postCloneSlides).reverse();\n } else {\n return preCloneSlides.concat(slides, postCloneSlides);\n }\n};\n\nvar Track = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Track, _React$PureComponent);\n\n var _super = _createSuper(Track);\n\n function Track() {\n var _this;\n\n _classCallCheck(this, Track);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"node\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"handleRef\", function (ref) {\n _this.node = ref;\n });\n\n return _this;\n }\n\n _createClass(Track, [{\n key: \"render\",\n value: function render() {\n var slides = renderSlides(this.props);\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave;\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: this.handleRef,\n className: \"slick-track\",\n style: this.props.trackStyle\n }, mouseEvents), slides);\n }\n }]);\n\n return Track;\n}(_react[\"default\"].PureComponent);\n\nexports.Track = Track;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Dots = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar getDotCount = function getDotCount(spec) {\n var dots;\n\n if (spec.infinite) {\n dots = Math.ceil(spec.slideCount / spec.slidesToScroll);\n } else {\n dots = Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) + 1;\n }\n\n return dots;\n};\n\nvar Dots = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Dots, _React$PureComponent);\n\n var _super = _createSuper(Dots);\n\n function Dots() {\n _classCallCheck(this, Dots);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Dots, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n // In Autoplay the focus stays on clicked button even after transition\n // to next slide. That only goes away by click somewhere outside\n e.preventDefault();\n this.props.clickHandler(options);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave,\n infinite = _this$props.infinite,\n slidesToScroll = _this$props.slidesToScroll,\n slidesToShow = _this$props.slidesToShow,\n slideCount = _this$props.slideCount,\n currentSlide = _this$props.currentSlide;\n var dotCount = getDotCount({\n slideCount: slideCount,\n slidesToScroll: slidesToScroll,\n slidesToShow: slidesToShow,\n infinite: infinite\n });\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n var dots = [];\n\n for (var i = 0; i < dotCount; i++) {\n var _rightBound = (i + 1) * slidesToScroll - 1;\n\n var rightBound = infinite ? _rightBound : (0, _innerSliderUtils.clamp)(_rightBound, 0, slideCount - 1);\n\n var _leftBound = rightBound - (slidesToScroll - 1);\n\n var leftBound = infinite ? _leftBound : (0, _innerSliderUtils.clamp)(_leftBound, 0, slideCount - 1);\n var className = (0, _classnames[\"default\"])({\n \"slick-active\": infinite ? currentSlide >= leftBound && currentSlide <= rightBound : currentSlide === leftBound\n });\n var dotOptions = {\n message: \"dots\",\n index: i,\n slidesToScroll: slidesToScroll,\n currentSlide: currentSlide\n };\n var onClick = this.clickHandler.bind(this, dotOptions);\n dots = dots.concat( /*#__PURE__*/_react[\"default\"].createElement(\"li\", {\n key: i,\n className: className\n }, /*#__PURE__*/_react[\"default\"].cloneElement(this.props.customPaging(i), {\n onClick: onClick\n })));\n }\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(this.props.appendDots(dots), _objectSpread({\n className: this.props.dotsClass\n }, mouseEvents));\n }\n }]);\n\n return Dots;\n}(_react[\"default\"].PureComponent);\n\nexports.Dots = Dots;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PrevArrow = exports.NextArrow = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || 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\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar PrevArrow = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(PrevArrow, _React$PureComponent);\n\n var _super = _createSuper(PrevArrow);\n\n function PrevArrow() {\n _classCallCheck(this, PrevArrow);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(PrevArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var prevClasses = {\n \"slick-arrow\": true,\n \"slick-prev\": true\n };\n var prevHandler = this.clickHandler.bind(this, {\n message: \"previous\"\n });\n\n if (!this.props.infinite && (this.props.currentSlide === 0 || this.props.slideCount <= this.props.slidesToShow)) {\n prevClasses[\"slick-disabled\"] = true;\n prevHandler = null;\n }\n\n var prevArrowProps = {\n key: \"0\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(prevClasses),\n style: {\n display: \"block\"\n },\n onClick: prevHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var prevArrow;\n\n if (this.props.prevArrow) {\n prevArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.prevArrow, _objectSpread(_objectSpread({}, prevArrowProps), customProps));\n } else {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"0\",\n type: \"button\"\n }, prevArrowProps), \" \", \"Previous\");\n }\n\n return prevArrow;\n }\n }]);\n\n return PrevArrow;\n}(_react[\"default\"].PureComponent);\n\nexports.PrevArrow = PrevArrow;\n\nvar NextArrow = /*#__PURE__*/function (_React$PureComponent2) {\n _inherits(NextArrow, _React$PureComponent2);\n\n var _super2 = _createSuper(NextArrow);\n\n function NextArrow() {\n _classCallCheck(this, NextArrow);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(NextArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var nextClasses = {\n \"slick-arrow\": true,\n \"slick-next\": true\n };\n var nextHandler = this.clickHandler.bind(this, {\n message: \"next\"\n });\n\n if (!(0, _innerSliderUtils.canGoNext)(this.props)) {\n nextClasses[\"slick-disabled\"] = true;\n nextHandler = null;\n }\n\n var nextArrowProps = {\n key: \"1\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(nextClasses),\n style: {\n display: \"block\"\n },\n onClick: nextHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var nextArrow;\n\n if (this.props.nextArrow) {\n nextArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.nextArrow, _objectSpread(_objectSpread({}, nextArrowProps), customProps));\n } else {\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"1\",\n type: \"button\"\n }, nextArrowProps), \" \", \"Next\");\n }\n\n return nextArrow;\n }\n }]);\n\n return NextArrow;\n}(_react[\"default\"].PureComponent);\n\nexports.NextArrow = NextArrow;","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","var camel2hyphen = require('string-convert/camel2hyphen');\n\nvar isDimension = function (feature) {\n var re = /[height|width]$/;\n return re.test(feature);\n};\n\nvar obj2mq = function (obj) {\n var mq = '';\n var features = Object.keys(obj);\n features.forEach(function (feature, index) {\n var value = obj[feature];\n feature = camel2hyphen(feature);\n // Add px to dimension features\n if (isDimension(feature) && typeof value === 'number') {\n value = value + 'px';\n }\n if (value === true) {\n mq += feature;\n } else if (value === false) {\n mq += 'not ' + feature;\n } else {\n mq += '(' + feature + ': ' + value + ')';\n }\n if (index < features.length-1) {\n mq += ' and '\n }\n });\n return mq;\n};\n\nvar json2mq = function (query) {\n var mq = '';\n if (typeof query === 'string') {\n return query;\n }\n // Handling array of media queries\n if (query instanceof Array) {\n query.forEach(function (q, index) {\n mq += obj2mq(q);\n if (index < query.length-1) {\n mq += ', '\n }\n });\n return mq;\n }\n // Handling single media query\n return obj2mq(query);\n};\n\nmodule.exports = json2mq;","var camel2hyphen = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar defaultProps = {\n accessibility: true,\n adaptiveHeight: false,\n afterChange: null,\n appendDots: function appendDots(dots) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"ul\", {\n style: {\n display: \"block\"\n }\n }, dots);\n },\n arrows: true,\n autoplay: false,\n autoplaySpeed: 3000,\n beforeChange: null,\n centerMode: false,\n centerPadding: \"50px\",\n className: \"\",\n cssEase: \"ease\",\n customPaging: function customPaging(i) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"button\", null, i + 1);\n },\n dots: false,\n dotsClass: \"slick-dots\",\n draggable: true,\n easing: \"linear\",\n edgeFriction: 0.35,\n fade: false,\n focusOnSelect: false,\n infinite: true,\n initialSlide: 0,\n lazyLoad: null,\n nextArrow: null,\n onEdge: null,\n onInit: null,\n onLazyLoadError: null,\n onReInit: null,\n pauseOnDotsHover: false,\n pauseOnFocus: false,\n pauseOnHover: true,\n prevArrow: null,\n responsive: null,\n rows: 1,\n rtl: false,\n slide: \"div\",\n slidesPerRow: 1,\n slidesToScroll: 1,\n slidesToShow: 1,\n speed: 500,\n swipe: true,\n swipeEvent: null,\n swipeToSlide: false,\n touchMove: true,\n touchThreshold: 5,\n useCSS: true,\n useTransform: true,\n variableWidth: false,\n vertical: false,\n waitForAnimate: true\n};\nvar _default = defaultProps;\nexports[\"default\"] = _default;","var MediaQueryDispatch = require('./MediaQueryDispatch');\nmodule.exports = new MediaQueryDispatch();\n","var MediaQuery = require('./MediaQuery');\nvar Util = require('./Util');\nvar each = Util.each;\nvar isFunction = Util.isFunction;\nvar isArray = Util.isArray;\n\n/**\n * Allows for registration of query handlers.\n * Manages the query handler's state and is responsible for wiring up browser events\n *\n * @constructor\n */\nfunction MediaQueryDispatch () {\n if(!window.matchMedia) {\n throw new Error('matchMedia not present, legacy browsers require a polyfill');\n }\n\n this.queries = {};\n this.browserIsIncapable = !window.matchMedia('only all').matches;\n}\n\nMediaQueryDispatch.prototype = {\n\n constructor : MediaQueryDispatch,\n\n /**\n * Registers a handler for the given media query\n *\n * @param {string} q the media query\n * @param {object || Array || Function} options either a single query handler object, a function, or an array of query handlers\n * @param {function} options.match fired when query matched\n * @param {function} [options.unmatch] fired when a query is no longer matched\n * @param {function} [options.setup] fired when handler first triggered\n * @param {boolean} [options.deferSetup=false] whether setup should be run immediately or deferred until query is first matched\n * @param {boolean} [shouldDegrade=false] whether this particular media query should always run on incapable browsers\n */\n register : function(q, options, shouldDegrade) {\n var queries = this.queries,\n isUnconditional = shouldDegrade && this.browserIsIncapable;\n\n if(!queries[q]) {\n queries[q] = new MediaQuery(q, isUnconditional);\n }\n\n //normalise to object in an array\n if(isFunction(options)) {\n options = { match : options };\n }\n if(!isArray(options)) {\n options = [options];\n }\n each(options, function(handler) {\n if (isFunction(handler)) {\n handler = { match : handler };\n }\n queries[q].addHandler(handler);\n });\n\n return this;\n },\n\n /**\n * unregisters a query and all it's handlers, or a specific handler for a query\n *\n * @param {string} q the media query to target\n * @param {object || function} [handler] specific handler to unregister\n */\n unregister : function(q, handler) {\n var query = this.queries[q];\n\n if(query) {\n if(handler) {\n query.removeHandler(handler);\n }\n else {\n query.clear();\n delete this.queries[q];\n }\n }\n\n return this;\n }\n};\n\nmodule.exports = MediaQueryDispatch;\n","var QueryHandler = require('./QueryHandler');\nvar each = require('./Util').each;\n\n/**\n * Represents a single media query, manages it's state and registered handlers for this query\n *\n * @constructor\n * @param {string} query the media query string\n * @param {boolean} [isUnconditional=false] whether the media query should run regardless of whether the conditions are met. Primarily for helping older browsers deal with mobile-first design\n */\nfunction MediaQuery(query, isUnconditional) {\n this.query = query;\n this.isUnconditional = isUnconditional;\n this.handlers = [];\n this.mql = window.matchMedia(query);\n\n var self = this;\n this.listener = function(mql) {\n // Chrome passes an MediaQueryListEvent object, while other browsers pass MediaQueryList directly\n self.mql = mql.currentTarget || mql;\n self.assess();\n };\n this.mql.addListener(this.listener);\n}\n\nMediaQuery.prototype = {\n\n constuctor : MediaQuery,\n\n /**\n * add a handler for this query, triggering if already active\n *\n * @param {object} handler\n * @param {function} handler.match callback for when query is activated\n * @param {function} [handler.unmatch] callback for when query is deactivated\n * @param {function} [handler.setup] callback for immediate execution when a query handler is registered\n * @param {boolean} [handler.deferSetup=false] should the setup callback be deferred until the first time the handler is matched?\n */\n addHandler : function(handler) {\n var qh = new QueryHandler(handler);\n this.handlers.push(qh);\n\n this.matches() && qh.on();\n },\n\n /**\n * removes the given handler from the collection, and calls it's destroy methods\n *\n * @param {object || function} handler the handler to remove\n */\n removeHandler : function(handler) {\n var handlers = this.handlers;\n each(handlers, function(h, i) {\n if(h.equals(handler)) {\n h.destroy();\n return !handlers.splice(i,1); //remove from array and exit each early\n }\n });\n },\n\n /**\n * Determine whether the media query should be considered a match\n *\n * @return {Boolean} true if media query can be considered a match, false otherwise\n */\n matches : function() {\n return this.mql.matches || this.isUnconditional;\n },\n\n /**\n * Clears all handlers and unbinds events\n */\n clear : function() {\n each(this.handlers, function(handler) {\n handler.destroy();\n });\n this.mql.removeListener(this.listener);\n this.handlers.length = 0; //clear array\n },\n\n /*\n * Assesses the query, turning on all handlers if it matches, turning them off if it doesn't match\n */\n assess : function() {\n var action = this.matches() ? 'on' : 'off';\n\n each(this.handlers, function(handler) {\n handler[action]();\n });\n }\n};\n\nmodule.exports = MediaQuery;\n","/**\n * Delegate to handle a media query being matched and unmatched.\n *\n * @param {object} options\n * @param {function} options.match callback for when the media query is matched\n * @param {function} [options.unmatch] callback for when the media query is unmatched\n * @param {function} [options.setup] one-time callback triggered the first time a query is matched\n * @param {boolean} [options.deferSetup=false] should the setup callback be run immediately, rather than first time query is matched?\n * @constructor\n */\nfunction QueryHandler(options) {\n this.options = options;\n !options.deferSetup && this.setup();\n}\n\nQueryHandler.prototype = {\n\n constructor : QueryHandler,\n\n /**\n * coordinates setup of the handler\n *\n * @function\n */\n setup : function() {\n if(this.options.setup) {\n this.options.setup();\n }\n this.initialised = true;\n },\n\n /**\n * coordinates setup and triggering of the handler\n *\n * @function\n */\n on : function() {\n !this.initialised && this.setup();\n this.options.match && this.options.match();\n },\n\n /**\n * coordinates the unmatch event for the handler\n *\n * @function\n */\n off : function() {\n this.options.unmatch && this.options.unmatch();\n },\n\n /**\n * called when a handler is to be destroyed.\n * delegates to the destroy or unmatch callbacks, depending on availability.\n *\n * @function\n */\n destroy : function() {\n this.options.destroy ? this.options.destroy() : this.off();\n },\n\n /**\n * determines equality by reference.\n * if object is supplied compare options, if function, compare match callback\n *\n * @function\n * @param {object || function} [target] the target for comparison\n */\n equals : function(target) {\n return this.options === target || this.options.match === target;\n }\n\n};\n\nmodule.exports = QueryHandler;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.GA4 = void 0;\n\nvar _gtag = _interopRequireDefault(require(\"./gtag\"));\n\nvar _format = _interopRequireDefault(require(\"./format\"));\n\nvar _excluded = [\"eventCategory\", \"eventAction\", \"eventLabel\", \"eventValue\", \"hitType\"],\n _excluded2 = [\"title\", \"location\"],\n _excluded3 = [\"page\", \"hitType\"],\n _excluded4 = [\"action\", \"category\", \"label\", \"value\", \"nonInteraction\", \"transport\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\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; }\n\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; }\n\nfunction _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); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { 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\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/*\nLinks\nhttps://developers.google.com/gtagjs/reference/api\nhttps://developers.google.com/tag-platform/gtagjs/reference\n*/\n\n/**\n * @typedef GaOptions\n * @type {Object}\n * @property {boolean} [cookieUpdate=true]\n * @property {number} [cookieExpires=63072000] Default two years\n * @property {string} [cookieDomain=\"auto\"]\n * @property {string} [cookieFlags]\n * @property {string} [userId]\n * @property {string} [clientId]\n * @property {boolean} [anonymizeIp]\n * @property {string} [contentGroup1]\n * @property {string} [contentGroup2]\n * @property {string} [contentGroup3]\n * @property {string} [contentGroup4]\n * @property {string} [contentGroup5]\n * @property {boolean} [allowAdFeatures=true]\n * @property {boolean} [allowAdPersonalizationSignals]\n * @property {boolean} [nonInteraction]\n * @property {string} [page]\n */\n\n/**\n * @typedef UaEventOptions\n * @type {Object}\n * @property {string} action\n * @property {string} category\n * @property {string} [label]\n * @property {number} [value]\n * @property {boolean} [nonInteraction]\n * @property {('beacon'|'xhr'|'image')} [transport]\n */\n\n/**\n * @typedef InitOptions\n * @type {Object}\n * @property {string} trackingId\n * @property {GaOptions|any} [gaOptions]\n * @property {Object} [gtagOptions] New parameter\n */\nvar GA4 = /*#__PURE__*/function () {\n function GA4() {\n var _this = this;\n\n _classCallCheck(this, GA4);\n\n _defineProperty(this, \"reset\", function () {\n _this.isInitialized = false;\n _this._testMode = false;\n _this._currentMeasurementId;\n _this._hasLoadedGA = false;\n _this._isQueuing = false;\n _this._queueGtag = [];\n });\n\n _defineProperty(this, \"_gtag\", function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (!_this._testMode) {\n if (_this._isQueuing) {\n _this._queueGtag.push(args);\n } else {\n _gtag[\"default\"].apply(void 0, args);\n }\n } else {\n _this._queueGtag.push(args);\n }\n });\n\n _defineProperty(this, \"_loadGA\", function (GA_MEASUREMENT_ID, nonce) {\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n return;\n }\n\n if (!_this._hasLoadedGA) {\n // Global Site Tag (gtag.js) - Google Analytics\n var script = document.createElement(\"script\");\n script.async = true;\n script.src = \"https://www.googletagmanager.com/gtag/js?id=\".concat(GA_MEASUREMENT_ID);\n\n if (nonce) {\n script.setAttribute(\"nonce\", nonce);\n }\n\n document.body.appendChild(script);\n window.dataLayer = window.dataLayer || [];\n\n window.gtag = function gtag() {\n window.dataLayer.push(arguments);\n };\n\n _this._hasLoadedGA = true;\n }\n });\n\n _defineProperty(this, \"_toGtagOptions\", function (gaOptions) {\n if (!gaOptions) {\n return;\n }\n\n var mapFields = {\n // Old https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#cookieUpdate\n // New https://developers.google.com/analytics/devguides/collection/gtagjs/cookies-user-id#cookie_update\n cookieUpdate: \"cookie_update\",\n cookieExpires: \"cookie_expires\",\n cookieDomain: \"cookie_domain\",\n cookieFlags: \"cookie_flags\",\n // must be in set method?\n userId: \"user_id\",\n clientId: \"client_id\",\n anonymizeIp: \"anonymize_ip\",\n // https://support.google.com/analytics/answer/2853546?hl=en#zippy=%2Cin-this-article\n contentGroup1: \"content_group1\",\n contentGroup2: \"content_group2\",\n contentGroup3: \"content_group3\",\n contentGroup4: \"content_group4\",\n contentGroup5: \"content_group5\",\n // https://support.google.com/analytics/answer/9050852?hl=en\n allowAdFeatures: \"allow_google_signals\",\n allowAdPersonalizationSignals: \"allow_ad_personalization_signals\",\n nonInteraction: \"non_interaction\",\n page: \"page_path\",\n hitCallback: \"event_callback\"\n };\n var gtagOptions = Object.entries(gaOptions).reduce(function (prev, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n\n if (mapFields[key]) {\n prev[mapFields[key]] = value;\n } else {\n prev[key] = value;\n }\n\n return prev;\n }, {});\n return gtagOptions;\n });\n\n _defineProperty(this, \"initialize\", function (GA_MEASUREMENT_ID) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!GA_MEASUREMENT_ID) {\n throw new Error(\"Require GA_MEASUREMENT_ID\");\n }\n\n var initConfigs = typeof GA_MEASUREMENT_ID === \"string\" ? [{\n trackingId: GA_MEASUREMENT_ID\n }] : GA_MEASUREMENT_ID;\n _this._currentMeasurementId = initConfigs[0].trackingId;\n var gaOptions = options.gaOptions,\n gtagOptions = options.gtagOptions,\n _options$legacyDimens = options.legacyDimensionMetric,\n legacyDimensionMetric = _options$legacyDimens === void 0 ? true : _options$legacyDimens,\n nonce = options.nonce,\n _options$testMode = options.testMode,\n testMode = _options$testMode === void 0 ? false : _options$testMode;\n _this._testMode = testMode;\n\n if (!testMode) {\n _this._loadGA(_this._currentMeasurementId, nonce);\n }\n\n if (!_this.isInitialized) {\n _this._gtag(\"js\", new Date());\n\n initConfigs.forEach(function (config) {\n var mergedGtagOptions = _this._appendCustomMap(_objectSpread(_objectSpread(_objectSpread({\n // https://developers.google.com/analytics/devguides/collection/gtagjs/pages#disable_pageview_measurement\n send_page_view: false\n }, _this._toGtagOptions(_objectSpread(_objectSpread({}, gaOptions), config.gaOptions))), gtagOptions), config.gtagOptions), legacyDimensionMetric);\n\n _this._gtag(\"config\", config.trackingId, mergedGtagOptions);\n });\n }\n\n _this.isInitialized = true;\n\n if (!testMode) {\n var queues = _toConsumableArray(_this._queueGtag);\n\n _this._queueGtag = [];\n _this._isQueuing = false;\n\n while (queues.length) {\n var queue = queues.shift();\n\n _this._gtag.apply(_this, _toConsumableArray(queue));\n\n if (queue[0] === \"get\") {\n _this._isQueuing = true;\n }\n }\n }\n });\n\n _defineProperty(this, \"set\", function (fieldsObject) {\n if (!fieldsObject) {\n console.warn(\"`fieldsObject` is required in .set()\");\n return;\n }\n\n if (_typeof(fieldsObject) !== \"object\") {\n console.warn(\"Expected `fieldsObject` arg to be an Object\");\n return;\n }\n\n if (Object.keys(fieldsObject).length === 0) {\n console.warn(\"empty `fieldsObject` given to .set()\");\n }\n\n _this._gaCommand(\"set\", fieldsObject);\n });\n\n _defineProperty(this, \"_gaCommandSendEvent\", function (eventCategory, eventAction, eventLabel, eventValue, fieldsObject) {\n _this._gtag(\"event\", eventAction, _objectSpread(_objectSpread({\n event_category: eventCategory,\n event_label: eventLabel,\n value: eventValue\n }, fieldsObject && {\n non_interaction: fieldsObject.nonInteraction\n }), _this._toGtagOptions(fieldsObject)));\n });\n\n _defineProperty(this, \"_gaCommandSendEventParameters\", function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === \"string\") {\n _this._gaCommandSendEvent.apply(_this, _toConsumableArray(args.slice(1)));\n } else {\n var _args$ = args[0],\n eventCategory = _args$.eventCategory,\n eventAction = _args$.eventAction,\n eventLabel = _args$.eventLabel,\n eventValue = _args$.eventValue,\n hitType = _args$.hitType,\n rest = _objectWithoutProperties(_args$, _excluded);\n\n _this._gaCommandSendEvent(eventCategory, eventAction, eventLabel, eventValue, rest);\n }\n });\n\n _defineProperty(this, \"_gaCommandSendTiming\", function (timingCategory, timingVar, timingValue, timingLabel) {\n _this._gtag(\"event\", \"timing_complete\", {\n name: timingVar,\n value: timingValue,\n event_category: timingCategory,\n event_label: timingLabel\n });\n });\n\n _defineProperty(this, \"_gaCommandSendPageview\", function (page, fieldsObject) {\n if (fieldsObject && Object.keys(fieldsObject).length) {\n var _this$_toGtagOptions = _this._toGtagOptions(fieldsObject),\n title = _this$_toGtagOptions.title,\n location = _this$_toGtagOptions.location,\n rest = _objectWithoutProperties(_this$_toGtagOptions, _excluded2);\n\n _this._gtag(\"event\", \"page_view\", _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, page && {\n page_path: page\n }), title && {\n page_title: title\n }), location && {\n page_location: location\n }), rest));\n } else if (page) {\n _this._gtag(\"event\", \"page_view\", {\n page_path: page\n });\n } else {\n _this._gtag(\"event\", \"page_view\");\n }\n });\n\n _defineProperty(this, \"_gaCommandSendPageviewParameters\", function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n if (typeof args[0] === \"string\") {\n _this._gaCommandSendPageview.apply(_this, _toConsumableArray(args.slice(1)));\n } else {\n var _args$2 = args[0],\n page = _args$2.page,\n hitType = _args$2.hitType,\n rest = _objectWithoutProperties(_args$2, _excluded3);\n\n _this._gaCommandSendPageview(page, rest);\n }\n });\n\n _defineProperty(this, \"_gaCommandSend\", function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n var hitType = typeof args[0] === \"string\" ? args[0] : args[0].hitType;\n\n switch (hitType) {\n case \"event\":\n _this._gaCommandSendEventParameters.apply(_this, args);\n\n break;\n\n case \"pageview\":\n _this._gaCommandSendPageviewParameters.apply(_this, args);\n\n break;\n\n case \"timing\":\n _this._gaCommandSendTiming.apply(_this, _toConsumableArray(args.slice(1)));\n\n break;\n\n case \"screenview\":\n case \"transaction\":\n case \"item\":\n case \"social\":\n case \"exception\":\n console.warn(\"Unsupported send command: \".concat(hitType));\n break;\n\n default:\n console.warn(\"Send command doesn't exist: \".concat(hitType));\n }\n });\n\n _defineProperty(this, \"_gaCommandSet\", function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n if (typeof args[0] === \"string\") {\n args[0] = _defineProperty({}, args[0], args[1]);\n }\n\n _this._gtag(\"set\", _this._toGtagOptions(args[0]));\n });\n\n _defineProperty(this, \"_gaCommand\", function (command) {\n for (var _len6 = arguments.length, args = new Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {\n args[_key6 - 1] = arguments[_key6];\n }\n\n switch (command) {\n case \"send\":\n _this._gaCommandSend.apply(_this, args);\n\n break;\n\n case \"set\":\n _this._gaCommandSet.apply(_this, args);\n\n break;\n\n default:\n console.warn(\"Command doesn't exist: \".concat(command));\n }\n });\n\n _defineProperty(this, \"ga\", function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n if (typeof args[0] === \"string\") {\n _this._gaCommand.apply(_this, args);\n } else {\n var readyCallback = args[0];\n\n _this._gtag(\"get\", _this._currentMeasurementId, \"client_id\", function (clientId) {\n _this._isQueuing = false;\n var queues = _this._queueGtag;\n readyCallback({\n get: function get(property) {\n return property === \"clientId\" ? clientId : property === \"trackingId\" ? _this._currentMeasurementId : property === \"apiVersion\" ? \"1\" : undefined;\n }\n });\n\n while (queues.length) {\n var queue = queues.shift();\n\n _this._gtag.apply(_this, _toConsumableArray(queue));\n }\n });\n\n _this._isQueuing = true;\n }\n\n return _this.ga;\n });\n\n _defineProperty(this, \"event\", function (optionsOrName, params) {\n if (typeof optionsOrName === \"string\") {\n _this._gtag(\"event\", optionsOrName, _this._toGtagOptions(params));\n } else {\n var action = optionsOrName.action,\n category = optionsOrName.category,\n label = optionsOrName.label,\n value = optionsOrName.value,\n nonInteraction = optionsOrName.nonInteraction,\n transport = optionsOrName.transport,\n rest = _objectWithoutProperties(optionsOrName, _excluded4);\n\n if (!category || !action) {\n console.warn(\"args.category AND args.action are required in event()\");\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: \"event\",\n eventCategory: (0, _format[\"default\"])(category),\n eventAction: (0, _format[\"default\"])(action)\n }; // Optional Fields\n\n if (label) {\n fieldObject.eventLabel = (0, _format[\"default\"])(label);\n }\n\n if (typeof value !== \"undefined\") {\n if (typeof value !== \"number\") {\n console.warn(\"Expected `args.value` arg to be a Number.\");\n } else {\n fieldObject.eventValue = value;\n }\n }\n\n if (typeof nonInteraction !== \"undefined\") {\n if (typeof nonInteraction !== \"boolean\") {\n console.warn(\"`args.nonInteraction` must be a boolean.\");\n } else {\n fieldObject.nonInteraction = nonInteraction;\n }\n }\n\n if (typeof transport !== \"undefined\") {\n if (typeof transport !== \"string\") {\n console.warn(\"`args.transport` must be a string.\");\n } else {\n if ([\"beacon\", \"xhr\", \"image\"].indexOf(transport) === -1) {\n console.warn(\"`args.transport` must be either one of these values: `beacon`, `xhr` or `image`\");\n }\n\n fieldObject.transport = transport;\n }\n }\n\n Object.keys(rest).filter(function (key) {\n return key.substr(0, \"dimension\".length) === \"dimension\";\n }).forEach(function (key) {\n fieldObject[key] = rest[key];\n });\n Object.keys(rest).filter(function (key) {\n return key.substr(0, \"metric\".length) === \"metric\";\n }).forEach(function (key) {\n fieldObject[key] = rest[key];\n });\n\n _this._gaCommand(\"send\", fieldObject);\n }\n });\n\n _defineProperty(this, \"send\", function (fieldObject) {\n _this._gaCommand(\"send\", fieldObject);\n });\n\n _defineProperty(this, \"pageview\", function (path, _, title) {\n var pathTrim = path === null || path === void 0 ? void 0 : path.trim();\n\n if (pathTrim === \"\") {\n console.warn(\"path cannot be an empty string in .pageview()\");\n return;\n }\n\n _this._gaCommand(\"send\", \"pageview\", pathTrim, {\n title: title\n });\n });\n\n this.reset();\n }\n\n _createClass(GA4, [{\n key: \"gtag\",\n value: function gtag() {\n this._gtag.apply(this, arguments);\n }\n }, {\n key: \"_appendCustomMap\",\n value: function _appendCustomMap(options) {\n var legacyDimensionMetric = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (!legacyDimensionMetric) {\n return options;\n }\n\n if (!options.custom_map) {\n options.custom_map = {};\n }\n\n for (var i = 1; i <= 200; i++) {\n if (!options.custom_map[\"dimension\".concat(i)]) {\n options.custom_map[\"dimension\".concat(i)] = \"dimension\".concat(i);\n }\n\n if (!options.custom_map[\"metric\".concat(i)]) {\n options.custom_map[\"metric\".concat(i)] = \"metric\".concat(i);\n }\n }\n\n return options;\n }\n /**\n * @since v1.0.2\n * @param {string} [path=\"location.href\"]\n * @param {string[]} [_] unsupported\n * @param {string} [title=\"location.pathname\"]\n * @deprecated Use `.send(\"pageview\")` instead\n */\n\n }, {\n key: \"outboundLink\",\n value:\n /**\n * @since v1.0.6\n * @param {Object} options\n * @param {string} options.label\n * @param {function} hitCallback\n * @deprecated Use `enhanced measurement` feature in Google Analytics.\n */\n function outboundLink(_ref3, hitCallback) {\n var label = _ref3.label;\n\n if (typeof hitCallback !== \"function\") {\n console.warn(\"hitCallback function is required\");\n return;\n }\n\n if (!label) {\n console.warn(\"args.label is required in outboundLink()\");\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: \"event\",\n eventCategory: \"Outbound\",\n eventAction: \"Click\",\n eventLabel: (0, _format[\"default\"])(label)\n };\n var safetyCallbackCalled = false;\n\n var safetyCallback = function safetyCallback() {\n // This prevents a delayed response from GA\n // causing hitCallback from being fired twice\n safetyCallbackCalled = true;\n hitCallback();\n }; // Using a timeout to ensure the execution of critical application code\n // in the case when the GA server might be down\n // or an ad blocker prevents sending the data\n // register safety net timeout:\n\n\n var t = setTimeout(safetyCallback, 250);\n\n var clearableCallbackForGA = function clearableCallbackForGA() {\n clearTimeout(t);\n\n if (!safetyCallbackCalled) {\n hitCallback();\n }\n };\n\n fieldObject.hitCallback = clearableCallbackForGA;\n\n this._gaCommand(\"send\", fieldObject);\n }\n }]);\n\n return GA4;\n}();\n\nexports.GA4 = GA4;\n\nvar _default = new GA4();\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar gtag = function gtag() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof window !== \"undefined\") {\n var _window;\n\n if (typeof window.gtag === \"undefined\") {\n window.dataLayer = window.dataLayer || [];\n\n window.gtag = function gtag() {\n window.dataLayer.push(arguments);\n };\n }\n\n (_window = window).gtag.apply(_window, args);\n }\n};\n\nvar _default = gtag;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = format;\nvar smallWords = /^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|vs?\\.?|via)$/i;\n\nfunction toTitleCase(string) {\n return string.toString().trim().replace(/[A-Za-z0-9\\u00C0-\\u00FF]+[^\\s-]*/g, function (match, index, title) {\n if (index > 0 && index + match.length !== title.length && match.search(smallWords) > -1 && title.charAt(index - 2) !== \":\" && (title.charAt(index + match.length) !== \"-\" || title.charAt(index - 1) === \"-\") && title.charAt(index - 1).search(/[^\\s-]/) < 0) {\n return match.toLowerCase();\n }\n\n if (match.substr(1).search(/[A-Z]|\\../) > -1) {\n return match;\n }\n\n return match.charAt(0).toUpperCase() + match.substr(1);\n });\n} // See if s could be an email address. We don't want to send personal data like email.\n// https://support.google.com/analytics/answer/2795983?hl=en\n\n\nfunction mightBeEmail(s) {\n // There's no point trying to validate rfc822 fully, just look for ...@...\n return typeof s === \"string\" && s.indexOf(\"@\") !== -1;\n}\n\nvar redacted = \"REDACTED (Potential Email Address)\";\n\nfunction redactEmail(string) {\n if (mightBeEmail(string)) {\n console.warn(\"This arg looks like an email address, redacting.\");\n return redacted;\n }\n\n return string;\n}\n\nfunction format() {\n var s = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n var titleCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var redactingEmail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n var _str = s || \"\";\n\n if (titleCase) {\n _str = toTitleCase(s);\n }\n\n if (redactingEmail) {\n _str = redactEmail(_str);\n }\n\n return _str;\n}","'use strict';\n\nvar _Snippets = require('./Snippets');\n\nvar _Snippets2 = _interopRequireDefault(_Snippets);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar TagManager = {\n dataScript: function dataScript(dataLayer) {\n var script = document.createElement('script');\n script.innerHTML = dataLayer;\n return script;\n },\n gtm: function gtm(args) {\n var snippets = _Snippets2.default.tags(args);\n\n var noScript = function noScript() {\n var noscript = document.createElement('noscript');\n noscript.innerHTML = snippets.iframe;\n return noscript;\n };\n\n var script = function script() {\n var script = document.createElement('script');\n script.innerHTML = snippets.script;\n return script;\n };\n\n var dataScript = this.dataScript(snippets.dataLayerVar);\n\n return {\n noScript: noScript,\n script: script,\n dataScript: dataScript\n };\n },\n initialize: function initialize(_ref) {\n var gtmId = _ref.gtmId,\n _ref$events = _ref.events,\n events = _ref$events === undefined ? {} : _ref$events,\n dataLayer = _ref.dataLayer,\n _ref$dataLayerName = _ref.dataLayerName,\n dataLayerName = _ref$dataLayerName === undefined ? 'dataLayer' : _ref$dataLayerName,\n _ref$auth = _ref.auth,\n auth = _ref$auth === undefined ? '' : _ref$auth,\n _ref$preview = _ref.preview,\n preview = _ref$preview === undefined ? '' : _ref$preview;\n\n var gtm = this.gtm({\n id: gtmId,\n events: events,\n dataLayer: dataLayer || undefined,\n dataLayerName: dataLayerName,\n auth: auth,\n preview: preview\n });\n if (dataLayer) document.head.appendChild(gtm.dataScript);\n document.head.insertBefore(gtm.script(), document.head.childNodes[0]);\n document.body.insertBefore(gtm.noScript(), document.body.childNodes[0]);\n },\n dataLayer: function dataLayer(_ref2) {\n var _dataLayer = _ref2.dataLayer,\n _ref2$dataLayerName = _ref2.dataLayerName,\n dataLayerName = _ref2$dataLayerName === undefined ? 'dataLayer' : _ref2$dataLayerName;\n\n if (window[dataLayerName]) return window[dataLayerName].push(_dataLayer);\n var snippets = _Snippets2.default.dataLayer(_dataLayer, dataLayerName);\n var dataScript = this.dataScript(snippets);\n document.head.insertBefore(dataScript, document.head.childNodes[0]);\n }\n};\n\nmodule.exports = TagManager;","'use strict';\n\nvar _warn = require('./utils/warn');\n\nvar _warn2 = _interopRequireDefault(_warn);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// https://developers.google.com/tag-manager/quickstart\n\nvar Snippets = {\n tags: function tags(_ref) {\n var id = _ref.id,\n events = _ref.events,\n dataLayer = _ref.dataLayer,\n dataLayerName = _ref.dataLayerName,\n preview = _ref.preview,\n auth = _ref.auth;\n\n var gtm_auth = '>m_auth=' + auth;\n var gtm_preview = '>m_preview=' + preview;\n\n if (!id) (0, _warn2.default)('GTM Id is required');\n\n var iframe = '\\n ';\n\n var script = '\\n (function(w,d,s,l,i){w[l]=w[l]||[];\\n w[l].push({\\'gtm.start\\': new Date().getTime(),event:\\'gtm.js\\', ' + JSON.stringify(events).slice(1, -1) + '});\\n var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!=\\'dataLayer\\'?\\'&l=\\'+l:\\'\\';\\n j.async=true;j.src=\\'https://www.googletagmanager.com/gtm.js?id=\\'+i+dl+\\'' + gtm_auth + gtm_preview + '>m_cookies_win=x\\';\\n f.parentNode.insertBefore(j,f);\\n })(window,document,\\'script\\',\\'' + dataLayerName + '\\',\\'' + id + '\\');';\n\n var dataLayerVar = this.dataLayer(dataLayer, dataLayerName);\n\n return {\n iframe: iframe,\n script: script,\n dataLayerVar: dataLayerVar\n };\n },\n dataLayer: function dataLayer(_dataLayer, dataLayerName) {\n return '\\n window.' + dataLayerName + ' = window.' + dataLayerName + ' || [];\\n window.' + dataLayerName + '.push(' + JSON.stringify(_dataLayer) + ')';\n }\n};\n\nmodule.exports = Snippets;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar warn = function warn(s) {\n console.warn('[react-gtm]', s);\n};\n\nexports.default = warn;","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\nimport { forceReflow } from './utils/reflow';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n *
\n * {\"I'll receive my-node-* classes\"}\n *
\n *
\n * \n *
\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n if (node) forceReflow(node);\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}"],"sourceRoot":""}