{"version":3,"sources":["../node_modules/react/jsx-runtime.js","../node_modules/react/index.js","../node_modules/react-router/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/react-router/node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/react-router/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../modules/HistoryContext.js","../../modules/createNameContext.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/hooks.js","../node_modules/object-assign/index.js","../node_modules/axios/lib/utils.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/history/node_modules/@babel/runtime/helpers/esm/extends.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/core-js/library/modules/_core.js","../node_modules/react-router-dom/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/react-router-dom/node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/react-router-dom/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../modules/BrowserRouter.js","../../modules/HashRouter.js","../../modules/utils/locationUtils.js","../../modules/Link.js","../../modules/NavLink.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/react-phone-input-2/lib/lib.js","../node_modules/moment-timezone/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/prop-types/index.js","../node_modules/lodash.debounce/index.js","../node_modules/core-js/library/modules/_an-object.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","../../src/index.js","../../src/constants.js","../node_modules/axios/lib/defaults.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/react-lottie/dist/index.js","../node_modules/mini-create-react-context/dist/esm/index.js","../node_modules/mini-create-react-context/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/path-to-regexp/index.js","../node_modules/moment/moment.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/cancel/Cancel.js","../node_modules/webpack/buildin/global.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/react-is/index.js","../node_modules/react-dom/index.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/axios/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/react/cjs/react-jsx-runtime.production.min.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/moment-timezone/moment-timezone.js","../node_modules/webpack/buildin/module.js","../../src/component.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../src/init.js","../node_modules/@babel/runtime/helpers/inheritsLoose.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/transformData.js","../node_modules/process/browser.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.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/react-lottie/node_modules/prop-types/index.js","../node_modules/react-lottie/node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/react-lottie/node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/webpack/buildin/amd-options.js","../node_modules/path-to-regexp/node_modules/isarray/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/@emotion/memoize/dist/memoize.browser.esm.js","../node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js","../node_modules/@styled-system/core/dist/index.esm.js","../node_modules/@styled-system/layout/dist/index.esm.js","../node_modules/@styled-system/color/dist/index.esm.js","../node_modules/@styled-system/typography/dist/index.esm.js","../node_modules/@styled-system/flexbox/dist/index.esm.js","../node_modules/@styled-system/grid/dist/index.esm.js","../node_modules/@styled-system/border/dist/index.esm.js","../node_modules/@styled-system/background/dist/index.esm.js","../node_modules/@styled-system/position/dist/index.esm.js","../node_modules/@styled-system/space/dist/index.esm.js","../node_modules/@styled-system/shadow/dist/index.esm.js","../node_modules/@styled-system/css/dist/index.esm.js","../node_modules/@styled-system/variant/dist/index.esm.js","../node_modules/@styled-system/should-forward-prop/dist/index.esm.js","../node_modules/styled-system/dist/index.esm.js","../node_modules/@emotion/sheet/dist/sheet.browser.esm.js","../node_modules/@emotion/stylis/dist/stylis.browser.esm.js","../node_modules/@emotion/cache/dist/cache.browser.esm.js","../node_modules/@emotion/utils/dist/utils.browser.esm.js","../node_modules/@emotion/hash/dist/hash.browser.esm.js","../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../node_modules/@emotion/serialize/dist/serialize.browser.esm.js","../node_modules/@emotion/core/dist/emotion-element-57a3a7a3.browser.esm.js","../node_modules/@emotion/css/dist/css.browser.esm.js","../node_modules/@emotion/core/dist/core.browser.esm.js","../node_modules/@emotion/styled-base/dist/styled-base.browser.esm.js","../node_modules/@emotion/styled/dist/styled.browser.esm.js","../../src/Box.js","../../src/Flex.js","../../src/Grid.js","../../src/Link.js","../../src/Button.js","../../src/Image.js","../../src/Text.js","../../src/Heading.js","../../src/Label.js","../../src/Card.js","../../src/Input.js","../../src/SVG.js","../../src/util.js","../../src/Select.js","../../src/Textarea.js","../../src/Radio.js","../../src/Checkbox.js","../../src/Slider.js","../../src/Field.js","../../src/Progress.js","../../src/Donut.js","../../src/Spinner.js","../../src/Avatar.js","../../src/Badge.js","../../src/IconButton.js","../../src/Close.js","../../src/Alert.js","../../src/Divider.js","../../src/Embed.js","../../src/AspectRatio.js","../../src/AspectImage.js","../../src/Container.js","../../src/NavLink.js","../../src/Message.js","../../src/MenuButton.js"],"names":["module","exports","require","_inheritsLoose","subClass","superClass","prototype","Object","create","constructor","__proto__","_extends","assign","target","i","arguments","length","source","key","hasOwnProperty","call","apply","this","_objectWithoutPropertiesLoose","excluded","sourceKeys","keys","indexOf","historyContext","name","context","createContext","createNamedContext","Router","location","props","computeRootMatch","path","url","params","isExact","pathname","componentDidMount","_pendingLocation","componentWillUnmount","unlisten","render","RouterContext","value","history","state","match","staticContext","HistoryContext","children","React","Component","cache","cacheLimit","cacheCount","matchPath","options","Array","exact","strict","sensitive","concat","matched","cacheKey","pathCache","result","regexp","pathToRegexp","compilePath","end","values","memo","Route","component","addLeadingSlash","stripBasename","basename","base","createURL","createPath","staticHandler","methodName","invariant","noop","Switch","child","element","computedMatch","useContext","useHistory","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","test1","String","getOwnPropertyNames","test2","fromCharCode","map","n","join","test3","split","forEach","letter","err","shouldUseNative","from","symbols","to","val","undefined","TypeError","toObject","s","bind","toString","isArray","isUndefined","isObject","isPlainObject","getPrototypeOf","isFunction","obj","fn","l","isArrayBuffer","isBuffer","isFormData","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isString","isNumber","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","navigator","product","window","document","merge","assignValue","slice","extend","a","b","thisArg","trim","str","replace","stripBOM","content","charCodeAt","prefix","condition","message","Error","isAbsolute","charAt","spliceOne","list","index","k","pop","resolvePathname","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","last","up","part","unshift","substr","valueOf","valueEqual","every","item","aValue","bValue","stripLeadingSlash","toLowerCase","hasBasename","stripTrailingSlash","search","hash","createLocation","currentLocation","hashIndex","searchIndex","parsePath","decodeURI","e","URIError","locationsAreEqual","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","callback","appendListener","isActive","listener","push","filter","notifyListeners","_len","args","_key","canUseDOM","createElement","getConfirmation","confirm","PopStateEvent","HashChangeEvent","getHistoryState","createBrowserHistory","globalHistory","canUseHistory","ua","userAgent","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","getDOMLocation","historyState","_ref","_window$location","createKey","Math","random","transitionManager","setState","nextState","handlePopState","event","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","ok","fromLocation","toLocation","toIndex","allKeys","fromIndex","delta","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","addEventListener","removeEventListener","isBlocked","href","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","listen","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","entry","nextIndex","nextEntries","splice","canGo","core","version","__e","BrowserRouter","createHistory","resolveToLocation","normalizeToLocation","forwardRefShim","C","forwardRef","LinkAnchor","innerRef","navigate","onClick","rest","ex","isModifiedEvent","forwardedRef","Link","method","ariaCurrent","activeClassName","activeStyle","classNameProp","className","isActiveProp","locationProp","styleProp","style","escapedPath","classnames","joinClassnames","global","self","Function","__g","defineProperty","get","ctx","hide","has","PROTOTYPE","$export","type","own","out","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","P","IS_BIND","B","IS_WRAP","W","expProto","c","virtual","R","U","anObject","IE8_DOM_DEFINE","toPrimitive","dP","f","O","Attributes","it","t","r","m","d","o","enumerable","Symbol","toStringTag","__esModule","default","p","u","parseInt","h","y","g","v","_","NaN","test","exec","IE_PROTO","RegExp","E","w","clear","set","j","x","N","__data__","I","T","Cache","delete","string","Date","now","setTimeout","leading","maxWait","trailing","cancel","clearTimeout","flush","A","D","M","L","nodeType","z","process","binding","isTypedArray","$","K","V","q","size","H","J","Z","Q","Y","X","ee","te","re","ne","ae","oe","ie","ue","Uint8Array","ce","se","le","fe","Ve","de","pe","he","me","ye","be","Xe","ge","ve","Ce","_e","we","Se","je","xe","Oe","ke","Ne","add","Ee","Ie","tt","Ue","Ae","Pe","Fe","ft","at","Me","We","$e","Ye","Le","Re","ut","ct","nt","qe","lt","Ke","byteLength","byteOffset","Qe","ot","ze","He","st","Je","Ze","resolve","et","rt","Te","Ge","dt","Be","webpackPolyfill","deprecate","paths","padEnd","repeat","configurable","writable","iterator","ReferenceError","setPrototypeOf","next","done","return","regions","iso2","countryCode","dialCode","format","priority","getOwnPropertyDescriptor","isAreaCode","areaCodeLength","mainCode","includes","hasAreaCodes","findIndex","filterRegions","some","sortTerritories","sort","getFilteredCountryList","find","localizeCountries","localName","getCustomAreas","JSON","parse","stringify","excludeCountries","onlyCountries","preferredCountries","hiddenAreaCodes","getProbableCandidate","guessSelectedCountry","enableAreaCodes","reduce","updateCountry","selectedCountry","formattedNumber","disableCountryCode","formatNumber","scrollTo","dropdownRef","body","offsetHeight","getBoundingClientRect","top","scrollTop","enableSearch","scrollToTop","enableAreaCodeStretch","enableLongNumbers","autoFormat","shift","remainingText","formattedText","cursorToEnd","numberInputRef","focus","setSelectionRange","getElement","getCountryData","handleFlagDropdownClick","preventDefault","showDropdown","disabled","highlightCountryIndex","handleInput","onChange","freezeSelection","countryCodeEditable","returnValue","country","persist","disableCountryGuess","selectionStart","handleInputClick","handleDoubleClick","handleFlagItemClick","handleInputFocus","jumpCursorToEnd","placeholder","onFocus","handleInputBlur","onBlur","handleInputCopy","copyNumbersOnly","getSelection","clipboardData","setData","getHighlightCountryIndex","getSearchFilteredCountries","searchCountry","queryString","handleKeydown","which","ENTER","ESC","blur","UP","DOWN","TAB","SPACE","debouncedQueryStingSearcher","handleInputKeyDown","onEnterKeyPress","onKeyDown","handleClickOutside","dropdownContainerRef","contains","handleSearchChange","currentTarget","searchValue","getDropdownCountryName","Set","getCountryDropdownList","disableDropdown","searchNotFound","disableSearchIcon","searchClass","searchStyle","searchPlaceholder","autocompleteSearch","preferred","active","highlight","ref","tabIndex","role","dropdownClass","dropdownStyle","autoFocus","autoComplete","enableTerritories","preserveOrder","masks","areaCodes","localization","defaultMask","alwaysDefaultMask","disableInitialCountryGuess","enableClickOutside","updateFormattedNumber","renderStringAsFlag","isValid","defaultErrorMessage","specialLabel","containerClass","arrow","inputClass","open","buttonClass","containerStyle","inputStyle","onDoubleClick","onCopy","inputProps","buttonStyle","title","defaultProps","flagsImagePath","RIGHT","LEFT","PLUS","tz","load","createDesc","object","IObject","defined","store","uid","USE_SYMBOL","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeGlobal","freeSelf","root","objectToString","nativeMax","nativeMin","toNumber","isObjectLike","isSymbol","other","isBinary","func","wait","lastArgs","lastThis","timerId","lastCallTime","lastInvokeTime","maxing","invokeFunc","time","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","remainingWait","debounced","isInvoking","leadingEdge","bitmap","$keys","enumBugKeys","id","px","invalidVersion","utils","normalizeHeaderName","enhanceError","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","headers","defaults","transitional","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","adapter","XMLHttpRequest","getDefaultAdapter","transformRequest","data","rawValue","parser","encoder","stringifySafely","transformResponse","strictJSONParsing","responseType","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","status","common","ceil","floor","isNaN","shared","SHARED","mode","copyright","dPs","Empty","createDict","iframeDocument","iframe","display","appendChild","src","contentWindow","write","close","Properties","def","TAG","tag","stat","LIBRARY","wksExt","$Symbol","_extends3","_interopRequireDefault","_getPrototypeOf2","_classCallCheck3","_createClass3","_possibleConstructorReturn3","_inherits3","_react2","_propTypes2","_lottieWeb2","Lottie","_React$Component","_temp","_this","_ret","handleClickToPause","anim","isPaused","play","pause","eventListeners","loop","autoplay","animationData","rendererSettings","segments","container","el","renderer","loadAnimation","registerEvents","setSpeed","nextProps","deRegisterEvents","destroy","isStopped","stop","playSegments","setDirection","speed","direction","_this2","eventListener","eventName","_this3","_this4","_props2","width","height","ariaRole","ariaLabel","isClickToPauseDisabled","getSize","initial","lottieStyles","overflow","margin","outline","onClickHandler","propTypes","arrayOf","isRequired","oneOfType","number","bool","MAX_SIGNED_31_BIT_INT","commonjsGlobal","globalThis","defaultValue","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","Provider","_Component","emitter","handlers","on","handler","off","newValue","changedBits","createEventEmitter","_proto","getChildContext","componentWillReceiveProps","oldValue","childContextTypes","PropTypes","Consumer","_Component2","getValue","onUpdate","observedBits","_proto2","contextTypes","isarray","compile","tokensToFunction","tokensToRegExp","PATH_REGEXP","res","tokens","defaultDelimiter","delimiter","escaped","offset","capture","group","modifier","asterisk","partial","optional","pattern","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","toUpperCase","matches","flags","opts","encode","pretty","encodeURIComponent","token","segment","attachKeys","route","endsWithDelimiter","groups","regexpToRegexp","parts","arrayToRegexp","stringToRegexp","hookCallback","hooks","setHookCallback","input","hasOwnProp","isObjectEmpty","arr","arrLen","createUTC","locale","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","getParsingFlags","_pf","_isValid","parsedParts","isNowValid","_d","getTime","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","fun","len","momentProperties","updateInProgress","copyConfig","prop","momentPropertiesLen","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","config","updateOffset","isMoment","warn","msg","suppressDeprecationWarnings","console","firstTime","deprecationHandler","arg","argLen","stack","deprecations","deprecateSimple","_config","_dayOfMonthOrdinalParseLenient","_dayOfMonthOrdinalParse","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","mom","output","_calendar","zeroFill","targetLength","forceSign","absNumber","abs","zerosToFill","pow","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","ordinal","localeData","removeFormattingTokens","makeFormatFunction","array","formatMoment","expandFormat","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","defaultLongDateFormat","LTS","LT","LL","LLL","LLLL","_longDateFormat","formatUpper","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","future","past","ss","mm","hh","dd","ww","MM","yy","relativeTime","withoutSuffix","isFuture","_relativeTime","pastFuture","diff","aliases","addUnitAlias","unit","shorthand","lowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","getPrioritizedUnits","unitsObj","isLeapYear","year","absFloor","toInt","argumentForCoercion","coercedNumber","isFinite","makeGetSet","keepTime","set$1","month","date","daysInMonth","stringGet","stringSet","prioritized","prioritizedLen","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","p1","p2","p3","p4","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","_a","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","mod","modMonth","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","isFormat","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","getSetMonth","getDaysInMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","daysInYear","parseTwoDigitYear","getSetYear","getIsLeapYear","createDate","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","shiftWeekdays","ws","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","day","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","hours","kFormat","lowercase","minutes","matchMeridiem","_meridiemParse","localeIsPM","seconds","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","isLower","globalLocale","baseConfig","dayOfMonthOrdinalParse","meridiemParse","locales","localeFamilies","commonPrefix","arr1","arr2","minl","normalizeLocale","chooseLocale","names","loadLocale","isLocaleNameSane","oldLocale","_abbr","aliasedRequire","getSetGlobalLocale","getLocale","defineLocale","abbr","parentLocale","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","setUTCMinutes","getUTCMinutes","configFromString","createFromInputFallback","currentDateArray","nowValue","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","weekYear","temp","weekdayOverflow","curWeek","GG","createLocal","gg","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","hour","isPm","meridiemHour","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromObject","dayOrDate","minute","second","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","prototypeMin","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","orderLen","parseFloat","isValid$1","createInvalid$1","createDuration","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","_milliseconds","_days","_data","_bubble","isDuration","absRound","round","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","separator","utcOffset","sign","offsetFromString","chunkOffset","matcher","cloneWithOffset","model","clone","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","toArray","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","ret","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","isAfter","isBefore","createAdder","period","tmp","isAdding","invalid","isMomentInput","isNumberOrStringArray","isMomentInputObject","property","objectTest","propertyTest","properties","propertyLen","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","formats","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","anchor","toISOString","keepOffset","toDate","inspect","datetime","suffix","zone","inputString","defaultFormatUtc","defaultFormat","postformat","humanize","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","isoWeekday","unix","toJSON","isValid$2","parsingFlags","invalidAt","creationData","localeEras","eras","_eras","since","until","localeErasParse","eraName","narrow","localeErasConvertYear","dir","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","_eraYearOrdinalRegex","abbrPieces","namePieces","narrowPieces","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","isoWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","erasParse","eraYearOrdinalParse","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetMillisecond","getSetSecond","parseMs","getZoneAbbr","getZoneName","proto","createUnix","createInZone","parseZone","preParsePostFormat","for","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","isDST","zoneAbbr","zoneName","dates","isDSTShifted","proto$1","get$1","field","setter","listMonthsImpl","listWeekdaysImpl","localeSorted","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","firstDayOfYear","firstDayOfWeek","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","argWithSuffix","argThresholds","withSuffix","th","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","total","toFixed","proto$2","toIsoString","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","factory","paramsSerializer","serializedParams","hashmarkIndex","error","code","request","response","isAxiosError","description","fileName","lineNumber","columnNumber","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","Promise","reject","requestData","requestHeaders","auth","username","password","unescape","Authorization","btoa","fullPath","baseURL","onloadend","responseHeaders","getAllResponseHeaders","responseText","statusText","onreadystatechange","readyState","responseURL","onabort","onerror","ontimeout","timeoutErrorMessage","xsrfValue","withCredentials","read","setRequestHeader","onDownloadProgress","onUploadProgress","upload","cancelToken","promise","then","abort","send","__CANCEL__","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","mergeDeepProperties","axiosKeys","otherKeys","Cancel","aFunction","is","toIObject","arrayIndexOf","cof","ObjectProto","_iterator2","_symbol2","_typeof","redefine","Iterators","$iterCreate","setToStringTag","ITERATOR","BUGGY","KEYS","VALUES","returnThis","Base","NAME","Constructor","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","kind","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","hiddenKeys","pIE","gOPD","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","reactIs","REACT_STATICS","contextType","displayName","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","Fragment","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","__self","__source","$$typeof","_owner","current","jsx","jsxs","StrictMode","Profiler","Suspense","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","refs","updater","isReactComponent","forceUpdate","isPureReactComponent","escape","_status","_result","ReactCurrentDispatcher","ReactCurrentBatchConfig","transition","IsSomeRendererActing","Children","count","only","PureComponent","cloneElement","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","_context","createFactory","createRef","isValidElement","lazy","_payload","_init","useCallback","useDebugValue","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","aa","ba","ca","da","ea","fa","ha","ia","ja","ka","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","oa","pa","qa","ma","na","la","removeAttribute","setAttribute","setAttributeNS","xlinkHref","ra","sa","ta","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ma","Ka","La","Na","Oa","Pa","prepareStackTrace","Reflect","construct","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","gb","dangerouslySetInnerHTML","hb","ib","jb","textContent","kb","html","mathml","svg","lb","mb","nb","ob","namespaceURI","innerHTML","firstChild","removeChild","MSApp","execUnsafeLocalFunction","pb","lastChild","nodeValue","qb","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","rb","sb","tb","setProperty","ub","menuitem","area","br","col","embed","hr","img","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","$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","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","hydrate","containerInfo","xc","yc","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","unstable_UserBlockingPriority","ed","fd","gd","hd","uc","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","isDefaultPrevented","defaultPrevented","isPropagationStopped","stopPropagation","cancelBubble","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","documentMode","color","email","range","tel","text","oninput","detachEvent","attachEvent","De","node","nextSibling","compareDocumentPosition","HTMLIFrameElement","contentEditable","start","selectionEnd","anchorNode","defaultView","anchorOffset","focusNode","focusOffset","Yb","instance","af","bf","cf","df","passive","Nb","ef","ff","parentWindow","gf","hf","char","jf","kf","lf","mf","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","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","elementType","Vg","implementation","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","documentElement","tagName","fh","gh","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","ph","qh","rh","sh","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","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","createElementNS","createTextNode","Hi","Ii","Ji","Ki","Li","Mi","Ni","Oi","WeakMap","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","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","createRange","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","onCommitFiberRoot","fk","gk","ik","pendingChildren","jk","mutableSourceEagerHydrationData","lk","mk","nk","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","hasAttribute","sk","uk","kk","hk","unstable_observedBits","unmount","querySelectorAll","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","delay","unstable_wrapCallback","define","moment","cachedGuess","zones","links","countries","guesses","logError","momentVersion","major","minor","charCodeToInt","unpackBase60","whole","fractional","multiplier","arrayToInt","mapIndices","indices","unpack","offsets","untils","intToUntil","abbrs","population","Zone","packedString","_set","Country","country_name","zone_names","OffsetAt","timeString","toTimeString","ZoneScore","offsetScore","abbrScore","findChange","low","high","mid","sortZoneScores","localeCompare","addToGuesses","guessesForUserOffsets","guessesOffset","offsetsLength","filteredGuesses","rebuildGuess","intlName","Intl","DateTimeFormat","resolvedOptions","timeZone","normalizeName","zoneScore","change","startYear","userOffsets","zoneScores","getZone","scoreOffsetAt","addZone","packed","normalized","addLink","normal0","normal1","needsOffset","isUnixTimestamp","unpacked","_index","timestamp","zone_name","country_code","offsetNext","offsetPrev","moveAmbiguousForward","moveInvalidForward","offsetAt","dataVersion","_zones","_links","_names","_countries","country_zones","addCountries","zoneExists","didShowError","guess","ignoreCache","zonesForCountry","with_offset","old","abbrWrap","_z","resetZoneWrap","defaultZone","setDefault","YMInitializer","attrs","scriptPath","accounts","containerElement","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","ReactPropTypes","symbol","any","instanceOf","objectOf","oneOf","shape","checkPropTypes","callbackQueue","callbackQueueName","defaultOptions","trackerInstanceName","trackerConstructorName","trackerVersionName","Axios","mergeConfig","createInstance","defaultConfig","axios","instanceConfig","CancelToken","isCancel","all","promises","spread","InterceptorManager","dispatchRequest","validator","validators","interceptors","assertOptions","boolean","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","fulfilled","rejected","responseInterceptorChain","chain","newConfig","onFulfilled","onRejected","getUri","use","eject","transformData","throwIfCancellationRequested","throwIfRequested","reason","fns","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","Item","nextTick","browser","env","argv","versions","addListener","once","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","cwd","chdir","umask","normalizedName","expires","domain","secure","cookie","toGMTString","decodeURIComponent","remove","isAbsoluteURL","combineURLs","requestedURL","relativeURL","ignoreDuplicateOf","parsed","line","originURL","msie","urlParsingNode","resolveURL","protocol","host","hostname","port","requestURL","pkg","thing","deprecatedWarnings","currentVerArr","isOlderVersion","thanVersion","pkgVersionArr","destVer","isDeprecated","formatMessage","opt","desc","schema","allowUnknown","executor","resolvePromise","_assign","_assign2","DESCRIPTORS","getKeys","gOPS","$assign","aLen","getSymbols","isEnum","toLength","toAbsoluteIndex","IS_INCLUDES","$this","toInteger","$getPrototypeOf","fails","KEY","exp","_defineProperty","_defineProperty2","defineProperties","protoProps","staticProps","$Object","_typeof2","_typeof3","$at","iterated","_t","point","TO_STRING","TO_STRING_TAG","DOMIterables","Collection","addToUnscopables","step","_k","Arguments","META","$fails","wks","wksDefine","enumKeys","_create","gOPNExt","$GOPD","$GOPS","$DP","gOPN","$JSON","_stringify","HIDDEN","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","USE_NATIVE","QObject","findChild","setSymbolDesc","protoDesc","wrap","sym","$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","check","buggy","bigint","svgNS","locationHref","_useWebWorker","initialDefaultFrame","setWebWorker","flag","getWebWorker","setLocationHref","getLocationHref","createTag","extendPrototype","sources","destination","sourcePrototype","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","sqrt","bmFloor","bmMax","bmMin","BMMath","ProjectInterface$1","propertyNames","absArr","defaultCurveSegments","degToRads","PI","roundCorner","roundValues","bmRnd","styleDiv","position","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","sr","checkPathProperties","pathData","checkColors","iterateShapes","checkShapes","completeClosingShapes","closed","cl","moduleOb","__complete","completeChars","dataFunctionManager","assetLoader","formatResponse","xhr","contentTypeHeader","getResponseHeader","errorCallback","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","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","wrapper","animType","RendererClass","globalData","defs","setProjectInterface","autoloadSegments","initialSegment","setupAnimation","trigger","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","goToAndStop","isFrame","numValue","Number","frameModifier","goToAndPlay","advanceTime","nextValue","_isComplete","checkSegments","adjustSegment","setSegment","init","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","elem","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","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","interpolateValue","frameNum","caching","offsetTime","propType","pv","keyData","nextKeyData","keyframeMetadata","fnc","iterationIndex","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","atan2","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","PropertyFactory","getProp","sid","slotManager","DynamicPropertyContainer","dynamicProperties","_isAnimated","iterateDynamicProperties","initDynamicPropertyContainer","pointPool","ShapePath","setPathData","setLength","doubleArrayLength","setXYAt","setTripleAt","vX","vY","oX","oY","iX","iY","reverse","newPath","vertices","outPoints","inPoints","cnt","shapePool","shapePath","cloned","ShapeCollection","addShape","releaseShapes","shapeCollectionPool","newShapeCollection","shapeCollection","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","localShapeCollection","shape1","shape2","shapesEqual","ShapeProperty","reset","KeyframedShapeProperty","EllShapeProperty","cPoint","EllShapePropertyFactory","convertEllToPath","p0","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","transform","a2","b2","d2","e2","f2","g2","h2","i2","j2","k2","l2","m2","n2","o2","_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","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","_typeof$3","lottie","setLocation","setSubframeRendering","setPrefix","setQuality","inBrowser","installPlugin","plugin","getFactory","checkReady","readyStateCheckInterval","getQueryVariable","variable","vars","pair","useWebWorker","setIDPrefix","__getFactory","scripts","myScript","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","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","right","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","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","currentV","currentI","currentO","closerV","distance","newPosPerc","derivative","denom","tcusp","square","p10","p11","p20","p21","bounds","bottom","shapeSegmentInverted","pointsType","ml","inputBezier","multiSegments","lastSeg","multiSegment","FontManager","emptyChar","combinedCharacters","BLACK_FLAG_CODE_POINT","REGIONAL_CHARACTER_A_CODE_POINT","REGIONAL_CHARACTER_Z_CODE_POINT","surrogateModifiers","setUpNode","font","family","fontFamily","fontSize","fontVariant","fontStyle","letterSpacing","offsetWidth","familyArray","enabledFamilies","trimFontOptions","parent","createHelper","helper","engine","fontProps","tHelper","fFamily","fClass","tCanvasHelper","OffscreenCanvas","measureText","getComputedTextLength","getCodePoint","codePoint","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","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","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","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","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","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","currentIndex","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","indexes","fs","rn","totalChars","newInd","currentInd","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorProp","TextSelectorPropFactory","_currentTextLength","finalS","finalE","sm","getMult","textProperty","easer","tot","smoothness","newCharsFlag","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","buildColor","colorData","emptyProp","validateText","buildNewText","emptyShapeData","SVGTextLottieElement","textSpans","ISolidElement","NullElement","SVGRendererBase","ICompElement","SVGCompElement","supports3d","SVGRenderer","svgElement","titleElement","titleId","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","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","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","mozTransformOrigin","setContext","isDashed","elementWidth","elementHeight","elementRel","animationRel","fillType","duplicate","newLength","forceRestore","currentContext","prevStack","saveOnNativeFlag","currentStack","newStack","setOpacity","trProps","checkBlendMode","transformedElementStyle","matrixValue","webkitTransform","addEffects","backgroundColor","_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","nodecrypto","rngname","startdenom","significance","ARC4","keylen","copy","flatten","typ","mixkey","seed","smear","stringseed","tostring","shortseed","entropy","randomBytes","crypto","msCrypto","getRandomValues","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","$bm_sum","$bm_sub","$bm_mul","$bm_div","$bm_mod","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","normalize","vec","rgbToHsl","hue2rgb","hslToRgb","linear","tMin","tMax","value1","value2","_tMin","rnd","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","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","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","_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","lastKeyFrame","initV","endV","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","sampleFrequency","getTransformValueAtTime","_transformCachingAtTime","rotationZ","rotationY","rotationX","orientation","positionX","positionY","positionZ","getTransformStaticValueAtTime","propertyGetProp","ShapePropertyConstructorFunction","getConstructorFunction","KeyframedShapePropertyConstructorFunction","getKeyframedConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","initIndex","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","tangentOnPath","normalOnPath","shapeValue","lastTime","propertyGetShapeProp","trims","initialize$1","addDecorator","getExpressionValue","calculateExpression","isKeyframed","hasExpressions","initialize","SVGComposableEffect","createMergeNode","resultId","ins","feMergeNode","feMerge","linearFilterValue","SVGTintFilter","linearFilter","matrixFilter","SVGFillFilter","SVGStrokeEffect","initialized","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","globalFilterSize","feGaussianBlur","feOffset","feFlood","feComposite","colorBlack","colorWhite","groupPath","elemChildren","childNodes","pathMasker","dasharrayValue","getTotalLength","lineLength","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__","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","defaultBreakpoints","const","defaultTheme","space","fontSizes","mt","mr","mx","my","pl","multiples","marginX","marginY","paddingX","paddingY","scales","borderColor","caretColor","columnRuleColor","marginTop","marginRight","marginBottom","marginLeft","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","gridGap","gridColumnGap","gridRowGap","gap","columnGap","rowGap","border","borderTop","borderRight","borderBottom","borderLeft","borderWidth","borderStyle","borderRadius","borderTopRightRadius","borderTopLeftRadius","borderBottomRightRadius","borderBottomLeftRadius","borderTopWidth","borderTopColor","borderTopStyle","borderBottomWidth","borderBottomColor","borderBottomStyle","borderLeftWidth","borderLeftColor","borderLeftStyle","borderRightWidth","borderRightColor","borderRightStyle","outlineColor","boxShadow","textShadow","minWidth","maxWidth","minHeight","maxHeight","flexBasis","positiveOrNegative","absolute","css","theme","breakpoints","mediaQueries","let","media","responsive","scaleName","dirs","variant","memoize","reactPropsRegex","createMediaQuery","undef","createParser","shouldSort","isCacheDisabled","disableStyledSystemCache","raw","parseResponsiveStyle","parseResponsiveObject","numeric","sensitivity","propNames","_createParser","breakpoint","_assign3","createStyleFunction","_ref$transform","defaultScale","system","conf","compose","parsers","layout","overflowX","overflowY","verticalAlign","typography","textAlign","flexbox","alignItems","alignContent","justifyItems","justifyContent","flexWrap","flexDirection","justifySelf","alignSelf","grid","gridAutoFlow","gridAutoColumns","gridAutoRows","gridTemplateColumns","gridTemplateRows","gridTemplateAreas","borderX","borderY","background","backgroundImage","backgroundSize","backgroundPosition","backgroundRepeat","bgImage","bgSize","bgPosition","bgRepeat","getMargin","isNegative","configs","shadow","acc","curr","_extends2","_ref$prop","_ref$variants","variants","textStyle","colorStyle","createShouldForwardProp","isPropValid","StyleSheet","isSpeedy","speedy","tags","ctr","nonce","before","insert","_tag","sheet","styleSheets","ownerNode","sheetForTag","isImportRule","insertRule","cssRules","stylis_min","needle","toSheet","Sheet","ruleSheet","selectors","parents","column","ns","createCache","stylisOptions","stylis","Stylis","inserted","head","_insert","stylisPlugins","selector","serialized","shouldCache","registered","getRegisteredStyles","registeredStyles","classNames","rawClassName","insertStyles","isStringTag","murmur2","unitlessKeys","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","WebkitLineClamp","hyphenateRegex","animationRegex","isCustomProperty","isProcessableValue","processStyleName","styleName","processStyleValue","cursor","unitless","handleInterpolation","mergedProps","interpolation","couldBeSelectorInterpolation","__emotion_styles","interpolated","createStringFromObject","previousCursor","cached","labelPattern","serializeStyles","stringMode","strings","identifierName","hashString","EmotionCacheContext","HTMLElement","ThemeContext","withEmotionCache","cls","toAdd","_len2","_key2","ele","testOmitPropsOnStringTag","testOmitPropsOnComponent","getDefaultShouldForwardProp","ownKeys","enumerableOnly","createStyled","shouldForwardProp","targetClassName","label","__emotion_forwardProp","isReal","__emotion_real","__emotion_base","defaultShouldForwardProp","shouldUseAs","Styled","finalTag","classInterpolations","finalShouldForwardProp","newProps","withComponent","nextTag","nextOptions","getOwnPropertyDescriptors","_objectSpread","newStyled","styled","Box","boxSizing","__themeKey","widthToColumns","countToColumns","__css","appearance","textDecoration","Label","Input","xmlns","viewBox","getProps","MRE","omitMargin","DownArrow","SVG","pointerEvents","RadioChecked","RadioUnchecked","RadioIcon","Radio","CheckboxChecked","CheckboxUnchecked","CheckboxIcon","thumb","htmlFor","spin","insertable","animationTimingFunction","animationDuration","whiteSpace","IconButton","ratio","frameBorder","allowFullScreen","allow","AspectRatio","objectFit","MenuIcon"],"mappings":"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","file":"static/js/2.fa9f20e1.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","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","export default function _extends() {\n _extends = Object.assign || 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 };\n\n return _extends.apply(this, arguments);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\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 if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) this.unlisten();\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) && children.length === 0) {\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 invariant from \"tiny-invariant\";\n\nimport Context 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(Context).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(Context).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(Context).match;\n\n return path ? matchPath(location.pathname, path) : match;\n}\n","/*\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","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\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 throw new Error(prefix + \": \" + (message || ''));\n}\n\nexport default invariant;\n","export default function _extends() {\n _extends = Object.assign || 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 };\n\n return _extends.apply(this, arguments);\n}","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 core = module.exports = { version: '2.6.11' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","export default function _extends() {\n _extends = Object.assign || 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 };\n\n return _extends.apply(this, arguments);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\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 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 method = replace ? 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\",\n activeStyle,\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 const className = isActive\n ? joinClassnames(classNameProp, activeClassName)\n : classNameProp;\n const style = isActive ? { ...styleProp, ...activeStyle } : styleProp;\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 ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.object\n };\n}\n\nexport default NavLink;\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","module.exports=function(e){var t={};function r(n){if(t[n])return t[n].exports;var a=t[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,r),a.l=!0,a.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var a in e)r.d(n,a,function(t){return e[t]}.bind(null,a));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\"\",r(r.s=9)}([function(e,t){e.exports=require(\"react\")},function(e,t,r){var n;\n/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/!function(){\"use strict\";var r={}.hasOwnProperty;function a(){for(var e=[],t=0;t=o?a:o)),r=a,t=g(t),e.slice(r,r+t.length)==t}}).call(this,r(3))},function(e,t){var r;r=function(){return this}();try{r=r||new Function(\"return this\")()}catch(e){\"object\"==typeof window&&(r=window)}e.exports=r},function(e,t,r){(function(t){var r=\"Expected a function\",n=\"__lodash_hash_undefined__\",a=\"[object Function]\",o=\"[object GeneratorFunction]\",i=/^\\[object .+?Constructor\\]$/,u=\"object\"==typeof t&&t&&t.Object===Object&&t,c=\"object\"==typeof self&&self&&self.Object===Object&&self,s=u||c||Function(\"return this\")();var l,f=Array.prototype,d=Function.prototype,p=Object.prototype,h=s[\"__core-js_shared__\"],m=(l=/[^.]+$/.exec(h&&h.keys&&h.keys.IE_PROTO||\"\"))?\"Symbol(src)_1.\"+l:\"\",y=d.toString,b=p.hasOwnProperty,g=p.toString,v=RegExp(\"^\"+y.call(b).replace(/[\\\\^$.*+?()[\\]{}|]/g,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\"),C=f.splice,_=E(s,\"Map\"),w=E(Object,\"create\");function S(e){var t=-1,r=e?e.length:0;for(this.clear();++t-1},j.prototype.set=function(e,t){var r=this.__data__,n=O(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},x.prototype.clear=function(){this.__data__={hash:new S,map:new(_||j),string:new S}},x.prototype.delete=function(e){return N(this,e).delete(e)},x.prototype.get=function(e){return N(this,e).get(e)},x.prototype.has=function(e){return N(this,e).has(e)},x.prototype.set=function(e,t){return N(this,e).set(e,t),this},T.Cache=x,e.exports=T}).call(this,r(3))},function(e,t,r){(function(t){var r=\"Expected a function\",n=NaN,a=\"[object Symbol]\",o=/^\\s+|\\s+$/g,i=/^[-+]0x[0-9a-f]+$/i,u=/^0b[01]+$/i,c=/^0o[0-7]+$/i,s=parseInt,l=\"object\"==typeof t&&t&&t.Object===Object&&t,f=\"object\"==typeof self&&self&&self.Object===Object&&self,d=l||f||Function(\"return this\")(),p=Object.prototype.toString,h=Math.max,m=Math.min,y=function(){return d.Date.now()};function b(e){var t=typeof e;return!!e&&(\"object\"==t||\"function\"==t)}function g(e){if(\"number\"==typeof e)return e;if(function(e){return\"symbol\"==typeof e||function(e){return!!e&&\"object\"==typeof e}(e)&&p.call(e)==a}(e))return n;if(b(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=b(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(o,\"\");var r=u.test(e);return r||c.test(e)?s(e.slice(2),r?2:8):i.test(e)?n:+e}e.exports=function(e,t,n){var a,o,i,u,c,s,l=0,f=!1,d=!1,p=!0;if(\"function\"!=typeof e)throw new TypeError(r);function v(t){var r=a,n=o;return a=o=void 0,l=t,u=e.apply(n,r)}function C(e){var r=e-s;return void 0===s||r>=t||r<0||d&&e-l>=i}function _(){var e=y();if(C(e))return w(e);c=setTimeout(_,function(e){var r=t-(e-s);return d?m(r,i-(e-l)):r}(e))}function w(e){return c=void 0,p&&a?v(e):(a=o=void 0,u)}function S(){var e=y(),r=C(e);if(a=arguments,o=this,s=e,r){if(void 0===c)return function(e){return l=e,c=setTimeout(_,t),f?v(e):u}(s);if(d)return c=setTimeout(_,t),v(s)}return void 0===c&&(c=setTimeout(_,t)),u}return t=g(t)||0,b(n)&&(f=!!n.leading,i=(d=\"maxWait\"in n)?h(g(n.maxWait)||0,t):i,p=\"trailing\"in n?!!n.trailing:p),S.cancel=function(){void 0!==c&&clearTimeout(c),l=0,a=s=o=c=void 0},S.flush=function(){return void 0===c?u:w(y())},S}}).call(this,r(3))},function(e,t,r){(function(e,r){var n=200,a=\"Expected a function\",o=\"__lodash_hash_undefined__\",i=1,u=2,c=1/0,s=9007199254740991,l=\"[object Arguments]\",f=\"[object Array]\",d=\"[object Boolean]\",p=\"[object Date]\",h=\"[object Error]\",m=\"[object Function]\",y=\"[object GeneratorFunction]\",b=\"[object Map]\",g=\"[object Number]\",v=\"[object Object]\",C=\"[object RegExp]\",_=\"[object Set]\",w=\"[object String]\",S=\"[object Symbol]\",j=\"[object ArrayBuffer]\",x=\"[object DataView]\",O=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,k=/^\\w*$/,N=/^\\./,E=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,T=/\\\\(\\\\)?/g,I=/^\\[object .+?Constructor\\]$/,A=/^(?:0|[1-9]\\d*)$/,D={};D[\"[object Float32Array]\"]=D[\"[object Float64Array]\"]=D[\"[object Int8Array]\"]=D[\"[object Int16Array]\"]=D[\"[object Int32Array]\"]=D[\"[object Uint8Array]\"]=D[\"[object Uint8ClampedArray]\"]=D[\"[object Uint16Array]\"]=D[\"[object Uint32Array]\"]=!0,D[l]=D[f]=D[j]=D[d]=D[x]=D[p]=D[h]=D[m]=D[b]=D[g]=D[v]=D[C]=D[_]=D[w]=D[\"[object WeakMap]\"]=!1;var P=\"object\"==typeof e&&e&&e.Object===Object&&e,F=\"object\"==typeof self&&self&&self.Object===Object&&self,M=P||F||Function(\"return this\")(),L=t&&!t.nodeType&&t,R=L&&\"object\"==typeof r&&r&&!r.nodeType&&r,z=R&&R.exports===L&&P.process,B=function(){try{return z&&z.binding(\"util\")}catch(e){}}(),G=B&&B.isTypedArray;function $(e,t,r,n){var a=-1,o=e?e.length:0;for(n&&o&&(r=e[++a]);++a-1},Oe.prototype.set=function(e,t){var r=this.__data__,n=Ie(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},ke.prototype.clear=function(){this.__data__={hash:new xe,map:new(de||Oe),string:new xe}},ke.prototype.delete=function(e){return Ue(this,e).delete(e)},ke.prototype.get=function(e){return Ue(this,e).get(e)},ke.prototype.has=function(e){return Ue(this,e).has(e)},ke.prototype.set=function(e,t){return Ue(this,e).set(e,t),this},Ne.prototype.add=Ne.prototype.push=function(e){return this.__data__.set(e,o),this},Ne.prototype.has=function(e){return this.__data__.has(e)},Ee.prototype.clear=function(){this.__data__=new Oe},Ee.prototype.delete=function(e){return this.__data__.delete(e)},Ee.prototype.get=function(e){return this.__data__.get(e)},Ee.prototype.has=function(e){return this.__data__.has(e)},Ee.prototype.set=function(e,t){var r=this.__data__;if(r instanceof Oe){var a=r.__data__;if(!de||a.lengths))return!1;var f=o.get(e);if(f&&o.get(t))return f==t;var d=-1,p=!0,h=a&i?new Ne:void 0;for(o.set(e,t),o.set(t,e);++d-1&&e%1==0&&e-1&&e%1==0&&e<=s}function ut(e){var t=typeof e;return!!e&&(\"object\"==t||\"function\"==t)}function ct(e){return!!e&&\"object\"==typeof e}function st(e){return\"symbol\"==typeof e||ct(e)&&ae.call(e)==S}var lt=G?function(e){return function(t){return e(t)}}(G):function(e){return ct(e)&&it(e.length)&&!!D[ae.call(e)]};function ft(e){return at(e)?Te(e):Ge(e)}function dt(e){return e}r.exports=function(e,t,r){var n=nt(e)?$:U,a=arguments.length<3;return n(e,Be(t),r,a,Pe)}}).call(this,r(3),r(7)(e))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,\"loaded\",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,\"id\",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t){String.prototype.padEnd||(String.prototype.padEnd=function(e,t){return e>>=0,t=String(void 0!==t?t:\" \"),this.length>e?String(this):((e-=this.length)>t.length&&(t+=t.repeat(e/t.length)),String(this)+t.slice(0,e))})},function(e,t,r){\"use strict\";function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}function o(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t0?(o.mainCode=!0,c||\"Array\"===t.constructor.name&&t.includes(e[2])?(o.hasAreaCodes=!0,[o].concat(u)):(s=s.concat(u),[o])):[o]})))),s]}function A(e,t,r,n){if(null!==r){var a=Object.keys(r),o=Object.values(r);a.forEach((function(r,a){if(n)return e.push([r,o[a]]);var i=e.findIndex((function(e){return e[0]===r}));if(-1===i){var u=[r];u[t]=o[a],e.push(u)}else e[i][t]=o[a]}))}}function D(e,t){return 0===t.length?e:e.map((function(e){var r=t.findIndex((function(t){return t[0]===e[2]}));if(-1===r)return e;var n=t[r];return n[1]&&(e[4]=n[1]),n[3]&&(e[5]=n[3]),n[2]&&(e[6]=n[2]),e}))}var P=function e(t,r,n,a,i,u,s,l,f,d,p,h,m,y){c(this,e),this.filterRegions=function(e,t){if(\"string\"==typeof e){var r=e;return t.filter((function(e){return e.regions.some((function(e){return e===r}))}))}return t.filter((function(t){return e.map((function(e){return t.regions.some((function(t){return t===e}))})).some((function(e){return e}))}))},this.sortTerritories=function(e,t){var r=[].concat(o(e),o(t));return r.sort((function(e,t){return e.namet.name?1:0})),r},this.getFilteredCountryList=function(e,t,r){return 0===e.length?t:r?e.map((function(e){var r=t.find((function(t){return t.iso2===e}));if(r)return r})).filter((function(e){return e})):t.filter((function(t){return e.some((function(e){return e===t.iso2}))}))},this.localizeCountries=function(e,t,r){for(var n=0;nt.localName?1:0})),e},this.getCustomAreas=function(e,t){for(var r=[],n=0;nt.dialCode.length)return r;if(r.dialCode.length===t.dialCode.length&&r.priority=\"0\"&&e.indexOf(0)<=\"9\"?n.find((function(t){return t.dialCode==+e})):n.find((function(t){return t.iso2==e})))&&t.dialCode&&r.setState({selectedCountry:t,formattedNumber:r.props.disableCountryCode?\"\":r.formatNumber(t.dialCode,t)})},r.scrollTo=function(e,t){if(e){var n=r.dropdownRef;if(n&&document.body){var a=n.offsetHeight,o=n.getBoundingClientRect().top+document.body.scrollTop,i=o+a,u=e,c=u.getBoundingClientRect(),s=u.offsetHeight,l=c.top+document.body.scrollTop,f=l+s,d=l-o+n.scrollTop,p=a/2-s/2;if(r.props.enableSearch?li){t&&(d+=p);var h=a-s;n.scrollTop=d-h}}}},r.scrollToTop=function(){var e=r.dropdownRef;e&&document.body&&(e.scrollTop=0)},r.formatNumber=function(e,t){if(!t)return e;var n,o=t.format,c=r.props,s=c.disableCountryCode,l=c.enableAreaCodeStretch,f=c.enableLongNumbers,d=c.autoFormat;if(s?((n=o.split(\" \")).shift(),n=n.join(\" \")):l&&t.isAreaCode?((n=o.split(\" \"))[1]=n[1].replace(/\\.+/,\"\".padEnd(t.areaCodeLength,\".\")),n=n.join(\" \")):n=o,!e||0===e.length)return s?\"\":r.props.prefix;if(e&&e.length<2||!n||!d)return s?e:r.props.prefix+e;var p,h=w()(n,(function(e,t){if(0===e.remainingText.length)return e;if(\".\"!==t)return{formattedText:e.formattedText+t,remainingText:e.remainingText};var r,n=i(r=e.remainingText)||a(r)||u(),o=n[0],c=n.slice(1);return{formattedText:e.formattedText+o,remainingText:c}}),{formattedText:\"\",remainingText:e.split(\"\")});return(p=f?h.formattedText+h.remainingText.join(\"\"):h.formattedText).includes(\"(\")&&!p.includes(\")\")&&(p+=\")\"),p},r.cursorToEnd=function(){var e=r.numberInputRef;e.focus();var t=e.value.length;\")\"===e.value.charAt(t-1)&&(t-=1),e.setSelectionRange(t,t)},r.getElement=function(e){return r[\"flag_no_\".concat(e)]},r.getCountryData=function(){return r.state.selectedCountry?{name:r.state.selectedCountry.name||\"\",dialCode:r.state.selectedCountry.dialCode||\"\",countryCode:r.state.selectedCountry.iso2||\"\",format:r.state.selectedCountry.format||\"\"}:{}},r.handleFlagDropdownClick=function(e){if(e.preventDefault(),r.state.showDropdown||!r.props.disabled){var t=r.state,n=t.preferredCountries,a=t.selectedCountry,o=n.concat(r.state.onlyCountries).findIndex((function(e){return e.dialCode===a.dialCode&&e.iso2===a.iso2}));r.setState({showDropdown:!r.state.showDropdown,highlightCountryIndex:o},(function(){r.state.showDropdown&&r.scrollTo(r.getElement(r.state.highlightCountryIndex))}))}},r.handleInput=function(e){var t=e.target.value,n=r.props,a=n.prefix,o=n.onChange,i=r.props.disableCountryCode?\"\":a,u=r.state.selectedCountry,c=r.state.freezeSelection;if(!r.props.countryCodeEditable){var s=a+(u.hasAreaCodes?r.state.onlyCountries.find((function(e){return e.iso2===u.iso2&&e.mainCode})).dialCode:u.dialCode);if(t.slice(0,s.length)!==s)return}if(t===a)return o&&o(\"\",r.getCountryData(),e,\"\"),r.setState({formattedNumber:\"\"});if(t.replace(/\\D/g,\"\").length>15){if(!1===r.props.enableLongNumbers)return;if(\"number\"==typeof r.props.enableLongNumbers&&t.replace(/\\D/g,\"\").length>r.props.enableLongNumbers)return}if(t!==r.state.formattedNumber){e.preventDefault?e.preventDefault():e.returnValue=!1;var l=r.props.country,f=r.state,d=f.onlyCountries,p=f.selectedCountry,h=f.hiddenAreaCodes;if(o&&e.persist(),t.length>0){var m=t.replace(/\\D/g,\"\");(!r.state.freezeSelection||p.dialCode.length>m.length)&&(u=r.props.disableCountryGuess?p:r.guessSelectedCountry(m.substring(0,6),l,d,h)||p,c=!1),i=r.formatNumber(m,u),u=u.dialCode?u:p}var y=e.target.selectionStart,b=r.state.formattedNumber,g=i.length-b.length;r.setState({formattedNumber:i,freezeSelection:c,selectedCountry:u},(function(){g>0&&(y-=g),\")\"==i.charAt(i.length-1)?r.numberInputRef.setSelectionRange(i.length-1,i.length-1):y>0&&b.length>=i.length&&r.numberInputRef.setSelectionRange(y,y),o&&o(i.replace(/[^0-9]+/g,\"\"),r.getCountryData(),e,i)}))}},r.handleInputClick=function(e){r.setState({showDropdown:!1}),r.props.onClick&&r.props.onClick(e,r.getCountryData())},r.handleDoubleClick=function(e){var t=e.target.value.length;e.target.setSelectionRange(0,t)},r.handleFlagItemClick=function(e,t){var n=r.state.selectedCountry,a=r.state.onlyCountries.find((function(t){return t==e}));if(a){var o=r.state.formattedNumber.replace(\" \",\"\").replace(\"(\",\"\").replace(\")\",\"\").replace(\"-\",\"\"),i=o.length>1?o.replace(n.dialCode,a.dialCode):a.dialCode,u=r.formatNumber(i.replace(/\\D/g,\"\"),a);r.setState({showDropdown:!1,selectedCountry:a,freezeSelection:!0,formattedNumber:u},(function(){r.cursorToEnd(),r.props.onChange&&r.props.onChange(u.replace(/[^0-9]+/g,\"\"),r.getCountryData(),t,u)}))}},r.handleInputFocus=function(e){r.numberInputRef&&r.numberInputRef.value===r.props.prefix&&r.state.selectedCountry&&!r.props.disableCountryCode&&r.setState({formattedNumber:r.props.prefix+r.state.selectedCountry.dialCode},(function(){r.props.jumpCursorToEnd&&setTimeout(r.cursorToEnd,0)})),r.setState({placeholder:\"\"}),r.props.onFocus&&r.props.onFocus(e,r.getCountryData()),r.props.jumpCursorToEnd&&setTimeout(r.cursorToEnd,0)},r.handleInputBlur=function(e){e.target.value||r.setState({placeholder:r.props.placeholder}),r.props.onBlur&&r.props.onBlur(e,r.getCountryData())},r.handleInputCopy=function(e){if(r.props.copyNumbersOnly){var t=window.getSelection().toString().replace(/[^0-9]+/g,\"\");e.clipboardData.setData(\"text/plain\",t),e.preventDefault()}},r.getHighlightCountryIndex=function(e){var t=r.state.highlightCountryIndex+e;return t<0||t>=r.state.onlyCountries.length+r.state.preferredCountries.length?t-e:r.props.enableSearch&&t>r.getSearchFilteredCountries().length?0:t},r.searchCountry=function(){var e=r.getProbableCandidate(r.state.queryString)||r.state.onlyCountries[0],t=r.state.onlyCountries.findIndex((function(t){return t==e}))+r.state.preferredCountries.length;r.scrollTo(r.getElement(t),!0),r.setState({queryString:\"\",highlightCountryIndex:t})},r.handleKeydown=function(e){var t=r.props.keys,n=e.target.className;if(n.includes(\"selected-flag\")&&e.which===t.ENTER&&!r.state.showDropdown)return r.handleFlagDropdownClick(e);if(n.includes(\"form-control\")&&(e.which===t.ENTER||e.which===t.ESC))return e.target.blur();if(r.state.showDropdown&&!r.props.disabled&&(!n.includes(\"search-box\")||e.which===t.UP||e.which===t.DOWN||e.which===t.ENTER||e.which===t.ESC&&\"\"===e.target.value)){e.preventDefault?e.preventDefault():e.returnValue=!1;var a=function(e){r.setState({highlightCountryIndex:r.getHighlightCountryIndex(e)},(function(){r.scrollTo(r.getElement(r.state.highlightCountryIndex),!0)}))};switch(e.which){case t.DOWN:a(1);break;case t.UP:a(-1);break;case t.ENTER:r.props.enableSearch?r.handleFlagItemClick(r.getSearchFilteredCountries()[r.state.highlightCountryIndex]||r.getSearchFilteredCountries()[0],e):r.handleFlagItemClick([].concat(o(r.state.preferredCountries),o(r.state.onlyCountries))[r.state.highlightCountryIndex],e);break;case t.ESC:case t.TAB:r.setState({showDropdown:!1},r.cursorToEnd);break;default:(e.which>=t.A&&e.which<=t.Z||e.which===t.SPACE)&&r.setState({queryString:r.state.queryString+String.fromCharCode(e.which)},r.state.debouncedQueryStingSearcher)}}},r.handleInputKeyDown=function(e){var t=r.props,n=t.keys,a=t.onEnterKeyPress,o=t.onKeyDown;e.which===n.ENTER&&a&&a(e),o&&o(e)},r.handleClickOutside=function(e){r.dropdownRef&&!r.dropdownContainerRef.contains(e.target)&&r.state.showDropdown&&r.setState({showDropdown:!1})},r.handleSearchChange=function(e){var t=e.currentTarget.value,n=r.state,a=n.preferredCountries,o=n.selectedCountry,i=0;if(\"\"===t&&o){var u=r.state.onlyCountries;i=a.concat(u).findIndex((function(e){return e==o})),setTimeout((function(){return r.scrollTo(r.getElement(i))}),100)}r.setState({searchValue:t,highlightCountryIndex:i})},r.getDropdownCountryName=function(e){return e.localName||e.name},r.getSearchFilteredCountries=function(){var e=r.state,t=e.preferredCountries,n=e.onlyCountries,a=e.searchValue,i=r.props.enableSearch,u=t.concat(n),c=a.trim().toLowerCase();if(i&&c){if(/^\\d+$/.test(c))return u.filter((function(e){var t=e.dialCode;return[\"\".concat(t)].some((function(e){return e.toLowerCase().includes(c)}))}));var s=u.filter((function(e){var t=e.iso2;return[\"\".concat(t)].some((function(e){return e.toLowerCase().includes(c)}))})),l=u.filter((function(e){var t=e.name,r=e.localName;e.iso2;return[\"\".concat(t),\"\".concat(r||\"\")].some((function(e){return e.toLowerCase().includes(c)}))}));return r.scrollToTop(),o(new Set([].concat(s,l)))}return u},r.getCountryDropdownList=function(){var e,t=r.state,a=t.preferredCountries,o=t.highlightCountryIndex,i=t.showDropdown,u=t.searchValue,c=r.props,s=c.disableDropdown,l=c.prefix,f=r.props,d=f.enableSearch,p=f.searchNotFound,h=f.disableSearchIcon,m=f.searchClass,b=f.searchStyle,g=f.searchPlaceholder,v=f.autocompleteSearch,C=r.getSearchFilteredCountries().map((function(e,t){var n=o===t,a=O()({country:!0,preferred:\"us\"===e.iso2||\"gb\"===e.iso2,active:\"us\"===e.iso2,highlight:n}),i=\"flag \".concat(e.iso2);return y.a.createElement(\"li\",Object.assign({ref:function(e){return r[\"flag_no_\".concat(t)]=e},key:\"flag_no_\".concat(t),\"data-flag-key\":\"flag_no_\".concat(t),className:a,\"data-dial-code\":\"1\",tabIndex:s?\"-1\":\"0\",\"data-country-code\":e.iso2,onClick:function(t){return r.handleFlagItemClick(e,t)},role:\"option\"},n?{\"aria-selected\":!0}:{}),y.a.createElement(\"div\",{className:i}),y.a.createElement(\"span\",{className:\"country-name\"},r.getDropdownCountryName(e)),y.a.createElement(\"span\",{className:\"dial-code\"},e.format?r.formatNumber(e.dialCode,e):l+e.dialCode))})),_=y.a.createElement(\"li\",{key:\"dashes\",className:\"divider\"});a.length>0&&(!d||d&&!u.trim())&&C.splice(a.length,0,_);var w=O()((n(e={},r.props.dropdownClass,!0),n(e,\"country-list\",!0),n(e,\"hide\",!i),e));return y.a.createElement(\"ul\",{ref:function(e){return!d&&e&&e.focus(),r.dropdownRef=e},className:w,style:r.props.dropdownStyle,role:\"listbox\",tabIndex:\"0\"},d&&y.a.createElement(\"li\",{className:O()(n({search:!0},m,m))},!h&&y.a.createElement(\"span\",{className:O()(n({\"search-emoji\":!0},\"\".concat(m,\"-emoji\"),m)),role:\"img\",\"aria-label\":\"Magnifying glass\"},\"🔎\"),y.a.createElement(\"input\",{className:O()(n({\"search-box\":!0},\"\".concat(m,\"-box\"),m)),style:b,type:\"search\",placeholder:g,autoFocus:!0,autoComplete:v?\"on\":\"off\",value:u,onChange:r.handleSearchChange})),C.length>0?C:y.a.createElement(\"li\",{className:\"no-entries-message\"},y.a.createElement(\"span\",null,p)))};var s,l=new P(e.enableAreaCodes,e.enableTerritories,e.regions,e.onlyCountries,e.preferredCountries,e.excludeCountries,e.preserveOrder,e.masks,e.priority,e.areaCodes,e.localization,e.prefix,e.defaultMask,e.alwaysDefaultMask),h=l.onlyCountries,m=l.preferredCountries,b=l.hiddenAreaCodes,v=e.value?e.value.replace(/\\D/g,\"\"):\"\";s=e.disableInitialCountryGuess?0:v.length>1?r.guessSelectedCountry(v.substring(0,6),e.country,h,b)||0:e.country&&h.find((function(t){return t.iso2==e.country}))||0;var _,S=v.length<2&&s&&!j()(v,s.dialCode)?s.dialCode:\"\";_=\"\"===v&&0===s?\"\":r.formatNumber((e.disableCountryCode?\"\":S)+v,s.name?s:void 0);var x=h.findIndex((function(e){return e==s}));return r.state={showDropdown:e.showDropdown,formattedNumber:_,onlyCountries:h,preferredCountries:m,hiddenAreaCodes:b,selectedCountry:s,highlightCountryIndex:x,queryString:\"\",freezeSelection:!1,debouncedQueryStingSearcher:g()(r.searchCountry,250),searchValue:\"\"},r}var r,l,m;return 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}}),t&&h(e,t)}(t,e),r=t,(l=[{key:\"componentDidMount\",value:function(){document.addEventListener&&this.props.enableClickOutside&&document.addEventListener(\"mousedown\",this.handleClickOutside)}},{key:\"componentWillUnmount\",value:function(){document.removeEventListener&&this.props.enableClickOutside&&document.removeEventListener(\"mousedown\",this.handleClickOutside)}},{key:\"componentDidUpdate\",value:function(e,t,r){e.country!==this.props.country?this.updateCountry(this.props.country):e.value!==this.props.value&&this.updateFormattedNumber(this.props.value)}},{key:\"updateFormattedNumber\",value:function(e){if(null===e)return this.setState({selectedCountry:0,formattedNumber:\"\"});var t=this.state,r=t.onlyCountries,n=t.selectedCountry,a=t.hiddenAreaCodes,o=this.props,i=o.country,u=o.prefix;if(\"\"===e)return this.setState({selectedCountry:n,formattedNumber:\"\"});var c,s,l=e.replace(/\\D/g,\"\");if(n&&j()(e,u+n.dialCode))s=this.formatNumber(l,n),this.setState({formattedNumber:s});else{var f=(c=this.props.disableCountryGuess?n:this.guessSelectedCountry(l.substring(0,6),i,r,a)||n)&&j()(l,u+c.dialCode)?c.dialCode:\"\";s=this.formatNumber((this.props.disableCountryCode?\"\":f)+l,c||void 0),this.setState({selectedCountry:c,formattedNumber:s})}}},{key:\"render\",value:function(){var e,t,r,a,o,i=this,u=this.state,c=u.onlyCountries,s=u.selectedCountry,l=u.showDropdown,f=u.formattedNumber,d=u.hiddenAreaCodes,p=this.props,h=p.disableDropdown,m=p.renderStringAsFlag,b=p.isValid,g=p.defaultErrorMessage,v=p.specialLabel;if(\"boolean\"==typeof b)a=b;else{var C=b(f.replace(/\\D/g,\"\"),s,c,d);\"boolean\"==typeof C?!1===(a=C)&&(o=g):(a=!1,o=C)}var _=O()((n(e={},this.props.containerClass,!0),n(e,\"react-tel-input\",!0),e)),w=O()({arrow:!0,up:l}),S=O()((n(t={},this.props.inputClass,!0),n(t,\"form-control\",!0),n(t,\"invalid-number\",!a),n(t,\"open\",l),t)),j=O()({\"selected-flag\":!0,open:l}),x=O()((n(r={},this.props.buttonClass,!0),n(r,\"flag-dropdown\",!0),n(r,\"invalid-number\",!a),n(r,\"open\",l),r)),k=\"flag \".concat(s&&s.iso2);return y.a.createElement(\"div\",{className:_,style:this.props.style||this.props.containerStyle,onKeyDown:this.handleKeydown},v&&y.a.createElement(\"div\",{className:\"special-label\"},v),o&&y.a.createElement(\"div\",{className:\"invalid-number-message\"},o),y.a.createElement(\"input\",Object.assign({className:S,style:this.props.inputStyle,onChange:this.handleInput,onClick:this.handleInputClick,onDoubleClick:this.handleDoubleClick,onFocus:this.handleInputFocus,onBlur:this.handleInputBlur,onCopy:this.handleInputCopy,value:f,ref:function(e){return i.numberInputRef=e},onKeyDown:this.handleInputKeyDown,placeholder:this.props.placeholder,disabled:this.props.disabled,type:\"tel\"},this.props.inputProps)),y.a.createElement(\"div\",{className:x,style:this.props.buttonStyle,ref:function(e){return i.dropdownContainerRef=e}},m?y.a.createElement(\"div\",{className:j},m):y.a.createElement(\"div\",{onClick:h?void 0:this.handleFlagDropdownClick,className:j,title:s?\"\".concat(s.name,\": + \").concat(s.dialCode):\"\",tabIndex:h?\"-1\":\"0\",role:\"button\",\"aria-haspopup\":\"listbox\",\"aria-expanded\":!!l||void 0},y.a.createElement(\"div\",{className:k},!h&&y.a.createElement(\"div\",{className:w}))),l&&this.getCountryDropdownList()))}}])&&s(r.prototype,l),m&&s(r,m),t}(y.a.Component);F.defaultProps={country:\"\",value:\"\",onlyCountries:[],preferredCountries:[],excludeCountries:[],placeholder:\"1 (702) 123-4567\",searchPlaceholder:\"search\",searchNotFound:\"No entries to show\",flagsImagePath:\"./flags.png\",disabled:!1,containerStyle:{},inputStyle:{},buttonStyle:{},dropdownStyle:{},searchStyle:{},containerClass:\"\",inputClass:\"\",buttonClass:\"\",dropdownClass:\"\",searchClass:\"\",autoFormat:!0,enableAreaCodes:!1,enableTerritories:!1,disableCountryCode:!1,disableDropdown:!1,enableLongNumbers:!1,countryCodeEditable:!0,enableSearch:!1,disableSearchIcon:!1,disableInitialCountryGuess:!1,disableCountryGuess:!1,regions:\"\",inputProps:{},localization:{},masks:null,priority:null,areaCodes:null,preserveOrder:[],defaultMask:\"... ... ... ... ..\",alwaysDefaultMask:!1,prefix:\"+\",copyNumbersOnly:!0,renderStringAsFlag:\"\",autocompleteSearch:!1,jumpCursorToEnd:!0,enableAreaCodeStretch:!1,enableClickOutside:!0,showDropdown:!1,isValid:!0,defaultErrorMessage:\"\",specialLabel:\"Phone\",onEnterKeyPress:null,keys:{UP:38,DOWN:40,RIGHT:39,LEFT:37,ENTER:13,ESC:27,PLUS:43,A:65,Z:90,SPACE:32,TAB:9}};t.default=F}]);","var moment = module.exports = require(\"./moment-timezone\");\nmoment.tz.load(require('./data/packed/latest.json'));\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","/**\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","/**\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","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","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","export const get = (obj, key, def, p, undef) => {\n key = key && key.split ? key.split('.') : [key]\n for (p = 0; p < key.length; p++) {\n obj = obj ? obj[key[p]] : undef\n }\n return obj === undef ? def : obj\n}\n\nconst defaultBreakpoints = [40, 52, 64].map(n => n + 'em')\n\nconst defaultTheme = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512],\n fontSizes: [12, 14, 16, 20, 24, 32, 48, 64, 72],\n}\n\nconst aliases = {\n bg: 'backgroundColor',\n m: 'margin',\n mt: 'marginTop',\n mr: 'marginRight',\n mb: 'marginBottom',\n ml: 'marginLeft',\n mx: 'marginX',\n my: 'marginY',\n p: 'padding',\n pt: 'paddingTop',\n pr: 'paddingRight',\n pb: 'paddingBottom',\n pl: 'paddingLeft',\n px: 'paddingX',\n py: 'paddingY',\n}\n\nconst multiples = {\n marginX: ['marginLeft', 'marginRight'],\n marginY: ['marginTop', 'marginBottom'],\n paddingX: ['paddingLeft', 'paddingRight'],\n paddingY: ['paddingTop', 'paddingBottom'],\n size: ['width', 'height'],\n}\n\nconst scales = {\n color: 'colors',\n backgroundColor: 'colors',\n borderColor: 'colors',\n caretColor: 'colors',\n columnRuleColor: 'colors',\n margin: 'space',\n marginTop: 'space',\n marginRight: 'space',\n marginBottom: 'space',\n marginLeft: 'space',\n marginX: 'space',\n marginY: 'space',\n padding: 'space',\n paddingTop: 'space',\n paddingRight: 'space',\n paddingBottom: 'space',\n paddingLeft: 'space',\n paddingX: 'space',\n paddingY: 'space',\n top: 'space',\n right: 'space',\n bottom: 'space',\n left: 'space',\n gridGap: 'space',\n gridColumnGap: 'space',\n gridRowGap: 'space',\n gap: 'space',\n columnGap: 'space',\n rowGap: 'space',\n fontFamily: 'fonts',\n fontSize: 'fontSizes',\n fontWeight: 'fontWeights',\n lineHeight: 'lineHeights',\n letterSpacing: 'letterSpacings',\n border: 'borders',\n borderTop: 'borders',\n borderRight: 'borders',\n borderBottom: 'borders',\n borderLeft: 'borders',\n borderWidth: 'borderWidths',\n borderStyle: 'borderStyles',\n borderRadius: 'radii',\n borderTopRightRadius: 'radii',\n borderTopLeftRadius: 'radii',\n borderBottomRightRadius: 'radii',\n borderBottomLeftRadius: 'radii',\n borderTopWidth: 'borderWidths',\n borderTopColor: 'colors',\n borderTopStyle: 'borderStyles',\n borderBottomWidth: 'borderWidths',\n borderBottomColor: 'colors',\n borderBottomStyle: 'borderStyles',\n borderLeftWidth: 'borderWidths',\n borderLeftColor: 'colors',\n borderLeftStyle: 'borderStyles',\n borderRightWidth: 'borderWidths',\n borderRightColor: 'colors',\n borderRightStyle: 'borderStyles',\n outlineColor: 'colors',\n boxShadow: 'shadows',\n textShadow: 'shadows',\n zIndex: 'zIndices',\n width: 'sizes',\n minWidth: 'sizes',\n maxWidth: 'sizes',\n height: 'sizes',\n minHeight: 'sizes',\n maxHeight: 'sizes',\n flexBasis: 'sizes',\n size: 'sizes',\n // svg\n fill: 'colors',\n stroke: 'colors',\n}\n\nconst positiveOrNegative = (scale, value) => {\n if (typeof value !== 'number' || value >= 0) {\n return get(scale, value, value)\n }\n const absolute = Math.abs(value)\n const n = get(scale, absolute, absolute)\n if (typeof n === 'string') return '-' + n\n return n * -1\n}\n\nconst transforms = [\n 'margin',\n 'marginTop',\n 'marginRight',\n 'marginBottom',\n 'marginLeft',\n 'marginX',\n 'marginY',\n 'top',\n 'bottom',\n 'left',\n 'right',\n].reduce(\n (acc, curr) => ({\n ...acc,\n [curr]: positiveOrNegative,\n }),\n {}\n)\n\nconst responsive = styles => theme => {\n const next = {}\n const breakpoints = get(theme, 'breakpoints', defaultBreakpoints)\n const mediaQueries = [\n null,\n ...breakpoints.map(n => `@media screen and (min-width: ${n})`),\n ]\n\n for (const key in styles) {\n const value =\n typeof styles[key] === 'function' ? styles[key](theme) : styles[key]\n\n if (value == null) continue\n if (!Array.isArray(value)) {\n next[key] = value\n continue\n }\n for (let i = 0; i < value.slice(0, mediaQueries.length).length; i++) {\n const media = mediaQueries[i]\n if (!media) {\n next[key] = value[i]\n continue\n }\n next[media] = next[media] || {}\n if (value[i] == null) continue\n next[media][key] = value[i]\n }\n }\n\n return next\n}\n\nexport const css = args => (props = {}) => {\n const theme = { ...defaultTheme, ...(props.theme || props) }\n let result = {}\n const obj = typeof args === 'function' ? args(theme) : args\n const styles = responsive(obj)(theme)\n\n for (const key in styles) {\n const x = styles[key]\n const val = typeof x === 'function' ? x(theme) : x\n\n if (key === 'variant') {\n const variant = css(get(theme, val))(theme)\n result = { ...result, ...variant }\n continue\n }\n\n if (val && typeof val === 'object') {\n result[key] = css(val)(theme)\n continue\n }\n\n const prop = get(aliases, key, key)\n const scaleName = get(scales, prop)\n const scale = get(theme, scaleName, get(theme, prop, {}))\n const transform = get(transforms, prop, get)\n const value = transform(scale, val, val)\n\n if (multiples[prop]) {\n const dirs = multiples[prop]\n\n for (let i = 0; i < dirs.length; i++) {\n result[dirs[i]] = value\n }\n } else {\n result[prop] = value\n }\n }\n\n return result\n}\n","/* eslint-disable curly */\n\nlet accountListName = 'yandex_metrika_accounts';\n\nfunction invalidVersion() {\n throw new Error('invalid Ya.Metrika version');\n}\n\nfunction callbackQueueName(version) {\n if (version === '1') return 'yandex_metrika_callbacks';\n if (version === '2') return 'yandex_metrika_callbacks2';\n invalidVersion();\n}\n\nfunction scriptPath(version) {\n if (version === '1') return 'https://mc.yandex.ru/metrika/watch.js';\n if (version === '2') return 'https://mc.yandex.ru/metrika/tag.js';\n invalidVersion();\n}\n\nfunction trackerConstructorName(version) {\n if (version === '1') return 'Metrika';\n if (version === '2') return 'Metrika2';\n invalidVersion();\n}\n\nfunction trackerInstanceName(id) {\n return `yaCounter${id}`;\n}\n\nfunction trackerVersionName(id) {\n return `yaCounterVersion${id}`;\n}\n\nexport {\n accountListName,\n callbackQueueName,\n scriptPath,\n trackerConstructorName,\n trackerInstanceName,\n trackerVersionName\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\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: '© 2019 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","'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 this.anim = _lottieWeb2.default.loadAnimation(this.options);\n this.registerEvents(eventListeners);\n this.setSpeed();\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.object\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};","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\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 = res[2] || defaultDelimiter\n var pattern = capture || group\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 ? '.*' : '[^' + escapeString(delimiter) + ']+?')\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\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","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","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","// 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","'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","'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","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","module.exports = require('./lib/axios');","'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","/** @license React v17.0.1\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","/** @license React v17.0.1\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","//! moment-timezone.js\n//! version : 0.5.40\n//! Copyright (c) JS Foundation and other contributors\n//! license : MIT\n//! github.com/moment/moment-timezone\n\n(function (root, factory) {\n\t\"use strict\";\n\n\t/*global define*/\n\tif (typeof module === 'object' && module.exports) {\n\t\tmodule.exports = factory(require('moment')); // Node\n\t} else if (typeof define === 'function' && define.amd) {\n\t\tdefine(['moment'], factory); // AMD\n\t} else {\n\t\tfactory(root.moment); // Browser\n\t}\n}(this, function (moment) {\n\t\"use strict\";\n\n\t// Resolves es6 module loading issue\n\tif (moment.version === undefined && moment.default) {\n\t\tmoment = moment.default;\n\t}\n\n\t// Do not load moment-timezone a second time.\n\t// if (moment.tz !== undefined) {\n\t// \tlogError('Moment Timezone ' + moment.tz.version + ' was already loaded ' + (moment.tz.dataVersion ? 'with data from ' : 'without any data') + moment.tz.dataVersion);\n\t// \treturn moment;\n\t// }\n\n\tvar VERSION = \"0.5.40\",\n\t\tzones = {},\n\t\tlinks = {},\n\t\tcountries = {},\n\t\tnames = {},\n\t\tguesses = {},\n\t\tcachedGuess;\n\n\tif (!moment || typeof moment.version !== 'string') {\n\t\tlogError('Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/');\n\t}\n\n\tvar momentVersion = moment.version.split('.'),\n\t\tmajor = +momentVersion[0],\n\t\tminor = +momentVersion[1];\n\n\t// Moment.js version check\n\tif (major < 2 || (major === 2 && minor < 6)) {\n\t\tlogError('Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js ' + moment.version + '. See momentjs.com');\n\t}\n\n\t/************************************\n\t\tUnpacking\n\t************************************/\n\n\tfunction charCodeToInt(charCode) {\n\t\tif (charCode > 96) {\n\t\t\treturn charCode - 87;\n\t\t} else if (charCode > 64) {\n\t\t\treturn charCode - 29;\n\t\t}\n\t\treturn charCode - 48;\n\t}\n\n\tfunction unpackBase60(string) {\n\t\tvar i = 0,\n\t\t\tparts = string.split('.'),\n\t\t\twhole = parts[0],\n\t\t\tfractional = parts[1] || '',\n\t\t\tmultiplier = 1,\n\t\t\tnum,\n\t\t\tout = 0,\n\t\t\tsign = 1;\n\n\t\t// handle negative numbers\n\t\tif (string.charCodeAt(0) === 45) {\n\t\t\ti = 1;\n\t\t\tsign = -1;\n\t\t}\n\n\t\t// handle digits before the decimal\n\t\tfor (i; i < whole.length; i++) {\n\t\t\tnum = charCodeToInt(whole.charCodeAt(i));\n\t\t\tout = 60 * out + num;\n\t\t}\n\n\t\t// handle digits after the decimal\n\t\tfor (i = 0; i < fractional.length; i++) {\n\t\t\tmultiplier = multiplier / 60;\n\t\t\tnum = charCodeToInt(fractional.charCodeAt(i));\n\t\t\tout += num * multiplier;\n\t\t}\n\n\t\treturn out * sign;\n\t}\n\n\tfunction arrayToInt (array) {\n\t\tfor (var i = 0; i < array.length; i++) {\n\t\t\tarray[i] = unpackBase60(array[i]);\n\t\t}\n\t}\n\n\tfunction intToUntil (array, length) {\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tarray[i] = Math.round((array[i - 1] || 0) + (array[i] * 60000)); // minutes to milliseconds\n\t\t}\n\n\t\tarray[length - 1] = Infinity;\n\t}\n\n\tfunction mapIndices (source, indices) {\n\t\tvar out = [], i;\n\n\t\tfor (i = 0; i < indices.length; i++) {\n\t\t\tout[i] = source[indices[i]];\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction unpack (string) {\n\t\tvar data = string.split('|'),\n\t\t\toffsets = data[2].split(' '),\n\t\t\tindices = data[3].split(''),\n\t\t\tuntils = data[4].split(' ');\n\n\t\tarrayToInt(offsets);\n\t\tarrayToInt(indices);\n\t\tarrayToInt(untils);\n\n\t\tintToUntil(untils, indices.length);\n\n\t\treturn {\n\t\t\tname : data[0],\n\t\t\tabbrs : mapIndices(data[1].split(' '), indices),\n\t\t\toffsets : mapIndices(offsets, indices),\n\t\t\tuntils : untils,\n\t\t\tpopulation : data[5] | 0\n\t\t};\n\t}\n\n\t/************************************\n\t\tZone object\n\t************************************/\n\n\tfunction Zone (packedString) {\n\t\tif (packedString) {\n\t\t\tthis._set(unpack(packedString));\n\t\t}\n\t}\n\n\tZone.prototype = {\n\t\t_set : function (unpacked) {\n\t\t\tthis.name = unpacked.name;\n\t\t\tthis.abbrs = unpacked.abbrs;\n\t\t\tthis.untils = unpacked.untils;\n\t\t\tthis.offsets = unpacked.offsets;\n\t\t\tthis.population = unpacked.population;\n\t\t},\n\n\t\t_index : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\tuntils = this.untils,\n\t\t\t\ti;\n\n\t\t\tfor (i = 0; i < untils.length; i++) {\n\t\t\t\tif (target < untils[i]) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tcountries : function () {\n\t\t\tvar zone_name = this.name;\n\t\t\treturn Object.keys(countries).filter(function (country_code) {\n\t\t\t\treturn countries[country_code].zones.indexOf(zone_name) !== -1;\n\t\t\t});\n\t\t},\n\n\t\tparse : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\toffsets = this.offsets,\n\t\t\t\tuntils = this.untils,\n\t\t\t\tmax = untils.length - 1,\n\t\t\t\toffset, offsetNext, offsetPrev, i;\n\n\t\t\tfor (i = 0; i < max; i++) {\n\t\t\t\toffset = offsets[i];\n\t\t\t\toffsetNext = offsets[i + 1];\n\t\t\t\toffsetPrev = offsets[i ? i - 1 : i];\n\n\t\t\t\tif (offset < offsetNext && tz.moveAmbiguousForward) {\n\t\t\t\t\toffset = offsetNext;\n\t\t\t\t} else if (offset > offsetPrev && tz.moveInvalidForward) {\n\t\t\t\t\toffset = offsetPrev;\n\t\t\t\t}\n\n\t\t\t\tif (target < untils[i] - (offset * 60000)) {\n\t\t\t\t\treturn offsets[i];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn offsets[max];\n\t\t},\n\n\t\tabbr : function (mom) {\n\t\t\treturn this.abbrs[this._index(mom)];\n\t\t},\n\n\t\toffset : function (mom) {\n\t\t\tlogError(\"zone.offset has been deprecated in favor of zone.utcOffset\");\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t},\n\n\t\tutcOffset : function (mom) {\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t}\n\t};\n\n\t/************************************\n\t\tCountry object\n\t************************************/\n\n\tfunction Country (country_name, zone_names) {\n\t\tthis.name = country_name;\n\t\tthis.zones = zone_names;\n\t}\n\n\t/************************************\n\t\tCurrent Timezone\n\t************************************/\n\n\tfunction OffsetAt(at) {\n\t\tvar timeString = at.toTimeString();\n\t\tvar abbr = timeString.match(/\\([a-z ]+\\)/i);\n\t\tif (abbr && abbr[0]) {\n\t\t\t// 17:56:31 GMT-0600 (CST)\n\t\t\t// 17:56:31 GMT-0600 (Central Standard Time)\n\t\t\tabbr = abbr[0].match(/[A-Z]/g);\n\t\t\tabbr = abbr ? abbr.join('') : undefined;\n\t\t} else {\n\t\t\t// 17:56:31 CST\n\t\t\t// 17:56:31 GMT+0800 (台北標準時間)\n\t\t\tabbr = timeString.match(/[A-Z]{3,5}/g);\n\t\t\tabbr = abbr ? abbr[0] : undefined;\n\t\t}\n\n\t\tif (abbr === 'GMT') {\n\t\t\tabbr = undefined;\n\t\t}\n\n\t\tthis.at = +at;\n\t\tthis.abbr = abbr;\n\t\tthis.offset = at.getTimezoneOffset();\n\t}\n\n\tfunction ZoneScore(zone) {\n\t\tthis.zone = zone;\n\t\tthis.offsetScore = 0;\n\t\tthis.abbrScore = 0;\n\t}\n\n\tZoneScore.prototype.scoreOffsetAt = function (offsetAt) {\n\t\tthis.offsetScore += Math.abs(this.zone.utcOffset(offsetAt.at) - offsetAt.offset);\n\t\tif (this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g, '') !== offsetAt.abbr) {\n\t\t\tthis.abbrScore++;\n\t\t}\n\t};\n\n\tfunction findChange(low, high) {\n\t\tvar mid, diff;\n\n\t\twhile ((diff = ((high.at - low.at) / 12e4 | 0) * 6e4)) {\n\t\t\tmid = new OffsetAt(new Date(low.at + diff));\n\t\t\tif (mid.offset === low.offset) {\n\t\t\t\tlow = mid;\n\t\t\t} else {\n\t\t\t\thigh = mid;\n\t\t\t}\n\t\t}\n\n\t\treturn low;\n\t}\n\n\tfunction userOffsets() {\n\t\tvar startYear = new Date().getFullYear() - 2,\n\t\t\tlast = new OffsetAt(new Date(startYear, 0, 1)),\n\t\t\toffsets = [last],\n\t\t\tchange, next, i;\n\n\t\tfor (i = 1; i < 48; i++) {\n\t\t\tnext = new OffsetAt(new Date(startYear, i, 1));\n\t\t\tif (next.offset !== last.offset) {\n\t\t\t\tchange = findChange(last, next);\n\t\t\t\toffsets.push(change);\n\t\t\t\toffsets.push(new OffsetAt(new Date(change.at + 6e4)));\n\t\t\t}\n\t\t\tlast = next;\n\t\t}\n\n\t\tfor (i = 0; i < 4; i++) {\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 0, 1)));\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 6, 1)));\n\t\t}\n\n\t\treturn offsets;\n\t}\n\n\tfunction sortZoneScores (a, b) {\n\t\tif (a.offsetScore !== b.offsetScore) {\n\t\t\treturn a.offsetScore - b.offsetScore;\n\t\t}\n\t\tif (a.abbrScore !== b.abbrScore) {\n\t\t\treturn a.abbrScore - b.abbrScore;\n\t\t}\n\t\tif (a.zone.population !== b.zone.population) {\n\t\t\treturn b.zone.population - a.zone.population;\n\t\t}\n\t\treturn b.zone.name.localeCompare(a.zone.name);\n\t}\n\n\tfunction addToGuesses (name, offsets) {\n\t\tvar i, offset;\n\t\tarrayToInt(offsets);\n\t\tfor (i = 0; i < offsets.length; i++) {\n\t\t\toffset = offsets[i];\n\t\t\tguesses[offset] = guesses[offset] || {};\n\t\t\tguesses[offset][name] = true;\n\t\t}\n\t}\n\n\tfunction guessesForUserOffsets (offsets) {\n\t\tvar offsetsLength = offsets.length,\n\t\t\tfilteredGuesses = {},\n\t\t\tout = [],\n\t\t\ti, j, guessesOffset;\n\n\t\tfor (i = 0; i < offsetsLength; i++) {\n\t\t\tguessesOffset = guesses[offsets[i].offset] || {};\n\t\t\tfor (j in guessesOffset) {\n\t\t\t\tif (guessesOffset.hasOwnProperty(j)) {\n\t\t\t\t\tfilteredGuesses[j] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (i in filteredGuesses) {\n\t\t\tif (filteredGuesses.hasOwnProperty(i)) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction rebuildGuess () {\n\n\t\t// use Intl API when available and returning valid time zone\n\t\ttry {\n\t\t\tvar intlName = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\t\t\tif (intlName && intlName.length > 3) {\n\t\t\t\tvar name = names[normalizeName(intlName)];\n\t\t\t\tif (name) {\n\t\t\t\t\treturn name;\n\t\t\t\t}\n\t\t\t\tlogError(\"Moment Timezone found \" + intlName + \" from the Intl api, but did not have that data loaded.\");\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t// Intl unavailable, fall back to manual guessing.\n\t\t}\n\n\t\tvar offsets = userOffsets(),\n\t\t\toffsetsLength = offsets.length,\n\t\t\tguesses = guessesForUserOffsets(offsets),\n\t\t\tzoneScores = [],\n\t\t\tzoneScore, i, j;\n\n\t\tfor (i = 0; i < guesses.length; i++) {\n\t\t\tzoneScore = new ZoneScore(getZone(guesses[i]), offsetsLength);\n\t\t\tfor (j = 0; j < offsetsLength; j++) {\n\t\t\t\tzoneScore.scoreOffsetAt(offsets[j]);\n\t\t\t}\n\t\t\tzoneScores.push(zoneScore);\n\t\t}\n\n\t\tzoneScores.sort(sortZoneScores);\n\n\t\treturn zoneScores.length > 0 ? zoneScores[0].zone.name : undefined;\n\t}\n\n\tfunction guess (ignoreCache) {\n\t\tif (!cachedGuess || ignoreCache) {\n\t\t\tcachedGuess = rebuildGuess();\n\t\t}\n\t\treturn cachedGuess;\n\t}\n\n\t/************************************\n\t\tGlobal Methods\n\t************************************/\n\n\tfunction normalizeName (name) {\n\t\treturn (name || '').toLowerCase().replace(/\\//g, '_');\n\t}\n\n\tfunction addZone (packed) {\n\t\tvar i, name, split, normalized;\n\n\t\tif (typeof packed === \"string\") {\n\t\t\tpacked = [packed];\n\t\t}\n\n\t\tfor (i = 0; i < packed.length; i++) {\n\t\t\tsplit = packed[i].split('|');\n\t\t\tname = split[0];\n\t\t\tnormalized = normalizeName(name);\n\t\t\tzones[normalized] = packed[i];\n\t\t\tnames[normalized] = name;\n\t\t\taddToGuesses(normalized, split[2].split(' '));\n\t\t}\n\t}\n\n\tfunction getZone (name, caller) {\n\n\t\tname = normalizeName(name);\n\n\t\tvar zone = zones[name];\n\t\tvar link;\n\n\t\tif (zone instanceof Zone) {\n\t\t\treturn zone;\n\t\t}\n\n\t\tif (typeof zone === 'string') {\n\t\t\tzone = new Zone(zone);\n\t\t\tzones[name] = zone;\n\t\t\treturn zone;\n\t\t}\n\n\t\t// Pass getZone to prevent recursion more than 1 level deep\n\t\tif (links[name] && caller !== getZone && (link = getZone(links[name], getZone))) {\n\t\t\tzone = zones[name] = new Zone();\n\t\t\tzone._set(link);\n\t\t\tzone.name = names[name];\n\t\t\treturn zone;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tfunction getNames () {\n\t\tvar i, out = [];\n\n\t\tfor (i in names) {\n\t\t\tif (names.hasOwnProperty(i) && (zones[i] || zones[links[i]]) && names[i]) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out.sort();\n\t}\n\n\tfunction getCountryNames () {\n\t\treturn Object.keys(countries);\n\t}\n\n\tfunction addLink (aliases) {\n\t\tvar i, alias, normal0, normal1;\n\n\t\tif (typeof aliases === \"string\") {\n\t\t\taliases = [aliases];\n\t\t}\n\n\t\tfor (i = 0; i < aliases.length; i++) {\n\t\t\talias = aliases[i].split('|');\n\n\t\t\tnormal0 = normalizeName(alias[0]);\n\t\t\tnormal1 = normalizeName(alias[1]);\n\n\t\t\tlinks[normal0] = normal1;\n\t\t\tnames[normal0] = alias[0];\n\n\t\t\tlinks[normal1] = normal0;\n\t\t\tnames[normal1] = alias[1];\n\t\t}\n\t}\n\n\tfunction addCountries (data) {\n\t\tvar i, country_code, country_zones, split;\n\t\tif (!data || !data.length) return;\n\t\tfor (i = 0; i < data.length; i++) {\n\t\t\tsplit = data[i].split('|');\n\t\t\tcountry_code = split[0].toUpperCase();\n\t\t\tcountry_zones = split[1].split(' ');\n\t\t\tcountries[country_code] = new Country(\n\t\t\t\tcountry_code,\n\t\t\t\tcountry_zones\n\t\t\t);\n\t\t}\n\t}\n\n\tfunction getCountry (name) {\n\t\tname = name.toUpperCase();\n\t\treturn countries[name] || null;\n\t}\n\n\tfunction zonesForCountry(country, with_offset) {\n\t\tcountry = getCountry(country);\n\n\t\tif (!country) return null;\n\n\t\tvar zones = country.zones.sort();\n\n\t\tif (with_offset) {\n\t\t\treturn zones.map(function (zone_name) {\n\t\t\t\tvar zone = getZone(zone_name);\n\t\t\t\treturn {\n\t\t\t\t\tname: zone_name,\n\t\t\t\t\toffset: zone.utcOffset(new Date())\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\n\t\treturn zones;\n\t}\n\n\tfunction loadData (data) {\n\t\taddZone(data.zones);\n\t\taddLink(data.links);\n\t\taddCountries(data.countries);\n\t\ttz.dataVersion = data.version;\n\t}\n\n\tfunction zoneExists (name) {\n\t\tif (!zoneExists.didShowError) {\n\t\t\tzoneExists.didShowError = true;\n\t\t\t\tlogError(\"moment.tz.zoneExists('\" + name + \"') has been deprecated in favor of !moment.tz.zone('\" + name + \"')\");\n\t\t}\n\t\treturn !!getZone(name);\n\t}\n\n\tfunction needsOffset (m) {\n\t\tvar isUnixTimestamp = (m._f === 'X' || m._f === 'x');\n\t\treturn !!(m._a && (m._tzm === undefined) && !isUnixTimestamp);\n\t}\n\n\tfunction logError (message) {\n\t\tif (typeof console !== 'undefined' && typeof console.error === 'function') {\n\t\t\tconsole.error(message);\n\t\t}\n\t}\n\n\t/************************************\n\t\tmoment.tz namespace\n\t************************************/\n\n\tfunction tz (input) {\n\t\tvar args = Array.prototype.slice.call(arguments, 0, -1),\n\t\t\tname = arguments[arguments.length - 1],\n\t\t\tzone = getZone(name),\n\t\t\tout = moment.utc.apply(null, args);\n\n\t\tif (zone && !moment.isMoment(input) && needsOffset(out)) {\n\t\t\tout.add(zone.parse(out), 'minutes');\n\t\t}\n\n\t\tout.tz(name);\n\n\t\treturn out;\n\t}\n\n\ttz.version = VERSION;\n\ttz.dataVersion = '';\n\ttz._zones = zones;\n\ttz._links = links;\n\ttz._names = names;\n\ttz._countries\t= countries;\n\ttz.add = addZone;\n\ttz.link = addLink;\n\ttz.load = loadData;\n\ttz.zone = getZone;\n\ttz.zoneExists = zoneExists; // deprecated in 0.1.0\n\ttz.guess = guess;\n\ttz.names = getNames;\n\ttz.Zone = Zone;\n\ttz.unpack = unpack;\n\ttz.unpackBase60 = unpackBase60;\n\ttz.needsOffset = needsOffset;\n\ttz.moveInvalidForward = true;\n\ttz.moveAmbiguousForward = false;\n\ttz.countries = getCountryNames;\n\ttz.zonesForCountry = zonesForCountry;\n\n\t/************************************\n\t\tInterface with Moment.js\n\t************************************/\n\n\tvar fn = moment.fn;\n\n\tmoment.tz = tz;\n\n\tmoment.defaultZone = null;\n\n\tmoment.updateOffset = function (mom, keepTime) {\n\t\tvar zone = moment.defaultZone,\n\t\t\toffset;\n\n\t\tif (mom._z === undefined) {\n\t\t\tif (zone && needsOffset(mom) && !mom._isUTC) {\n\t\t\t\tmom._d = moment.utc(mom._a)._d;\n\t\t\t\tmom.utc().add(zone.parse(mom), 'minutes');\n\t\t\t}\n\t\t\tmom._z = zone;\n\t\t}\n\t\tif (mom._z) {\n\t\t\toffset = mom._z.utcOffset(mom);\n\t\t\tif (Math.abs(offset) < 16) {\n\t\t\t\toffset = offset / 60;\n\t\t\t}\n\t\t\tif (mom.utcOffset !== undefined) {\n\t\t\t\tvar z = mom._z;\n\t\t\t\tmom.utcOffset(-offset, keepTime);\n\t\t\t\tmom._z = z;\n\t\t\t} else {\n\t\t\t\tmom.zone(offset, keepTime);\n\t\t\t}\n\t\t}\n\t};\n\n\tfn.tz = function (name, keepTime) {\n\t\tif (name) {\n\t\t\tif (typeof name !== 'string') {\n\t\t\t\tthrow new Error('Time zone name must be a string, got ' + name + ' [' + typeof name + ']');\n\t\t\t}\n\t\t\tthis._z = getZone(name);\n\t\t\tif (this._z) {\n\t\t\t\tmoment.updateOffset(this, keepTime);\n\t\t\t} else {\n\t\t\t\tlogError(\"Moment Timezone has no data for \" + name + \". See http://momentjs.com/timezone/docs/#/data-loading/.\");\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif (this._z) { return this._z.name; }\n\t};\n\n\tfunction abbrWrap (old) {\n\t\treturn function () {\n\t\t\tif (this._z) { return this._z.abbr(this); }\n\t\t\treturn old.call(this);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap (old) {\n\t\treturn function () {\n\t\t\tthis._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap2 (old) {\n\t\treturn function () {\n\t\t\tif (arguments.length > 0) this._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfn.zoneName = abbrWrap(fn.zoneName);\n\tfn.zoneAbbr = abbrWrap(fn.zoneAbbr);\n\tfn.utc = resetZoneWrap(fn.utc);\n\tfn.local = resetZoneWrap(fn.local);\n\tfn.utcOffset = resetZoneWrap2(fn.utcOffset);\n\n\tmoment.tz.setDefault = function(name) {\n\t\tif (major < 2 || (major === 2 && minor < 9)) {\n\t\t\tlogError('Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js ' + moment.version + '.');\n\t\t}\n\t\tmoment.defaultZone = name ? getZone(name) : null;\n\t\treturn moment;\n\t};\n\n\t// Cloning a moment should include the _z property.\n\tvar momentProperties = moment.momentProperties;\n\tif (Object.prototype.toString.call(momentProperties) === '[object Array]') {\n\t\t// moment 2.8.1+\n\t\tmomentProperties.push('_z');\n\t\tmomentProperties.push('_a');\n\t} else if (momentProperties) {\n\t\t// moment 2.7.0\n\t\tmomentProperties._z = null;\n\t}\n\n\t// INJECT DATA\n\n\treturn moment;\n}));\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","/* eslint-env browser */\n'use strict';\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport init from './init';\nimport { scriptPath } from './constants';\n\nclass YMInitializer extends Component {\n\n componentDidMount() {\n init(this.props.accounts, this.props.options, this.props.version);\n let el = document.createElement('script');\n let attrs = this.props.attrs;\n el.type = 'text/javascript';\n el.async = true;\n el.src = scriptPath(this.props.version);\n Object.keys(attrs).map(i => {\n if (el.__proto__.hasOwnProperty(i)) {\n el.setAttribute(i, attrs[i]);\n }\n });\n this.insertPoint.insertBefore(el, null);\n }\n\n render() {\n let setInsertPoint = (element) => {\n this.insertPoint = element;\n };\n return React.createElement(\n this.props.containerElement,\n {ref: setInsertPoint},\n this.props.children\n );\n }\n\n}\n\nYMInitializer.displayName = 'YMInitializer';\n\nYMInitializer.propTypes = {\n accounts: PropTypes.arrayOf(PropTypes.number).isRequired,\n containerElement: PropTypes.string,\n options: PropTypes.object,\n attrs: PropTypes.object,\n version: PropTypes.oneOf(['1', '2'])\n};\n\nYMInitializer.defaultProps = {\n containerElement: 'div',\n options: {},\n attrs: {},\n version: '1'\n};\n\nexport { YMInitializer };\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 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","/* eslint-env browser */\n/* global Ya */\n\nimport {\n accountListName,\n callbackQueueName,\n trackerConstructorName,\n trackerInstanceName,\n trackerVersionName\n} from './constants';\n\nexport default function init(accounts, options = {}, version = '1') {\n let callbackQueue = callbackQueueName(version);\n window[accountListName] = window[accountListName] || [];\n window[accountListName] = window[accountListName].concat(accounts);\n window[callbackQueue] = window[callbackQueue] || [];\n window[callbackQueue].push(() => {\n accounts.forEach(id => {\n let defaultOptions = {id};\n\n try {\n window[trackerInstanceName(id)] = new Ya[trackerConstructorName(version)](\n Object.assign(defaultOptions, options)\n );\n } catch (ex) {\n console.warn(ex);\n }\n });\n });\n accounts.forEach(id => {\n window[trackerVersionName(id)] = version;\n });\n};\n","function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nmodule.exports = _inheritsLoose;","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar pkg = require('./../../package.json');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n return false;\n}\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\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","/**\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","/**\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","(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","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","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default index;\n","import assign from 'object-assign';\nexport var merge = function merge(a, b) {\n var result = assign({}, a, b);\n\n for (var key in a) {\n var _assign;\n\n if (!a[key] || typeof b[key] !== 'object') continue;\n assign(result, (_assign = {}, _assign[key] = assign(a[key], b[key]), _assign));\n }\n\n return result;\n}; // sort object-value responsive styles\n\nvar sort = function sort(obj) {\n var next = {};\n Object.keys(obj).sort(function (a, b) {\n return a.localeCompare(b, undefined, {\n numeric: true,\n sensitivity: 'base'\n });\n }).forEach(function (key) {\n next[key] = obj[key];\n });\n return next;\n};\n\nvar defaults = {\n breakpoints: [40, 52, 64].map(function (n) {\n return n + 'em';\n })\n};\n\nvar createMediaQuery = function createMediaQuery(n) {\n return \"@media screen and (min-width: \" + n + \")\";\n};\n\nvar getValue = function getValue(n, scale) {\n return get(scale, n, n);\n};\n\nexport var get = function get(obj, key, def, p, undef) {\n key = key && key.split ? key.split('.') : [key];\n\n for (p = 0; p < key.length; p++) {\n obj = obj ? obj[key[p]] : undef;\n }\n\n return obj === undef ? def : obj;\n};\nexport var createParser = function createParser(config) {\n var cache = {};\n\n var parse = function parse(props) {\n var styles = {};\n var shouldSort = false;\n var isCacheDisabled = props.theme && props.theme.disableStyledSystemCache;\n\n for (var key in props) {\n if (!config[key]) continue;\n var sx = config[key];\n var raw = props[key];\n var scale = get(props.theme, sx.scale, sx.defaults);\n\n if (typeof raw === 'object') {\n cache.breakpoints = !isCacheDisabled && cache.breakpoints || get(props.theme, 'breakpoints', defaults.breakpoints);\n\n if (Array.isArray(raw)) {\n cache.media = !isCacheDisabled && cache.media || [null].concat(cache.breakpoints.map(createMediaQuery));\n styles = merge(styles, parseResponsiveStyle(cache.media, sx, scale, raw, props));\n continue;\n }\n\n if (raw !== null) {\n styles = merge(styles, parseResponsiveObject(cache.breakpoints, sx, scale, raw, props));\n shouldSort = true;\n }\n\n continue;\n }\n\n assign(styles, sx(raw, scale, props));\n } // sort object-based responsive styles\n\n\n if (shouldSort) {\n styles = sort(styles);\n }\n\n return styles;\n };\n\n parse.config = config;\n parse.propNames = Object.keys(config);\n parse.cache = cache;\n var keys = Object.keys(config).filter(function (k) {\n return k !== 'config';\n });\n\n if (keys.length > 1) {\n keys.forEach(function (key) {\n var _createParser;\n\n parse[key] = createParser((_createParser = {}, _createParser[key] = config[key], _createParser));\n });\n }\n\n return parse;\n};\n\nvar parseResponsiveStyle = function parseResponsiveStyle(mediaQueries, sx, scale, raw, _props) {\n var styles = {};\n raw.slice(0, mediaQueries.length).forEach(function (value, i) {\n var media = mediaQueries[i];\n var style = sx(value, scale, _props);\n\n if (!media) {\n assign(styles, style);\n } else {\n var _assign2;\n\n assign(styles, (_assign2 = {}, _assign2[media] = assign({}, styles[media], style), _assign2));\n }\n });\n return styles;\n};\n\nvar parseResponsiveObject = function parseResponsiveObject(breakpoints, sx, scale, raw, _props) {\n var styles = {};\n\n for (var key in raw) {\n var breakpoint = breakpoints[key];\n var value = raw[key];\n var style = sx(value, scale, _props);\n\n if (!breakpoint) {\n assign(styles, style);\n } else {\n var _assign3;\n\n var media = createMediaQuery(breakpoint);\n assign(styles, (_assign3 = {}, _assign3[media] = assign({}, styles[media], style), _assign3));\n }\n }\n\n return styles;\n};\n\nexport var createStyleFunction = function createStyleFunction(_ref) {\n var properties = _ref.properties,\n property = _ref.property,\n scale = _ref.scale,\n _ref$transform = _ref.transform,\n transform = _ref$transform === void 0 ? getValue : _ref$transform,\n defaultScale = _ref.defaultScale;\n properties = properties || [property];\n\n var sx = function sx(value, scale, _props) {\n var result = {};\n var n = transform(value, scale, _props);\n if (n === null) return;\n properties.forEach(function (prop) {\n result[prop] = n;\n });\n return result;\n };\n\n sx.scale = scale;\n sx.defaults = defaultScale;\n return sx;\n}; // new v5 API\n\nexport var system = function system(args) {\n if (args === void 0) {\n args = {};\n }\n\n var config = {};\n Object.keys(args).forEach(function (key) {\n var conf = args[key];\n\n if (conf === true) {\n // shortcut definition\n config[key] = createStyleFunction({\n property: key,\n scale: key\n });\n return;\n }\n\n if (typeof conf === 'function') {\n config[key] = conf;\n return;\n }\n\n config[key] = createStyleFunction(conf);\n });\n var parser = createParser(config);\n return parser;\n};\nexport var compose = function compose() {\n var config = {};\n\n for (var _len = arguments.length, parsers = new Array(_len), _key = 0; _key < _len; _key++) {\n parsers[_key] = arguments[_key];\n }\n\n parsers.forEach(function (parser) {\n if (!parser || !parser.config) return;\n assign(config, parser.config);\n });\n var parser = createParser(config);\n return parser;\n};\n","import { system, get } from '@styled-system/core';\n\nvar isNumber = function isNumber(n) {\n return typeof n === 'number' && !isNaN(n);\n};\n\nvar getWidth = function getWidth(n, scale) {\n return get(scale, n, !isNumber(n) || n > 1 ? n : n * 100 + '%');\n};\n\nvar config = {\n width: {\n property: 'width',\n scale: 'sizes',\n transform: getWidth\n },\n height: {\n property: 'height',\n scale: 'sizes'\n },\n minWidth: {\n property: 'minWidth',\n scale: 'sizes'\n },\n minHeight: {\n property: 'minHeight',\n scale: 'sizes'\n },\n maxWidth: {\n property: 'maxWidth',\n scale: 'sizes'\n },\n maxHeight: {\n property: 'maxHeight',\n scale: 'sizes'\n },\n size: {\n properties: ['width', 'height'],\n scale: 'sizes'\n },\n overflow: true,\n overflowX: true,\n overflowY: true,\n display: true,\n verticalAlign: true\n};\nexport var layout = system(config);\nexport default layout;\n","import { system } from '@styled-system/core';\nvar config = {\n color: {\n property: 'color',\n scale: 'colors'\n },\n backgroundColor: {\n property: 'backgroundColor',\n scale: 'colors'\n },\n opacity: true\n};\nconfig.bg = config.backgroundColor;\nexport var color = system(config);\nexport default color;\n","import { system } from '@styled-system/core';\nvar defaults = {\n fontSizes: [12, 14, 16, 20, 24, 32, 48, 64, 72]\n};\nvar config = {\n fontFamily: {\n property: 'fontFamily',\n scale: 'fonts'\n },\n fontSize: {\n property: 'fontSize',\n scale: 'fontSizes',\n defaultScale: defaults.fontSizes\n },\n fontWeight: {\n property: 'fontWeight',\n scale: 'fontWeights'\n },\n lineHeight: {\n property: 'lineHeight',\n scale: 'lineHeights'\n },\n letterSpacing: {\n property: 'letterSpacing',\n scale: 'letterSpacings'\n },\n textAlign: true,\n fontStyle: true\n};\nexport var typography = system(config);\nexport default typography;\n","import { system } from '@styled-system/core';\nvar config = {\n alignItems: true,\n alignContent: true,\n justifyItems: true,\n justifyContent: true,\n flexWrap: true,\n flexDirection: true,\n // item\n flex: true,\n flexGrow: true,\n flexShrink: true,\n flexBasis: true,\n justifySelf: true,\n alignSelf: true,\n order: true\n};\nexport var flexbox = system(config);\nexport default flexbox;\n","import { system } from '@styled-system/core';\nvar defaults = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512]\n};\nvar config = {\n gridGap: {\n property: 'gridGap',\n scale: 'space',\n defaultScale: defaults.space\n },\n gridColumnGap: {\n property: 'gridColumnGap',\n scale: 'space',\n defaultScale: defaults.space\n },\n gridRowGap: {\n property: 'gridRowGap',\n scale: 'space',\n defaultScale: defaults.space\n },\n gridColumn: true,\n gridRow: true,\n gridAutoFlow: true,\n gridAutoColumns: true,\n gridAutoRows: true,\n gridTemplateColumns: true,\n gridTemplateRows: true,\n gridTemplateAreas: true,\n gridArea: true\n};\nexport var grid = system(config);\nexport default grid;\n","import { system } from '@styled-system/core';\nvar config = {\n border: {\n property: 'border',\n scale: 'borders'\n },\n borderWidth: {\n property: 'borderWidth',\n scale: 'borderWidths'\n },\n borderStyle: {\n property: 'borderStyle',\n scale: 'borderStyles'\n },\n borderColor: {\n property: 'borderColor',\n scale: 'colors'\n },\n borderRadius: {\n property: 'borderRadius',\n scale: 'radii'\n },\n borderTop: {\n property: 'borderTop',\n scale: 'borders'\n },\n borderTopLeftRadius: {\n property: 'borderTopLeftRadius',\n scale: 'radii'\n },\n borderTopRightRadius: {\n property: 'borderTopRightRadius',\n scale: 'radii'\n },\n borderRight: {\n property: 'borderRight',\n scale: 'borders'\n },\n borderBottom: {\n property: 'borderBottom',\n scale: 'borders'\n },\n borderBottomLeftRadius: {\n property: 'borderBottomLeftRadius',\n scale: 'radii'\n },\n borderBottomRightRadius: {\n property: 'borderBottomRightRadius',\n scale: 'radii'\n },\n borderLeft: {\n property: 'borderLeft',\n scale: 'borders'\n },\n borderX: {\n properties: ['borderLeft', 'borderRight'],\n scale: 'borders'\n },\n borderY: {\n properties: ['borderTop', 'borderBottom'],\n scale: 'borders'\n }\n};\nconfig.borderTopWidth = {\n property: 'borderTopWidth',\n scale: 'borderWidths'\n};\nconfig.borderTopColor = {\n property: 'borderTopColor',\n scale: 'colors'\n};\nconfig.borderTopStyle = {\n property: 'borderTopStyle',\n scale: 'borderStyles'\n};\nconfig.borderTopLeftRadius = {\n property: 'borderTopLeftRadius',\n scale: 'radii'\n};\nconfig.borderTopRightRadius = {\n property: 'borderTopRightRadius',\n scale: 'radii'\n};\nconfig.borderBottomWidth = {\n property: 'borderBottomWidth',\n scale: 'borderWidths'\n};\nconfig.borderBottomColor = {\n property: 'borderBottomColor',\n scale: 'colors'\n};\nconfig.borderBottomStyle = {\n property: 'borderBottomStyle',\n scale: 'borderStyles'\n};\nconfig.borderBottomLeftRadius = {\n property: 'borderBottomLeftRadius',\n scale: 'radii'\n};\nconfig.borderBottomRightRadius = {\n property: 'borderBottomRightRadius',\n scale: 'radii'\n};\nconfig.borderLeftWidth = {\n property: 'borderLeftWidth',\n scale: 'borderWidths'\n};\nconfig.borderLeftColor = {\n property: 'borderLeftColor',\n scale: 'colors'\n};\nconfig.borderLeftStyle = {\n property: 'borderLeftStyle',\n scale: 'borderStyles'\n};\nconfig.borderRightWidth = {\n property: 'borderRightWidth',\n scale: 'borderWidths'\n};\nconfig.borderRightColor = {\n property: 'borderRightColor',\n scale: 'colors'\n};\nconfig.borderRightStyle = {\n property: 'borderRightStyle',\n scale: 'borderStyles'\n};\nexport var border = system(config);\nexport default border;\n","import { system } from '@styled-system/core';\nvar config = {\n background: true,\n backgroundImage: true,\n backgroundSize: true,\n backgroundPosition: true,\n backgroundRepeat: true\n};\nconfig.bgImage = config.backgroundImage;\nconfig.bgSize = config.backgroundSize;\nconfig.bgPosition = config.backgroundPosition;\nconfig.bgRepeat = config.backgroundRepeat;\nexport var background = system(config);\nexport default background;\n","import { system } from '@styled-system/core';\nvar defaults = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512]\n};\nvar config = {\n position: true,\n zIndex: {\n property: 'zIndex',\n scale: 'zIndices'\n },\n top: {\n property: 'top',\n scale: 'space',\n defaultScale: defaults.space\n },\n right: {\n property: 'right',\n scale: 'space',\n defaultScale: defaults.space\n },\n bottom: {\n property: 'bottom',\n scale: 'space',\n defaultScale: defaults.space\n },\n left: {\n property: 'left',\n scale: 'space',\n defaultScale: defaults.space\n }\n};\nexport var position = system(config);\nexport default position;\n","import { get, system, compose } from '@styled-system/core';\nvar defaults = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512]\n};\n\nvar isNumber = function isNumber(n) {\n return typeof n === 'number' && !isNaN(n);\n};\n\nvar getMargin = function getMargin(n, scale) {\n if (!isNumber(n)) {\n return get(scale, n, n);\n }\n\n var isNegative = n < 0;\n var absolute = Math.abs(n);\n var value = get(scale, absolute, absolute);\n\n if (!isNumber(value)) {\n return isNegative ? '-' + value : value;\n }\n\n return value * (isNegative ? -1 : 1);\n};\n\nvar configs = {};\nconfigs.margin = {\n margin: {\n property: 'margin',\n scale: 'space',\n transform: getMargin,\n defaultScale: defaults.space\n },\n marginTop: {\n property: 'marginTop',\n scale: 'space',\n transform: getMargin,\n defaultScale: defaults.space\n },\n marginRight: {\n property: 'marginRight',\n scale: 'space',\n transform: getMargin,\n defaultScale: defaults.space\n },\n marginBottom: {\n property: 'marginBottom',\n scale: 'space',\n transform: getMargin,\n defaultScale: defaults.space\n },\n marginLeft: {\n property: 'marginLeft',\n scale: 'space',\n transform: getMargin,\n defaultScale: defaults.space\n },\n marginX: {\n properties: ['marginLeft', 'marginRight'],\n scale: 'space',\n transform: getMargin,\n defaultScale: defaults.space\n },\n marginY: {\n properties: ['marginTop', 'marginBottom'],\n scale: 'space',\n transform: getMargin,\n defaultScale: defaults.space\n }\n};\nconfigs.margin.m = configs.margin.margin;\nconfigs.margin.mt = configs.margin.marginTop;\nconfigs.margin.mr = configs.margin.marginRight;\nconfigs.margin.mb = configs.margin.marginBottom;\nconfigs.margin.ml = configs.margin.marginLeft;\nconfigs.margin.mx = configs.margin.marginX;\nconfigs.margin.my = configs.margin.marginY;\nconfigs.padding = {\n padding: {\n property: 'padding',\n scale: 'space',\n defaultScale: defaults.space\n },\n paddingTop: {\n property: 'paddingTop',\n scale: 'space',\n defaultScale: defaults.space\n },\n paddingRight: {\n property: 'paddingRight',\n scale: 'space',\n defaultScale: defaults.space\n },\n paddingBottom: {\n property: 'paddingBottom',\n scale: 'space',\n defaultScale: defaults.space\n },\n paddingLeft: {\n property: 'paddingLeft',\n scale: 'space',\n defaultScale: defaults.space\n },\n paddingX: {\n properties: ['paddingLeft', 'paddingRight'],\n scale: 'space',\n defaultScale: defaults.space\n },\n paddingY: {\n properties: ['paddingTop', 'paddingBottom'],\n scale: 'space',\n defaultScale: defaults.space\n }\n};\nconfigs.padding.p = configs.padding.padding;\nconfigs.padding.pt = configs.padding.paddingTop;\nconfigs.padding.pr = configs.padding.paddingRight;\nconfigs.padding.pb = configs.padding.paddingBottom;\nconfigs.padding.pl = configs.padding.paddingLeft;\nconfigs.padding.px = configs.padding.paddingX;\nconfigs.padding.py = configs.padding.paddingY;\nexport var margin = system(configs.margin);\nexport var padding = system(configs.padding);\nexport var space = compose(margin, padding);\nexport default space;\n","import { system } from '@styled-system/core';\nexport var shadow = system({\n boxShadow: {\n property: 'boxShadow',\n scale: 'shadows'\n },\n textShadow: {\n property: 'textShadow',\n scale: 'shadows'\n }\n});\nexport default shadow;\n","function _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\n// based on https://github.com/developit/dlv\nexport var get = function get(obj, key, def, p, undef) {\n key = key && key.split ? key.split('.') : [key];\n\n for (p = 0; p < key.length; p++) {\n obj = obj ? obj[key[p]] : undef;\n }\n\n return obj === undef ? def : obj;\n};\nvar defaultBreakpoints = [40, 52, 64].map(function (n) {\n return n + 'em';\n});\nvar defaultTheme = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512],\n fontSizes: [12, 14, 16, 20, 24, 32, 48, 64, 72]\n};\nvar aliases = {\n bg: 'backgroundColor',\n m: 'margin',\n mt: 'marginTop',\n mr: 'marginRight',\n mb: 'marginBottom',\n ml: 'marginLeft',\n mx: 'marginX',\n my: 'marginY',\n p: 'padding',\n pt: 'paddingTop',\n pr: 'paddingRight',\n pb: 'paddingBottom',\n pl: 'paddingLeft',\n px: 'paddingX',\n py: 'paddingY'\n};\nvar multiples = {\n marginX: ['marginLeft', 'marginRight'],\n marginY: ['marginTop', 'marginBottom'],\n paddingX: ['paddingLeft', 'paddingRight'],\n paddingY: ['paddingTop', 'paddingBottom'],\n size: ['width', 'height']\n};\nvar scales = {\n color: 'colors',\n backgroundColor: 'colors',\n borderColor: 'colors',\n margin: 'space',\n marginTop: 'space',\n marginRight: 'space',\n marginBottom: 'space',\n marginLeft: 'space',\n marginX: 'space',\n marginY: 'space',\n padding: 'space',\n paddingTop: 'space',\n paddingRight: 'space',\n paddingBottom: 'space',\n paddingLeft: 'space',\n paddingX: 'space',\n paddingY: 'space',\n top: 'space',\n right: 'space',\n bottom: 'space',\n left: 'space',\n gridGap: 'space',\n gridColumnGap: 'space',\n gridRowGap: 'space',\n gap: 'space',\n columnGap: 'space',\n rowGap: 'space',\n fontFamily: 'fonts',\n fontSize: 'fontSizes',\n fontWeight: 'fontWeights',\n lineHeight: 'lineHeights',\n letterSpacing: 'letterSpacings',\n border: 'borders',\n borderTop: 'borders',\n borderRight: 'borders',\n borderBottom: 'borders',\n borderLeft: 'borders',\n borderWidth: 'borderWidths',\n borderStyle: 'borderStyles',\n borderRadius: 'radii',\n borderTopRightRadius: 'radii',\n borderTopLeftRadius: 'radii',\n borderBottomRightRadius: 'radii',\n borderBottomLeftRadius: 'radii',\n borderTopWidth: 'borderWidths',\n borderTopColor: 'colors',\n borderTopStyle: 'borderStyles',\n borderBottomWidth: 'borderWidths',\n borderBottomColor: 'colors',\n borderBottomStyle: 'borderStyles',\n borderLeftWidth: 'borderWidths',\n borderLeftColor: 'colors',\n borderLeftStyle: 'borderStyles',\n borderRightWidth: 'borderWidths',\n borderRightColor: 'colors',\n borderRightStyle: 'borderStyles',\n outlineColor: 'colors',\n boxShadow: 'shadows',\n textShadow: 'shadows',\n zIndex: 'zIndices',\n width: 'sizes',\n minWidth: 'sizes',\n maxWidth: 'sizes',\n height: 'sizes',\n minHeight: 'sizes',\n maxHeight: 'sizes',\n flexBasis: 'sizes',\n size: 'sizes',\n // svg\n fill: 'colors',\n stroke: 'colors'\n};\n\nvar positiveOrNegative = function positiveOrNegative(scale, value) {\n if (typeof value !== 'number' || value >= 0) {\n return get(scale, value, value);\n }\n\n var absolute = Math.abs(value);\n var n = get(scale, absolute, absolute);\n if (typeof n === 'string') return '-' + n;\n return n * -1;\n};\n\nvar transforms = ['margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'top', 'bottom', 'left', 'right'].reduce(function (acc, curr) {\n var _extends2;\n\n return _extends({}, acc, (_extends2 = {}, _extends2[curr] = positiveOrNegative, _extends2));\n}, {});\nexport var responsive = function responsive(styles) {\n return function (theme) {\n var next = {};\n var breakpoints = get(theme, 'breakpoints', defaultBreakpoints);\n var mediaQueries = [null].concat(breakpoints.map(function (n) {\n return \"@media screen and (min-width: \" + n + \")\";\n }));\n\n for (var key in styles) {\n var value = typeof styles[key] === 'function' ? styles[key](theme) : styles[key];\n if (value == null) continue;\n\n if (!Array.isArray(value)) {\n next[key] = value;\n continue;\n }\n\n for (var i = 0; i < value.slice(0, mediaQueries.length).length; i++) {\n var media = mediaQueries[i];\n\n if (!media) {\n next[key] = value[i];\n continue;\n }\n\n next[media] = next[media] || {};\n if (value[i] == null) continue;\n next[media][key] = value[i];\n }\n }\n\n return next;\n };\n};\nexport var css = function css(args) {\n return function (props) {\n if (props === void 0) {\n props = {};\n }\n\n var theme = _extends({}, defaultTheme, {}, props.theme || props);\n\n var result = {};\n var obj = typeof args === 'function' ? args(theme) : args;\n var styles = responsive(obj)(theme);\n\n for (var key in styles) {\n var x = styles[key];\n var val = typeof x === 'function' ? x(theme) : x;\n\n if (key === 'variant') {\n var variant = css(get(theme, val))(theme);\n result = _extends({}, result, {}, variant);\n continue;\n }\n\n if (val && typeof val === 'object') {\n result[key] = css(val)(theme);\n continue;\n }\n\n var prop = get(aliases, key, key);\n var scaleName = get(scales, prop);\n var scale = get(theme, scaleName, get(theme, prop, {}));\n var transform = get(transforms, prop, get);\n var value = transform(scale, val, val);\n\n if (multiples[prop]) {\n var dirs = multiples[prop];\n\n for (var i = 0; i < dirs.length; i++) {\n result[dirs[i]] = value;\n }\n } else {\n result[prop] = value;\n }\n }\n\n return result;\n };\n};\nexport default css;\n","import { get, createParser } from '@styled-system/core';\nimport css from '@styled-system/css';\nexport var variant = function variant(_ref) {\n var _config;\n\n var scale = _ref.scale,\n _ref$prop = _ref.prop,\n prop = _ref$prop === void 0 ? 'variant' : _ref$prop,\n _ref$variants = _ref.variants,\n variants = _ref$variants === void 0 ? {} : _ref$variants,\n key = _ref.key;\n var sx;\n\n if (Object.keys(variants).length) {\n sx = function sx(value, scale, props) {\n return css(get(scale, value, null))(props.theme);\n };\n } else {\n sx = function sx(value, scale) {\n return get(scale, value, null);\n };\n }\n\n sx.scale = scale || key;\n sx.defaults = variants;\n var config = (_config = {}, _config[prop] = sx, _config);\n var parser = createParser(config);\n return parser;\n};\nexport default variant;\nexport var buttonStyle = variant({\n key: 'buttons'\n});\nexport var textStyle = variant({\n key: 'textStyles',\n prop: 'textStyle'\n});\nexport var colorStyle = variant({\n key: 'colorStyles',\n prop: 'colors'\n});\n","import memoize from '@emotion/memoize';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { compose, space, typography, color, layout, flexbox, border, background, position, grid, shadow, buttonStyle, textStyle, colorStyle } from 'styled-system';\nvar all = compose(space, typography, color, layout, flexbox, border, background, position, grid, shadow, buttonStyle, textStyle, colorStyle);\nexport var props = all.propNames;\nexport var createShouldForwardProp = function createShouldForwardProp(props) {\n var regex = new RegExp(\"^(\" + props.join('|') + \")$\");\n return memoize(function (prop) {\n return isPropValid(prop) && !regex.test(prop);\n });\n};\nexport default createShouldForwardProp(props);\n","import { createStyleFunction, createParser } from '@styled-system/core'; // v4 api shims\n\nimport layout from '@styled-system/layout';\nimport color from '@styled-system/color';\nimport typography from '@styled-system/typography';\nimport flexbox from '@styled-system/flexbox';\nimport grid from '@styled-system/grid';\nimport border from '@styled-system/border';\nimport background from '@styled-system/background';\nimport position from '@styled-system/position';\nexport { get, createParser, createStyleFunction, compose, system } from '@styled-system/core';\nexport { margin, padding, space } from '@styled-system/space';\nexport { color } from '@styled-system/color';\nexport { layout } from '@styled-system/layout';\nexport { typography } from '@styled-system/typography';\nexport { flexbox } from '@styled-system/flexbox';\nexport { border } from '@styled-system/border';\nexport { background } from '@styled-system/background';\nexport { position } from '@styled-system/position';\nexport { grid } from '@styled-system/grid';\nexport { shadow } from '@styled-system/shadow';\nexport { default as boxShadow, default as textShadow } from '@styled-system/shadow';\nexport { variant, buttonStyle, textStyle, colorStyle } from '@styled-system/variant';\nvar width = layout.width,\n height = layout.height,\n minWidth = layout.minWidth,\n minHeight = layout.minHeight,\n maxWidth = layout.maxWidth,\n maxHeight = layout.maxHeight,\n size = layout.size,\n verticalAlign = layout.verticalAlign,\n display = layout.display,\n overflow = layout.overflow,\n overflowX = layout.overflowX,\n overflowY = layout.overflowY;\nvar opacity = color.opacity;\nvar fontSize = typography.fontSize,\n fontFamily = typography.fontFamily,\n fontWeight = typography.fontWeight,\n lineHeight = typography.lineHeight,\n textAlign = typography.textAlign,\n fontStyle = typography.fontStyle,\n letterSpacing = typography.letterSpacing;\nvar alignItems = flexbox.alignItems,\n alignContent = flexbox.alignContent,\n justifyItems = flexbox.justifyItems,\n justifyContent = flexbox.justifyContent,\n flexWrap = flexbox.flexWrap,\n flexDirection = flexbox.flexDirection,\n flex = flexbox.flex,\n flexGrow = flexbox.flexGrow,\n flexShrink = flexbox.flexShrink,\n flexBasis = flexbox.flexBasis,\n justifySelf = flexbox.justifySelf,\n alignSelf = flexbox.alignSelf,\n order = flexbox.order;\nvar gridGap = grid.gridGap,\n gridColumnGap = grid.gridColumnGap,\n gridRowGap = grid.gridRowGap,\n gridColumn = grid.gridColumn,\n gridRow = grid.gridRow,\n gridAutoFlow = grid.gridAutoFlow,\n gridAutoColumns = grid.gridAutoColumns,\n gridAutoRows = grid.gridAutoRows,\n gridTemplateColumns = grid.gridTemplateColumns,\n gridTemplateRows = grid.gridTemplateRows,\n gridTemplateAreas = grid.gridTemplateAreas,\n gridArea = grid.gridArea;\nvar borderWidth = border.borderWidth,\n borderStyle = border.borderStyle,\n borderColor = border.borderColor,\n borderTop = border.borderTop,\n borderRight = border.borderRight,\n borderBottom = border.borderBottom,\n borderLeft = border.borderLeft,\n borderRadius = border.borderRadius;\nvar backgroundImage = background.backgroundImage,\n backgroundSize = background.backgroundSize,\n backgroundPosition = background.backgroundPosition,\n backgroundRepeat = background.backgroundRepeat;\nvar zIndex = position.zIndex,\n top = position.top,\n right = position.right,\n bottom = position.bottom,\n left = position.left;\nexport { default as borders } from '@styled-system/border';\nexport { width, height, minWidth, minHeight, maxWidth, maxHeight, size, verticalAlign, display, overflow, overflowX, overflowY // color\n, opacity // typography\n, fontSize, fontFamily, fontWeight, lineHeight, textAlign, fontStyle, letterSpacing // flexbox\n, alignItems, alignContent, justifyItems, justifyContent, flexWrap, flexDirection, flex, flexGrow, flexShrink, flexBasis, justifySelf, alignSelf, order // grid\n, gridGap, gridColumnGap, gridRowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea // border\n, borderWidth, borderStyle, borderColor, borderTop, borderRight, borderBottom, borderLeft, borderRadius // background\n, backgroundImage, backgroundSize, backgroundPosition, backgroundRepeat // position\n, zIndex, top, right, bottom, left }; // v4 style API shim\n\nexport var style = function style(_ref) {\n var prop = _ref.prop,\n cssProperty = _ref.cssProperty,\n alias = _ref.alias,\n key = _ref.key,\n transformValue = _ref.transformValue,\n scale = _ref.scale,\n properties = _ref.properties;\n var config = {};\n config[prop] = createStyleFunction({\n properties: properties,\n property: cssProperty || prop,\n scale: key,\n defaultScale: scale,\n transform: transformValue\n });\n if (alias) config[alias] = config[prop];\n var parse = createParser(config);\n return parse;\n};\n","/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n return tag;\n}\n\nvar StyleSheet =\n/*#__PURE__*/\nfunction () {\n function StyleSheet(options) {\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n var _tag = createStyleElement(this);\n\n var before;\n\n if (this.tags.length === 0) {\n before = this.before;\n } else {\n before = this.tags[this.tags.length - 1].nextSibling;\n }\n\n this.container.insertBefore(_tag, before);\n this.tags.push(_tag);\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is a really hot path\n // we check the second character first because having \"i\"\n // as the second character will happen less often than\n // having \"@\" as the first character\n var isImportRule = rule.charCodeAt(1) === 105 && rule.charCodeAt(0) === 64; // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n\n sheet.insertRule(rule, // we need to insert @import rules before anything else\n // otherwise there will be an error\n // technically this means that the @import rules will\n // _usually_(not always since there could be multiple style tags)\n // be the first ones in prod and generally later in dev\n // this shouldn't really matter in the real world though\n // @import is generally only used for font faces from google fonts and etc.\n // so while this could be technically correct then it would be slower and larger\n // for a tiny bit of correctness that won't matter in the real world\n isImportRule ? 0 : sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","function stylis_min (W) {\n function M(d, c, e, h, a) {\n for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) {\n g = e.charCodeAt(l);\n l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++);\n\n if (0 === b + n + v + m) {\n if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) {\n switch (g) {\n case 32:\n case 9:\n case 59:\n case 13:\n case 10:\n break;\n\n default:\n f += e.charAt(l);\n }\n\n g = 59;\n }\n\n switch (g) {\n case 123:\n f = f.trim();\n q = f.charCodeAt(0);\n k = 1;\n\n for (t = ++l; l < B;) {\n switch (g = e.charCodeAt(l)) {\n case 123:\n k++;\n break;\n\n case 125:\n k--;\n break;\n\n case 47:\n switch (g = e.charCodeAt(l + 1)) {\n case 42:\n case 47:\n a: {\n for (u = l + 1; u < J; ++u) {\n switch (e.charCodeAt(u)) {\n case 47:\n if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) {\n l = u + 1;\n break a;\n }\n\n break;\n\n case 10:\n if (47 === g) {\n l = u + 1;\n break a;\n }\n\n }\n }\n\n l = u;\n }\n\n }\n\n break;\n\n case 91:\n g++;\n\n case 40:\n g++;\n\n case 34:\n case 39:\n for (; l++ < J && e.charCodeAt(l) !== g;) {\n }\n\n }\n\n if (0 === k) break;\n l++;\n }\n\n k = e.substring(t, l);\n 0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0));\n\n switch (q) {\n case 64:\n 0 < r && (f = f.replace(N, ''));\n g = f.charCodeAt(1);\n\n switch (g) {\n case 100:\n case 109:\n case 115:\n case 45:\n r = c;\n break;\n\n default:\n r = O;\n }\n\n k = M(c, r, k, g, a + 1);\n t = k.length;\n 0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = ''));\n if (0 < t) switch (g) {\n case 115:\n f = f.replace(da, ea);\n\n case 100:\n case 109:\n case 45:\n k = f + '{' + k + '}';\n break;\n\n case 107:\n f = f.replace(fa, '$1 $2');\n k = f + '{' + k + '}';\n k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k;\n break;\n\n default:\n k = f + k, 112 === h && (k = (p += k, ''));\n } else k = '';\n break;\n\n default:\n k = M(c, X(c, f, I), k, h, a + 1);\n }\n\n F += k;\n k = I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n break;\n\n case 125:\n case 59:\n f = (0 < r ? f.replace(N, '') : f).trim();\n if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\\x00\\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) {\n case 0:\n break;\n\n case 64:\n if (105 === g || 99 === g) {\n G += f + e.charAt(l);\n break;\n }\n\n default:\n 58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2)));\n }\n I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n }\n }\n\n switch (g) {\n case 13:\n case 10:\n 47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\\x00');\n 0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h);\n z = 1;\n D++;\n break;\n\n case 59:\n case 125:\n if (0 === b + n + v + m) {\n z++;\n break;\n }\n\n default:\n z++;\n y = e.charAt(l);\n\n switch (g) {\n case 9:\n case 32:\n if (0 === n + m + b) switch (x) {\n case 44:\n case 58:\n case 9:\n case 32:\n y = '';\n break;\n\n default:\n 32 !== g && (y = ' ');\n }\n break;\n\n case 0:\n y = '\\\\0';\n break;\n\n case 12:\n y = '\\\\f';\n break;\n\n case 11:\n y = '\\\\v';\n break;\n\n case 38:\n 0 === n + b + m && (r = I = 1, y = '\\f' + y);\n break;\n\n case 108:\n if (0 === n + b + m + E && 0 < u) switch (l - u) {\n case 2:\n 112 === x && 58 === e.charCodeAt(l - 3) && (E = x);\n\n case 8:\n 111 === K && (E = K);\n }\n break;\n\n case 58:\n 0 === n + b + m && (u = l);\n break;\n\n case 44:\n 0 === b + v + n + m && (r = 1, y += '\\r');\n break;\n\n case 34:\n case 39:\n 0 === b && (n = n === g ? 0 : 0 === n ? g : n);\n break;\n\n case 91:\n 0 === n + b + v && m++;\n break;\n\n case 93:\n 0 === n + b + v && m--;\n break;\n\n case 41:\n 0 === n + b + m && v--;\n break;\n\n case 40:\n if (0 === n + b + m) {\n if (0 === q) switch (2 * x + 3 * K) {\n case 533:\n break;\n\n default:\n q = 1;\n }\n v++;\n }\n\n break;\n\n case 64:\n 0 === b + v + n + m + u + k && (k = 1);\n break;\n\n case 42:\n case 47:\n if (!(0 < n + m + v)) switch (b) {\n case 0:\n switch (2 * g + 3 * e.charCodeAt(l + 1)) {\n case 235:\n b = 47;\n break;\n\n case 220:\n t = l, b = 42;\n }\n\n break;\n\n case 42:\n 47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0);\n }\n }\n\n 0 === b && (f += y);\n }\n\n K = x;\n x = g;\n l++;\n }\n\n t = p.length;\n\n if (0 < t) {\n r = c;\n if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F;\n p = r.join(',') + '{' + p + '}';\n\n if (0 !== w * E) {\n 2 !== w || L(p, 2) || (E = 0);\n\n switch (E) {\n case 111:\n p = p.replace(ha, ':-moz-$1') + p;\n break;\n\n case 112:\n p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p;\n }\n\n E = 0;\n }\n }\n\n return G + p + F;\n }\n\n function X(d, c, e) {\n var h = c.trim().split(ia);\n c = h;\n var a = h.length,\n m = d.length;\n\n switch (m) {\n case 0:\n case 1:\n var b = 0;\n\n for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) {\n c[b] = Z(d, c[b], e).trim();\n }\n\n break;\n\n default:\n var v = b = 0;\n\n for (c = []; b < a; ++b) {\n for (var n = 0; n < m; ++n) {\n c[v++] = Z(d[n] + ' ', h[b], e).trim();\n }\n }\n\n }\n\n return c;\n }\n\n function Z(d, c, e) {\n var h = c.charCodeAt(0);\n 33 > h && (h = (c = c.trim()).charCodeAt(0));\n\n switch (h) {\n case 38:\n return c.replace(F, '$1' + d.trim());\n\n case 58:\n return d.trim() + c.replace(F, '$1' + d.trim());\n\n default:\n if (0 < 1 * e && 0 < c.indexOf('\\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim());\n }\n\n return d + c;\n }\n\n function P(d, c, e, h) {\n var a = d + ';',\n m = 2 * c + 3 * e + 4 * h;\n\n if (944 === m) {\n d = a.indexOf(':', 9) + 1;\n var b = a.substring(d, a.length - 1).trim();\n b = a.substring(0, d).trim() + b + ';';\n return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b;\n }\n\n if (0 === w || 2 === w && !L(a, 1)) return a;\n\n switch (m) {\n case 1015:\n return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a;\n\n case 951:\n return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a;\n\n case 963:\n return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a;\n\n case 1009:\n if (100 !== a.charCodeAt(4)) break;\n\n case 969:\n case 942:\n return '-webkit-' + a + a;\n\n case 978:\n return '-webkit-' + a + '-moz-' + a + a;\n\n case 1019:\n case 983:\n return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a;\n\n case 883:\n if (45 === a.charCodeAt(8)) return '-webkit-' + a + a;\n if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a;\n break;\n\n case 932:\n if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) {\n case 103:\n return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a;\n\n case 115:\n return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a;\n\n case 98:\n return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a;\n }\n return '-webkit-' + a + '-ms-' + a + a;\n\n case 964:\n return '-webkit-' + a + '-ms-flex-' + a + a;\n\n case 1023:\n if (99 !== a.charCodeAt(8)) break;\n b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify');\n return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a;\n\n case 1005:\n return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a;\n\n case 1e3:\n b = a.substring(13).trim();\n c = b.indexOf('-') + 1;\n\n switch (b.charCodeAt(0) + b.charCodeAt(c)) {\n case 226:\n b = a.replace(G, 'tb');\n break;\n\n case 232:\n b = a.replace(G, 'tb-rl');\n break;\n\n case 220:\n b = a.replace(G, 'lr');\n break;\n\n default:\n return a;\n }\n\n return '-webkit-' + a + '-ms-' + b + a;\n\n case 1017:\n if (-1 === a.indexOf('sticky', 9)) break;\n\n case 975:\n c = (a = d).length - 10;\n b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim();\n\n switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) {\n case 203:\n if (111 > b.charCodeAt(8)) break;\n\n case 115:\n a = a.replace(b, '-webkit-' + b) + ';' + a;\n break;\n\n case 207:\n case 102:\n a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a;\n }\n\n return a + ';';\n\n case 938:\n if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) {\n case 105:\n return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a;\n\n case 115:\n return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a;\n\n default:\n return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a;\n }\n break;\n\n case 973:\n case 989:\n if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break;\n\n case 931:\n case 953:\n if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a;\n break;\n\n case 962:\n if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a;\n }\n\n return a;\n }\n\n function L(d, c) {\n var e = d.indexOf(1 === c ? ':' : '{'),\n h = d.substring(0, 3 !== c ? e : 10);\n e = d.substring(e + 1, d.length - 1);\n return R(2 !== c ? h : h.replace(na, '$1'), e, c);\n }\n\n function ea(d, c) {\n var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2));\n return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')';\n }\n\n function H(d, c, e, h, a, m, b, v, n, q) {\n for (var g = 0, x = c, w; g < A; ++g) {\n switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) {\n case void 0:\n case !1:\n case !0:\n case null:\n break;\n\n default:\n x = w;\n }\n }\n\n if (x !== c) return x;\n }\n\n function T(d) {\n switch (d) {\n case void 0:\n case null:\n A = S.length = 0;\n break;\n\n default:\n if ('function' === typeof d) S[A++] = d;else if ('object' === typeof d) for (var c = 0, e = d.length; c < e; ++c) {\n T(d[c]);\n } else Y = !!d | 0;\n }\n\n return T;\n }\n\n function U(d) {\n d = d.prefix;\n void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0);\n return U;\n }\n\n function B(d, c) {\n var e = d;\n 33 > e.charCodeAt(0) && (e = e.trim());\n V = e;\n e = [V];\n\n if (0 < A) {\n var h = H(-1, c, e, e, D, z, 0, 0, 0, 0);\n void 0 !== h && 'string' === typeof h && (c = h);\n }\n\n var a = M(O, e, c, 0, 0);\n 0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h));\n V = '';\n E = 0;\n z = D = 1;\n return a;\n }\n\n var ca = /^\\0+/g,\n N = /[\\0\\r\\f]/g,\n aa = /: */g,\n ka = /zoo|gra/,\n ma = /([,: ])(transform)/g,\n ia = /,\\r+?/g,\n F = /([\\t\\r\\n ])*\\f?&/g,\n fa = /@(k\\w+)\\s*(\\S*)\\s*/,\n Q = /::(place)/g,\n ha = /:(read-only)/g,\n G = /[svh]\\w+-[tblr]{2}/,\n da = /\\(\\s*(.*)\\s*\\)/g,\n oa = /([\\s\\S]*?);/g,\n ba = /-self|flex-/g,\n na = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n la = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n ja = /([^-])(image-set\\()/,\n z = 1,\n D = 1,\n E = 0,\n w = 1,\n O = [],\n S = [],\n A = 0,\n R = null,\n Y = 0,\n V = '';\n B.use = T;\n B.set = U;\n void 0 !== W && U(W);\n return B;\n}\n\nexport default stylis_min;\n","import { StyleSheet } from '@emotion/sheet';\nimport Stylis from '@emotion/stylis';\nimport '@emotion/weak-memoize';\n\n// https://github.com/thysultan/stylis.js/tree/master/plugins/rule-sheet\n// inlined to avoid umd wrapper and peerDep warnings/installing stylis\n// since we use stylis after closure compiler\nvar delimiter = '/*|*/';\nvar needle = delimiter + '}';\n\nfunction toSheet(block) {\n if (block) {\n Sheet.current.insert(block + '}');\n }\n}\n\nvar Sheet = {\n current: null\n};\nvar ruleSheet = function ruleSheet(context, content, selectors, parents, line, column, length, ns, depth, at) {\n switch (context) {\n // property\n case 1:\n {\n switch (content.charCodeAt(0)) {\n case 64:\n {\n // @import\n Sheet.current.insert(content + ';');\n return '';\n }\n // charcode for l\n\n case 108:\n {\n // charcode for b\n // this ignores label\n if (content.charCodeAt(2) === 98) {\n return '';\n }\n }\n }\n\n break;\n }\n // selector\n\n case 2:\n {\n if (ns === 0) return content + delimiter;\n break;\n }\n // at-rule\n\n case 3:\n {\n switch (ns) {\n // @font-face, @page\n case 102:\n case 112:\n {\n Sheet.current.insert(selectors[0] + content);\n return '';\n }\n\n default:\n {\n return content + (at === 0 ? delimiter : '');\n }\n }\n }\n\n case -2:\n {\n content.split(needle).forEach(toSheet);\n }\n }\n};\n\nvar createCache = function createCache(options) {\n if (options === undefined) options = {};\n var key = options.key || 'css';\n var stylisOptions;\n\n if (options.prefix !== undefined) {\n stylisOptions = {\n prefix: options.prefix\n };\n }\n\n var stylis = new Stylis(stylisOptions);\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {}; // $FlowFixMe\n\n var container;\n\n {\n container = options.container || document.head;\n var nodes = document.querySelectorAll(\"style[data-emotion-\" + key + \"]\");\n Array.prototype.forEach.call(nodes, function (node) {\n var attrib = node.getAttribute(\"data-emotion-\" + key); // $FlowFixMe\n\n attrib.split(' ').forEach(function (id) {\n inserted[id] = true;\n });\n\n if (node.parentNode !== container) {\n container.appendChild(node);\n }\n });\n }\n\n var _insert;\n\n {\n stylis.use(options.stylisPlugins)(ruleSheet);\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n var name = serialized.name;\n Sheet.current = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n var map = serialized.map;\n Sheet.current = {\n insert: function insert(rule) {\n sheet.insert(rule + map);\n }\n };\n }\n\n stylis(selector, serialized.styles);\n\n if (shouldCache) {\n cache.inserted[name] = true;\n }\n };\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // https://esbench.com/bench/5bf7371a4cd7e6009ef61d0a\n var commentStart = /\\/\\*/g;\n var commentEnd = /\\*\\//g;\n stylis.use(function (context, content) {\n switch (context) {\n case -1:\n {\n while (commentStart.test(content)) {\n commentEnd.lastIndex = commentStart.lastIndex;\n\n if (commentEnd.test(content)) {\n commentStart.lastIndex = commentEnd.lastIndex;\n continue;\n }\n\n throw new Error('Your styles have an unterminated comment (\"/*\" without corresponding \"*/\").');\n }\n\n commentStart.lastIndex = 0;\n break;\n }\n }\n });\n stylis.use(function (context, content, selectors) {\n switch (context) {\n case -1:\n {\n var flag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n var unsafePseudoClasses = content.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses && cache.compat !== true) {\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n var ignoreRegExp = new RegExp(unsafePseudoClass + \".*\\\\/\\\\* \" + flag + \" \\\\*\\\\/\");\n var ignore = ignoreRegExp.test(content);\n\n if (unsafePseudoClass && !ignore) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n }\n });\n }\n\n break;\n }\n }\n });\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n return cache;\n};\n\nexport default createCache;\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className]);\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false && cache.compat !== undefined) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(\".\" + className, current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(attr|calc|counters?|url)\\(/;\n var contentValues = ['normal', 'none', 'counter', 'open-quote', 'close-quote', 'no-open-quote', 'no-close-quote', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n console.error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nvar shouldWarnAboutInterpolatingClassNameFromCss = true;\n\nfunction handleInterpolation(mergedProps, registered, interpolation, couldBeSelectorInterpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error('Component selectors can only be used in conjunction with babel-plugin-emotion.');\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result, couldBeSelectorInterpolation);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n\n if (process.env.NODE_ENV !== 'production' && couldBeSelectorInterpolation && shouldWarnAboutInterpolatingClassNameFromCss && cached !== undefined) {\n console.error('Interpolating a className from css`` is not recommended and will cause problems with composition.\\n' + 'Interpolating a className from css`` will be completely unsupported in a future major version of Emotion');\n shouldWarnAboutInterpolatingClassNameFromCss = false;\n }\n\n return cached !== undefined && !couldBeSelectorInterpolation ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i], false);\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error('Component selectors can only be used in conjunction with babel-plugin-emotion.');\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value, false);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*;/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings, false);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i], styles.charCodeAt(styles.length - 1) === 46);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","import '@babel/runtime/helpers/inheritsLoose';\nimport { createContext, forwardRef, createElement } from 'react';\nimport createCache from '@emotion/cache';\nimport { getRegisteredStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar EmotionCacheContext = /*#__PURE__*/createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? createCache() : null);\nvar ThemeContext = /*#__PURE__*/createContext({});\nvar CacheProvider = EmotionCacheContext.Provider;\n\nvar withEmotionCache = function withEmotionCache(func) {\n var render = function render(props, ref) {\n return /*#__PURE__*/createElement(EmotionCacheContext.Consumer, null, function (cache) {\n return func(props, cache, ref);\n });\n }; // $FlowFixMe\n\n\n return /*#__PURE__*/forwardRef(render);\n};\n\n// thus we only need to replace what is a valid character for JS, but not for CSS\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/css' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // TODO: check if this still works with all of those different JSX functions\n\n if (process.env.NODE_ENV !== 'production') {\n var error = new Error();\n\n if (error.stack) {\n // chrome\n var match = error.stack.match(/at (?:Object\\.|Module\\.|)(?:jsx|createEmotionProps).*\\n\\s+at (?:Object\\.|)([A-Z][A-Za-z$]+) /);\n\n if (!match) {\n // safari and firefox\n match = error.stack.match(/.*\\n([A-Z][A-Za-z$]+)@/);\n }\n\n if (match) {\n newProps[labelPropName] = sanitizeIdentifier(match[1]);\n }\n }\n }\n\n return newProps;\n};\n\nvar render = function render(cache, props, theme, ref) {\n var cssProp = theme === null ? props.css : props.css(theme); // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var type = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles);\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n var rules = insertStyles(cache, serialized, typeof type === 'string');\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n var ele = /*#__PURE__*/createElement(type, newProps);\n\n return ele;\n}; // eslint-disable-next-line no-undef\n\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n if (typeof props.css === 'function') {\n return /*#__PURE__*/createElement(ThemeContext.Consumer, null, function (theme) {\n return render(cache, props, theme, ref);\n });\n }\n\n return render(cache, props, null, ref);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nexport { CacheProvider as C, Emotion as E, ThemeContext as T, createEmotionProps as c, hasOwnProperty as h, withEmotionCache as w };\n","import { serializeStyles } from '@emotion/serialize';\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nexport default css;\n","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport { createElement, Component } from 'react';\nimport '@emotion/cache';\nimport { h as hasOwnProperty, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext } from './emotion-element-57a3a7a3.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, w as withEmotionCache } from './emotion-element-57a3a7a3.browser.esm.js';\nimport { insertStyles, getRegisteredStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { StyleSheet } from '@emotion/sheet';\nimport css from '@emotion/css';\nexport { default as css } from '@emotion/css';\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !hasOwnProperty.call(props, 'css')) {\n // $FlowFixMe\n return createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return createElement.apply(null, createElementArgArray);\n};\n\nvar warnedAboutCssPropForGlobal = false;\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n\n if (typeof styles === 'function') {\n return /*#__PURE__*/createElement(ThemeContext.Consumer, null, function (theme) {\n var serialized = serializeStyles([styles(theme)]);\n return /*#__PURE__*/createElement(InnerGlobal, {\n serialized: serialized,\n cache: cache\n });\n });\n }\n\n var serialized = serializeStyles([styles]);\n return /*#__PURE__*/createElement(InnerGlobal, {\n serialized: serialized,\n cache: cache\n });\n});\n\n// maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\nvar InnerGlobal = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(InnerGlobal, _React$Component);\n\n function InnerGlobal(props, context, updater) {\n return _React$Component.call(this, props, context, updater) || this;\n }\n\n var _proto = InnerGlobal.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.sheet = new StyleSheet({\n key: this.props.cache.key + \"-global\",\n nonce: this.props.cache.sheet.nonce,\n container: this.props.cache.sheet.container\n }); // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion-\" + this.props.cache.key + \"=\\\"\" + this.props.serialized.name + \"\\\"]\");\n\n if (node !== null) {\n this.sheet.tags.push(node);\n }\n\n if (this.props.cache.sheet.tags.length) {\n this.sheet.before = this.props.cache.sheet.tags[0];\n }\n\n this.insertStyles();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (prevProps.serialized.name !== this.props.serialized.name) {\n this.insertStyles();\n }\n };\n\n _proto.insertStyles = function insertStyles$1() {\n if (this.props.serialized.next !== undefined) {\n // insert keyframes\n insertStyles(this.props.cache, this.props.serialized.next, true);\n }\n\n if (this.sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = this.sheet.tags[this.sheet.tags.length - 1].nextElementSibling;\n this.sheet.before = element;\n this.sheet.flush();\n }\n\n this.props.cache.insert(\"\", this.props.serialized, this.sheet, false);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.sheet.flush();\n };\n\n _proto.render = function render() {\n\n return null;\n };\n\n return InnerGlobal;\n}(Component);\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar ClassNames = withEmotionCache(function (props, context) {\n return /*#__PURE__*/createElement(ThemeContext.Consumer, null, function (theme) {\n var hasRendered = false;\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, context.registered);\n\n {\n insertStyles(context, serialized, false);\n }\n\n return context.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(context.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: theme\n };\n var ele = props.children(content);\n hasRendered = true;\n\n return ele;\n });\n});\n\nexport { ClassNames, Global, jsx as createElement, jsx, keyframes };\n","import _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport { createElement } from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { withEmotionCache, ThemeContext } from '@emotion/core';\nimport { getRegisteredStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n return key !== 'theme' && key !== 'innerRef';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\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(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\n\nvar createStyled = function createStyled(tag, options) {\n if (process.env.NODE_ENV !== 'production') {\n if (tag === undefined) {\n throw new Error('You are trying to create a styled element with an undefined component.\\nYou may have forgotten to import it.');\n }\n }\n\n var identifierName;\n var shouldForwardProp;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n shouldForwardProp = tag.__emotion_forwardProp && options.shouldForwardProp ? function (propName) {\n return tag.__emotion_forwardProp(propName) && // $FlowFixMe\n options.shouldForwardProp(propName);\n } : options.shouldForwardProp;\n }\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n return function () {\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n styles.push.apply(styles, args);\n } else {\n if (process.env.NODE_ENV !== 'production' && args[0][0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[0][0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n if (process.env.NODE_ENV !== 'production' && args[0][i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[i], args[0][i]);\n }\n } // $FlowFixMe: we need to cast StatelessFunctionalComponent to our PrivateStyledComponent class\n\n\n var Styled = withEmotionCache(function (props, context, ref) {\n return createElement(ThemeContext.Consumer, null, function (theme) {\n var finalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = theme;\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(context.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), context.registered, mergedProps);\n var rules = insertStyles(context, serialized, typeof finalTag === 'string');\n className += context.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(finalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if ( // $FlowFixMe\n finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n newProps.ref = ref || props.innerRef;\n\n if (process.env.NODE_ENV !== 'production' && props.innerRef) {\n console.error('`innerRef` is deprecated and will be removed in a future major version of Emotion, please use the `ref` prop instead' + (identifierName === undefined ? '' : \" in the usage of `\" + identifierName + \"`\"));\n }\n\n var ele = createElement(finalTag, newProps);\n\n return ele;\n });\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && process.env.NODE_ENV !== 'production') {\n return 'NO_COMPONENT_SELECTOR';\n } // $FlowFixMe: coerce undefined to string\n\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag, nextOptions) {\n return createStyled(nextTag, nextOptions !== undefined ? _objectSpread({}, options || {}, {}, nextOptions) : options).apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport default createStyled;\n","import styled from '@emotion/styled-base';\n\nvar tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\nvar newStyled = styled.bind();\ntags.forEach(function (tagName) {\n newStyled[tagName] = newStyled(tagName);\n});\n\nexport default newStyled;\n","import styled from '@emotion/styled'\nimport { css, get } from '@theme-ui/css'\nimport { createShouldForwardProp } from '@styled-system/should-forward-prop'\nimport space from '@styled-system/space'\nimport color from '@styled-system/color'\n\nconst shouldForwardProp = createShouldForwardProp([\n ...space.propNames,\n ...color.propNames,\n])\n\nconst sx = props => css(props.sx)(props.theme)\nconst base = props => css(props.__css)(props.theme)\nconst variant = ({ theme, variant, __themeKey = 'variants' }) =>\n css(get(theme, __themeKey + '.' + variant, get(theme, variant)))\n\nexport const Box = styled('div', {\n shouldForwardProp,\n})(\n {\n boxSizing: 'border-box',\n margin: 0,\n minWidth: 0,\n },\n base,\n variant,\n space,\n color,\n sx,\n props => props.css\n)\n\nexport default Box\n","import styled from '@emotion/styled'\nimport Box from './Box'\n\nexport const Flex = styled(Box)({\n display: 'flex',\n})\n","import React from 'react'\nimport Box from './Box'\n\nconst px = n => (typeof n === 'number' ? n + 'px' : n)\n\nconst widthToColumns = width =>\n Array.isArray(width)\n ? width.map(widthToColumns)\n : !!width && `repeat(auto-fit, minmax(${px(width)}, 1fr))`\n\nconst countToColumns = n =>\n Array.isArray(n)\n ? n.map(countToColumns)\n : !!n && (typeof n === 'number' ? `repeat(${n}, 1fr)` : n)\n\nexport const Grid = React.forwardRef(\n ({ width, columns, gap = 3, ...props }, ref) => {\n const gridTemplateColumns = !!width\n ? widthToColumns(width)\n : countToColumns(columns)\n\n return (\n \n )\n }\n)\n","import React from 'react'\nimport Box from './Box'\n\nexport const Link = React.forwardRef((props, ref) => (\n \n))\n","import React from 'react'\nimport Box from './Box'\n\nexport const Button = React.forwardRef((props, ref) => (\n \n))\n","import React from 'react'\nimport Box from './Box'\n\nexport const Image = React.forwardRef((props, ref) => (\n \n))\n","import React from 'react'\nimport Box from './Box'\n\nexport const Text = React.forwardRef((props, ref) => (\n \n))\n","import React from 'react'\nimport Box from './Box'\n\nexport const Heading = React.forwardRef((props, ref) => (\n \n))\n","import React from 'react'\nimport Box from './Box'\n\nexport const Label = React.forwardRef((props, ref) => (\n \n))\n","import React from 'react'\nimport Box from './Box'\n\nexport const Card = React.forwardRef((props, ref) => (\n \n))\n","import React from 'react'\nimport Box from './Box'\n\nexport const Input = React.forwardRef((props, ref) => (\n \n))\n","import React from 'react'\nimport Box from './Box'\n\nexport default ({ size = 24, ...props }) => (\n \n)\n","export const getProps = test => props => {\n const next = {}\n for (const key in props) {\n if (test(key || '')) next[key] = props[key]\n }\n return next\n}\n\nconst MRE = /^m[trblxy]?$/\n\nexport const getMargin = getProps(k => MRE.test(k))\nexport const omitMargin = getProps(k => !MRE.test(k))\n","import React from 'react'\nimport Box from './Box'\nimport SVG from './SVG'\nimport { getMargin, omitMargin } from './util'\n\nconst DownArrow = props => (\n \n \n \n)\n\nexport const Select = React.forwardRef((props, ref) => (\n \n \n \n \n))\n","import React from 'react'\nimport Box from './Box'\n\nexport const Textarea = React.forwardRef((props, ref) => (\n \n))\n","import React from 'react'\nimport Box from './Box'\nimport SVG from './SVG'\n\nconst RadioChecked = props => (\n \n \n \n)\n\nconst RadioUnchecked = props => (\n \n \n \n)\n\nconst RadioIcon = props => (\n \n \n \n \n)\n\nexport const Radio = React.forwardRef(\n ({ className, sx, variant = 'radio', ...props }, ref) => (\n \n \n \n \n )\n)\n","import React from 'react'\nimport Box from './Box'\nimport SVG from './SVG'\n\nconst CheckboxChecked = props => (\n \n \n \n)\n\nconst CheckboxUnchecked = props => (\n \n \n \n)\n\nconst CheckboxIcon = props => (\n \n \n \n \n)\n\nexport const Checkbox = React.forwardRef(\n ({ className, sx, variant = 'checkbox', ...props }, ref) => (\n \n \n \n \n )\n)\n","import React from 'react'\nimport Box from './Box'\n\nconst thumb = {\n appearance: 'none',\n width: 16,\n height: 16,\n bg: 'currentcolor',\n border: 0,\n borderRadius: 9999,\n variant: 'forms.slider.thumb',\n}\n\nexport const Slider = React.forwardRef((props, ref) => (\n \n))\n","import React from 'react'\nimport Box from './Box'\nimport { Label } from './Label'\nimport { Input } from './Input'\nimport { getMargin, omitMargin } from './util'\n\nexport const Field = React.forwardRef(\n ({ as: Control = Input, label, name, ...props }, ref) => {\n return (\n \n \n \n \n )\n }\n)\n","import React from 'react'\nimport Box from './Box'\n\nexport const Progress = React.forwardRef((props, ref) => (\n \n))\n","import React from 'react'\nimport Box from './Box'\n\nexport const Donut = React.forwardRef(\n (\n {\n size = 128,\n strokeWidth = 2,\n value = 0,\n min = 0,\n max = 1,\n title,\n ...props\n },\n ref\n ) => {\n const r = 16 - strokeWidth\n const C = 2 * r * Math.PI\n const offset = C - ((value - min) / (max - min)) * C\n\n return (\n \n {title && {title}}\n \n \n \n )\n }\n)\n","import React from 'react'\nimport { keyframes } from '@emotion/core'\nimport Box from './Box'\n\nconst spin = keyframes({\n from: {\n transform: 'rotate(0deg)',\n },\n to: {\n transform: 'rotate(360deg)',\n },\n})\n\nexport const Spinner = React.forwardRef(\n (\n {\n size = 48,\n strokeWidth = 4,\n max = 1,\n title = 'Loading...',\n duration = 500,\n ...props\n },\n ref\n ) => {\n const r = 16 - strokeWidth\n const C = 2 * r * Math.PI\n const offset = C - (1 / 4) * C\n\n return (\n \n {title}\n \n \n \n )\n }\n)\n","import React from 'react'\nimport { Image } from './Image'\n\nexport const Avatar = React.forwardRef(({ size = 48, ...props }, ref) => (\n \n))\n","import React from 'react'\nimport Box from './Box'\n\nexport const Badge = React.forwardRef((props, ref) => (\n \n))\n","import React from 'react'\nimport Box from './Box'\n\nexport const IconButton = React.forwardRef(({ size = 32, ...props }, ref) => (\n \n))\n","import React from 'react'\nimport { IconButton } from './IconButton'\n\nconst x = (\n \n \n \n)\n\nexport const Close = React.forwardRef(({ size = 32, ...props }, ref) => (\n \n))\n","import React from 'react'\nimport Box from './Box'\n\nexport const Alert = React.forwardRef((props, ref) => (\n \n))\n","import React from 'react'\nimport Box from './Box'\n\nexport const Divider = React.forwardRef((props, ref) => (\n \n))\n","import React from 'react'\nimport Box from './Box'\n\nexport const Embed = React.forwardRef(\n (\n {\n ratio = 16 / 9,\n src,\n frameBorder = 0,\n allowFullScreen = true,\n width = 560,\n height = 315,\n allow,\n ...props\n },\n ref\n ) => (\n \n \n \n )\n)\n","import React from 'react'\nimport Box from './Box'\n\nexport const AspectRatio = React.forwardRef(\n ({ ratio = 4 / 3, children, ...props }, ref) => (\n \n \n \n {children}\n \n \n )\n)\n","import React from 'react'\nimport { AspectRatio } from './AspectRatio'\nimport { Image } from './Image'\n\nexport const AspectImage = React.forwardRef(({ ratio, ...props }, ref) => (\n \n \n \n))\n","import React from 'react'\nimport Box from './Box'\n\nexport const Container = React.forwardRef((props, ref) => (\n \n))\n","import React from 'react'\nimport { Link } from './Link'\n\nexport const NavLink = React.forwardRef((props, ref) => (\n \n))\n","import React from 'react'\nimport Box from './Box'\n\nexport const Message = React.forwardRef((props, ref) => (\n t.space[3] - t.space[1],\n borderLeftWidth: t => t.space[1],\n borderLeftStyle: 'solid',\n borderLeftColor: 'primary',\n borderRadius: 4,\n bg: 'highlight',\n }}\n />\n))\n","import React from 'react'\nimport Box from './Box'\nimport { IconButton } from './IconButton'\n\nexport const MenuIcon = ({ size = 24 }) => (\n \n \n \n)\n\nexport const MenuButton = React.forwardRef((props, ref) => (\n \n \n \n))\n"],"sourceRoot":""}