{"version":3,"sources":["../node_modules/react/jsx-runtime.js","../node_modules/react/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../modules/HistoryContext.js","../../modules/createNameContext.js","../../modules/RouterContext.js","../../modules/Router.js","../../modules/MemoryRouter.js","../../modules/Lifecycle.js","../../modules/generatePath.js","../../modules/Redirect.js","../../modules/matchPath.js","../../modules/Route.js","../../modules/StaticRouter.js","../../modules/Switch.js","../../modules/withRouter.js","../../modules/hooks.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/classnames/index.js","../node_modules/axios/lib/utils.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/history/esm/history.js","../../modules/BrowserRouter.js","../../modules/HashRouter.js","../../modules/utils/locationUtils.js","../../modules/Link.js","../../modules/NavLink.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/lodash/_root.js","../node_modules/lodash/isArray.js","../node_modules/lodash/_getNative.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/axios/index.js","../node_modules/prop-types/index.js","../node_modules/react-dom/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js","../node_modules/react-slick/lib/utils/innerSliderUtils.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/isObjectLike.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/webpack/buildin/global.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_toKey.js","../node_modules/react-slick/lib/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/axios/lib/defaults.js","../node_modules/webpack/buildin/module.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_Map.js","../node_modules/lodash/isObject.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/keys.js","../node_modules/lodash/isLength.js","../node_modules/lodash/_isKey.js","../node_modules/lodash/isSymbol.js","../node_modules/mini-create-react-context/dist/esm/index.js","../node_modules/path-to-regexp/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/process/browser.js","../node_modules/react-chartjs-2/es/index.js","../../src/Path.tsx","../../src/CircularProgressbar.tsx","../../src/constants.ts","../../src/CircularProgressbarWithChildren.tsx","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/object-assign/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.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/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/react-is/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/enquire.js/src/Util.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/eq.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/_castPath.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../src/lib/ga4manager.tsx","../../src/hooks/useGA4React.tsx","../node_modules/moment/moment.js","../node_modules/chart.js/dist/Chart.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/regenerator-runtime/runtime.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/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/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/path-to-regexp/node_modules/isarray/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-slick/lib/slider.js","../node_modules/react-slick/lib/inner-slider.js","../node_modules/react-slick/lib/initial-state.js","../node_modules/lodash.debounce/index.js","../node_modules/react-slick/lib/track.js","../node_modules/react-slick/lib/dots.js","../node_modules/react-slick/lib/arrows.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/json2mq/index.js","../node_modules/string-convert/camel2hyphen.js","../node_modules/react-slick/lib/default-props.js","../node_modules/enquire.js/src/index.js","../node_modules/enquire.js/src/MediaQueryDispatch.js","../node_modules/enquire.js/src/MediaQuery.js","../node_modules/enquire.js/src/QueryHandler.js","../node_modules/lodash/isEqual.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/keyBy.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_createAggregator.js","../node_modules/lodash/_arrayAggregator.js","../node_modules/lodash/_baseAggregator.js","../node_modules/lodash/_baseEach.js","../node_modules/lodash/_baseForOwn.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_createBaseEach.js","../node_modules/lodash/_baseIteratee.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseIsMatch.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_baseMatchesProperty.js","../node_modules/lodash/get.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_memoizeCapped.js","../node_modules/lodash/memoize.js","../node_modules/lodash/toString.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/hasIn.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/identity.js","../node_modules/lodash/property.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js"],"names":["module","exports","require","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread2","target","i","arguments","length","source","forEach","key","getOwnPropertyDescriptors","defineProperties","defineProperty","_slicedToArray","arr","arrayWithHoles","Symbol","iterator","_arr","_n","_d","_e","undefined","_s","_i","next","done","value","err","unsupportedIterableToArray","nonIterableRest","_defineProperty","obj","configurable","writable","historyContext","name","context","createContext","createNamedContext","Router","location","props","computeRootMatch","path","url","params","isExact","pathname","componentDidMount","this","_pendingLocation","componentWillUnmount","unlisten","render","RouterContext","history","state","match","staticContext","HistoryContext","children","React","Component","Lifecycle","onMount","call","componentDidUpdate","onUpdate","prevProps","onUnmount","cache","cacheCount","generatePath","generator","pathToRegexp","compilePath","pretty","Redirect","computedMatch","to","method","createLocation","prevLocation","locationsAreEqual","matchPath","options","Array","exact","strict","sensitive","concat","matched","cacheKey","pathCache","result","regexp","end","values","memo","Route","component","addLeadingSlash","stripBasename","basename","base","createURL","createPath","staticHandler","methodName","invariant","noop","Switch","child","element","withRouter","displayName","C","wrappedComponentRef","remainingProps","ref","hoistStatics","useContext","useHistory","useLocation","useParams","_toConsumableArray","isArray","arrayLikeToArray","iterableToArray","TypeError","_extends","assign","prototype","hasOwnProperty","hasOwn","classNames","classes","arg","argType","inner","toString","join","default","bind","val","isUndefined","isObject","isPlainObject","getPrototypeOf","isFunction","fn","l","isArrayBuffer","isBuffer","constructor","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","_inheritsLoose","subClass","superClass","create","prefix","condition","message","Error","isAbsolute","charAt","spliceOne","list","index","k","n","pop","resolvePathname","from","hasTrailingSlash","toParts","split","fromParts","isToAbs","isFromAbs","mustEndAbs","last","up","part","unshift","substr","valueOf","valueEqual","every","item","aValue","bValue","stripLeadingSlash","toLowerCase","indexOf","hasBasename","stripTrailingSlash","search","hash","currentLocation","hashIndex","searchIndex","parsePath","decodeURI","e","URIError","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","callback","appendListener","isActive","listener","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","allPaths","lastIndexOf","baseTag","querySelector","getAttribute","pushHashPath","nextPaths","clamp","lowerBound","upperBound","min","max","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entries","map","entry","nextIndex","nextEntries","splice","canGo","BrowserRouter","createHistory","resolveToLocation","normalizeToLocation","forwardRefShim","forwardRef","LinkAnchor","innerRef","navigate","onClick","rest","ex","isModifiedEvent","forwardedRef","Link","NavLink","ariaCurrent","activeClassName","activeStyle","classNameProp","className","isActiveProp","locationProp","styleProp","style","escapedPath","classnames","joinClassnames","_objectWithoutProperties","excluded","sourceKeys","sourceSymbolKeys","propertyIsEnumerable","freeGlobal","freeSelf","self","root","Function","baseIsNative","getValue","_objectWithoutPropertiesLoose","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","console","error","slidesOnLeft","slidesOnRight","siblingDirection","getTotalSlides","getPostClones","getPreClones","getTrackLeft","getTrackAnimateCSS","getTrackCSS","checkSpecKeys","getSlideCount","checkNavigable","getNavigableIndexes","swipeEnd","swipeMove","swipeStart","keyHandler","changeSlide","slideHandler","initializedState","extractObject","canGoNext","getSwipeDirection","getHeight","getWidth","lazySlidesOnRight","lazySlidesOnLeft","lazyEndIndex","lazyStartIndex","getRequiredLazySlides","getOnDemandLazySlides","safePreventDefault","_react","__esModule","_objectSpread","number","includes","_reactName","preventDefault","spec","onDemandSlides","startIndex","endIndex","slideIndex","lazyLoadedList","requiredSlides","currentSlide","centerMode","floor","slidesToShow","parseInt","centerPadding","elem","offsetWidth","offsetHeight","touchObject","xDist","yDist","r","swipeAngle","verticalSwiping","startX","curX","startY","curY","atan2","round","PI","abs","infinite","slideCount","newObject","slideWidth","Children","count","listNode","listRef","listWidth","ceil","trackNode","trackRef","node","trackWidth","vertical","centerPaddingAdj","slideHeight","listHeight","initialSlide","rtl","slidesToLoad","autoplaying","autoplay","waitForAnimate","animating","fade","lazyLoad","slidesToScroll","useCSS","finalSlide","animationLeft","finalLeft","animationSlide","targetSlide","trackStyle","left","swipeLeft","indexOffset","previousInt","slideOffset","previousTargetSlide","direction","Number","accessibility","tagName","keyCode","swipe","draggable","type","dragging","touches","pageX","clientX","pageY","clientY","scrolling","swipeToSlide","edgeFriction","edgeDragged","onEdge","swiped","swiping","swipeEvent","curLeft","swipeLength","sqrt","pow","verticalSwipeLength","positionOffset","dotCount","swipeDirection","touchSwipeLength","touchThreshold","onSwipe","minSwipe","newSlide","activeSlide","currentLeft","breakpoint","counter","indexes","navigables","prevNavigable","centerOffset","swipedSlide","slickList","slides","querySelectorAll","slide","offsetTop","offsetLeft","currentIndex","dataset","keysArray","reduce","trackHeight","trackChildren","opacity","transition","WebkitTransition","useTransform","WebkitTransform","transform","msTransform","width","height","attachEvent","marginTop","marginLeft","speed","cssEase","unslick","targetLeft","variableWidth","slidesToOffset","targetSlideIndex","trackElem","childNodes","right","_ref2","getRawTag","objectToString","symToStringTag","toStringTag","_arrayLikeToArray","len","arr2","_classCallCheck","instance","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","g","_unsupportedIterableToArray","o","minLen","test","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","clear","set","get","has","eq","array","nativeCreate","getNative","isKeyable","data","__data__","isSymbol","_default","asyncGeneratorStep","gen","resolve","reject","_next","_throw","info","Promise","then","_asyncToGenerator","_getPrototypeOf","setPrototypeOf","__proto__","utils","normalizeHeaderName","enhanceError","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","headers","defaults","transitional","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","adapter","XMLHttpRequest","process","getDefaultAdapter","transformRequest","rawValue","parser","encoder","JSON","parse","stringify","stringifySafely","transformResponse","strictJSONParsing","responseType","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","status","common","webpackPolyfill","deprecate","paths","baseIsEqualDeep","isObjectLike","baseIsEqual","other","bitmask","customizer","stack","Map","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","arrayLikeKeys","baseKeys","isArrayLike","reIsDeepProp","reIsPlainProp","baseGetTag","MAX_SIGNED_31_BIT_INT","commonjsGlobal","globalThis","global","createEventEmitter","handlers","on","handler","off","h","newValue","changedBits","defaultValue","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","Provider","_Component","_this","emitter","_proto","getChildContext","componentWillReceiveProps","nextProps","oldValue","x","y","childContextTypes","PropTypes","isRequired","Consumer","_Component2","_this2","observedBits","_proto2","contextTypes","isarray","compile","tokensToFunction","tokensToRegExp","PATH_REGEXP","RegExp","res","tokens","defaultDelimiter","delimiter","exec","m","escaped","offset","capture","group","modifier","asterisk","partial","repeat","optional","pattern","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","c","toUpperCase","matches","flags","opts","encode","encodeURIComponent","token","segment","j","attachKeys","re","route","endsWithDelimiter","groups","regexpToRegexp","parts","arrayToRegexp","stringToRegexp","_inherits","_typeof","_possibleConstructorReturn","assertThisInitialized","_createSuper","Derived","hasNativeReflectConstruct","isNativeReflectConstruct","Super","NewTarget","Reflect","construct","_assertThisInitialized","ReferenceError","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","Item","nextTick","title","browser","env","argv","version","versions","addListener","once","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","binding","cwd","chdir","dir","umask","_chart","Scatter","Bubble","Polar","Radar","HorizontalBar","Bar","Line","Pie","Doughnut","_interopRequireDefault","_propTypes","_isEqual","_keyBy","_setPrototypeOf","p","sham","Proxy","Date","_isNativeReflectConstruct","NODE_ENV","ChartComponent","_React$Component","_super","chartInstance","_this$props","getDatasetAtEvent","getElementAtEvent","getElementsAtEvent","onElementsClick","renderChart","redraw","destroyChart","updateChart","_this$props2","plugins","legend","nextData","transformDataProp","shadowDataProp","datasets","saveCurrentDatasets","isDev","usingCustomKeyProvider","datasetKeyProvider","getLabelAsKey","multipleDatasets","shouldWarn","label","config","getCurrentDatasets","d","_this3","memoizeDataProps","helpers","configMerge","currentDatasets","nextDatasets","checkDatasets","currentDatasetsIndexed","current","point","pid","otherProps","update","_this$props3","defaultProps","destroy","_this$props4","id","handleOnClick","oneOfType","func","arrayOf","bool","propName","componentName","controllers","display","position","_React$Component2","_super2","_this4","_React$Component3","_super3","_this5","_React$Component4","_super4","_this6","_ref3","_React$Component5","_super5","_this7","_ref4","_React$Component6","_super6","_this8","_ref5","_React$Component7","_super7","_this9","_ref6","_React$Component8","_super8","_this10","_ref7","_React$Component9","_super9","_this11","_ref8","_React$Component10","_super10","_this12","_ref9","Path","counterClockwise","dashRatio","pathRadius","strokeWidth","React.createElement","getDashStyle","getPathDescription","fillOpacity","rotation","diameter","gapLength","strokeDasharray","strokeDashoffset","React.Component","getBackgroundPadding","background","backgroundPadding","getPathRadius","getPathRatio","minValue","maxValue","circleRatio","styles","text","pathRatio","viewBox","cx","cy","trail","CircularProgressbarWithChildren","CircularProgressbar","circularProgressbarProps","flexDirection","justifyContent","alignItems","propIsEnumerable","toObject","test1","String","getOwnPropertyNames","test2","fromCharCode","test3","letter","shouldUseNative","s","_iterableToArray","iter","_arrayWithHoles","_nonIterableRest","paramsSerializer","serializedParams","v","toISOString","hashmarkIndex","code","request","response","isAxiosError","toJSON","description","fileName","lineNumber","columnNumber","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","requestData","requestHeaders","auth","username","password","unescape","Authorization","btoa","fullPath","baseURL","onloadend","responseHeaders","getAllResponseHeaders","responseText","statusText","open","onreadystatechange","readyState","responseURL","onabort","onerror","ontimeout","timeoutErrorMessage","xsrfValue","withCredentials","read","setRequestHeader","onDownloadProgress","onUploadProgress","upload","cancelToken","promise","cancel","abort","send","__CANCEL__","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","mergeDeepProperties","prop","axiosKeys","otherKeys","Cancel","each","collection","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","size","tag","funcToString","SetCache","arraySome","cacheHas","equalFunc","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","baseIsArguments","objectProto","isArguments","stubFalse","freeExports","nodeType","freeModule","Buffer","reIsUint","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","isTypedArray","isLength","srcValue","castPath","toKey","isKey","stringToPath","reactIs","REACT_STATICS","contextType","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","GA4ReactGlobalIndex","GA4React","gaCode","gaConfig","additionalGaCode","scriptSyncId","scriptAsyncId","nonceAsync","nonceSync","nonce","outputOnResolve","pageview","gtag","initialize","previousScriptAsync","head","scriptAsync","previousScriptSync","scriptSync","scriptHTML","resolved","onChangeReadyState","page_path","page_location","page_title","nonInteraction","event_label","event_category","non_interaction","useGA4React","useState","useEffect","ga4react","ga4","setGA4","hookCallback","some","hooks","setHookCallback","input","hasOwnProp","isObjectEmpty","createUTC","format","locale","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","getParsingFlags","_pf","isValid","_isValid","parsedParts","isNowValid","isNaN","getTime","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","NaN","t","momentProperties","updateInProgress","copyConfig","_isAMomentObject","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","updateOffset","isMoment","warn","msg","suppressDeprecationWarnings","firstTime","deprecationHandler","deprecations","deprecateSimple","_config","_dayOfMonthOrdinalParseLenient","_dayOfMonthOrdinalParse","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","mom","now","output","_calendar","zeroFill","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","ordinal","localeData","removeFormattingTokens","makeFormatFunction","formatMoment","expandFormat","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","_longDateFormat","formatUpper","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","future","past","ss","mm","hh","dd","w","ww","M","MM","yy","relativeTime","withoutSuffix","string","isFuture","_relativeTime","pastFuture","diff","aliases","addUnitAlias","unit","shorthand","lowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","getPrioritizedUnits","unitsObj","u","sort","isLeapYear","year","absFloor","toInt","argumentForCoercion","coercedNumber","isFinite","makeGetSet","keepTime","set$1","month","date","daysInMonth","stringGet","stringSet","prioritized","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","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","add","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","minl","normalizeLocale","chooseLocale","names","loadLocale","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","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","W","E","createLocal","gg","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","hour","isPm","meridiemHour","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","score","configFromObject","dayOrDate","minute","second","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","prototypeMin","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","parseFloat","isValid$1","createInvalid$1","createDuration","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","_milliseconds","_days","_data","_bubble","isDuration","absRound","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","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","time","formats","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","anchor","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","isValid$2","parsingFlags","invalidAt","creationData","localeEras","eras","_eras","since","until","localeErasParse","eraName","narrow","localeErasConvertYear","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","out","listWeekdaysImpl","localeSorted","shift","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","moment","createCommonjsModule","getCjsExportFromNamespace","colorName","conversions","reverseKeywords","convert","rgb","channels","labels","hsl","hsv","hwb","cmyk","xyz","lab","lch","hex","keyword","ansi16","ansi256","hcg","apple","gray","comparativeDistance","rdif","gdif","bdif","diffc","reversed","currentClosestKeyword","currentClosestDistance","Infinity","distance","z","t1","t2","t3","smin","lmin","hi","f","q","sl","vmin","wh","bl","ratio","y2","x2","z2","hr","cos","sin","ansi","color","mult","rem","colorString","char","integer","hue","chroma","pure","mg","buildGraph","graph","models","parent","deriveBFS","fromModel","adjacents","adjacent","link","wrapConversion","toModel","cur","conversion","wrapRaw","wrappedFn","wrapRounded","routes","raw","colorConvert","colorName$1","getRgba","getHsla","getRgb","getHsl","getHwb","getAlpha","hexString","rgbString","rgbaString","percentString","percentaString","hslString","hslaString","hwbString","rgba","per","hexAlpha","scale","alpha","hsla","vals","hexDouble","reverseNames","num","Color","valid","setValues","red","lightness","whiteness","cyan","setSpace","rgbArray","hslArray","hsvArray","hwbArray","cmykArray","rgbaArray","hslaArray","setChannel","green","blue","saturation","saturationv","blackness","magenta","yellow","black","rgbNumber","luminosity","lum","chan","contrast","color2","lum1","lum2","level","contrastRatio","dark","light","negate","lighten","darken","saturate","desaturate","whiten","blacken","greyscale","clearer","opaquer","rotate","degrees","mix","mixinColor","weight","color1","w1","w2","spaces","maxes","getValues","space","capped","chans","sname","svalues","chartjsColor","isValidKey","uid","isNullOrUndef","valueOrDefault","valueAtIndexOrDefault","loopable","reverse","arrayEquals","a0","a1","ilen","v0","v1","klen","_merger","tval","sval","_mergerIf","mergeIf","sources","merger","dst","src","inherits","extensions","me","ChartElement","Surrogate","__super__","_deprecated","scope","previous","helpers_core","callCallback","getValueOrDefault","getValueAtIndexOrDefault","effects","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","asin","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","helpers_easing","easingEffects","RAD_PER_DEG","DOUBLE_PI","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","exports$1","chart","ctx","clearRect","roundedRect","radius","top","bottom","moveTo","arc","closePath","rect","drawPoint","xOffset","yOffset","cornerRadius","rad","save","translate","drawImage","restore","beginPath","lineTo","SQRT1_2","fill","stroke","_isPointInArea","area","epsilon","clipArea","clip","unclipArea","flip","stepped","steppedLine","midpoint","tension","bezierCurveTo","controlPointPreviousX","controlPointNextX","controlPointPreviousY","controlPointNextY","helpers_canvas","drawRoundedRectangle","_set","defaultColor","defaultFontColor","defaultFontFamily","defaultFontSize","defaultFontStyle","defaultLineHeight","showLines","core_defaults","toFontString","font","family","helpers_options","toLineHeight","toPadding","_parseFont","globalDefaults","fontSize","fontFamily","lineHeight","fontStyle","inputs","cacheable","exports$2","_factorize","log10","exponent","log","LOG10E","powerOf10","helpers_math","getRtlAdapter","rectX","setWidth","textAlign","align","xPlus","leftForLtr","itemWidth","getLtrAdapter","_itemWidth","helpers$1","easing","canvas","math","overrideTextDirection","original","getPropertyValue","getPropertyPriority","setProperty","prevTextDirection","restoreTextDirection","interpolate","start","view","ease","actual","origin","c0","c1","Element","configuration","_type","hidden","pivot","_view","_model","_start","tooltipPosition","hasValue","core_element","exports$3","currentStep","numSteps","onAnimationProgress","onAnimationComplete","core_animation","animation","onProgress","onComplete","core_animations","animations","addAnimation","lazy","startTime","requestAnimationFrame","cancelAnimation","findIndex","requestAnimFrame","startDigest","advance","nextStep","arrayEvents","listenArrayEvents","_chartjs","unlistenArrayEvents","stub","DatasetController","datasetIndex","datasetElementType","dataElementType","_datasetElementOptions","_dataElementOptions","linkScales","addElements","getMeta","updateIndex","meta","scales","getDataset","scalesOpts","xAxisID","xAxes","yAxisID","yAxes","getDatasetMeta","getScaleForId","scaleID","_getValueScaleId","_getIndexScaleId","_getValueScale","_getIndexScale","reset","_update","createMetaDataset","_datasetIndex","createMetaData","_index","metaData","addElementAndReset","updateElement","buildOrUpdateElements","isExtensible","resyncElements","_configure","_cachedDataOpts","easingValue","elements","draw","getStyle","_resolveDatasetElementOptions","_resolveDataElementOptions","backgroundColor","borderColor","hover","readKey","datasetOpts","custom","elementOptions","cached","dataIndex","freeze","removeHoverStyle","$previousStyle","setHoverStyle","getHoverColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","_removeDatasetHoverStyle","_setDatasetHoverStyle","hoverOptions","prev","numMeta","numData","insertElements","onDataPush","onDataPop","onDataShift","onDataSplice","onDataUnshift","core_datasetController","TAU","clipArc","startAngle","endAngle","pixelMargin","angleMargin","outerRadius","innerRadius","drawFullCircleBorders","vm","fullCircles","drawBorder","borderAlign","lineWidth","lineJoin","element_arc","inLabelRange","mouseX","hoverRadius","inRange","chartX","chartY","pointRelativePosition","getAngleFromPoint","angle","betweenAngles","withinRadius","getCenterPoint","halfAngle","halfRadius","getArea","centreAngle","rangeFromCentre","circumference","fillStyle","strokeStyle","valueOrDefault$1","line","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","capBezierPoints","element_line","currentVM","spanGaps","points","_children","globalOptionLineElements","lastDrawnIndex","_loop","previousItem","skip","lineCap","setLineDash","lineDashOffset","valueOrDefault$2","defaultColor$1","xRange","hitRadius","yRange","mouseY","pointStyle","element_point","inXRange","inYRange","padding","chartArea","defaultColor$2","isVertical","getBarBounds","x1","y1","half","swap","orig","v2","parseBorderSkipped","edge","borderSkipped","horizontal","parseBorderWidth","maxW","maxH","boundingRects","bounds","border","outer","skipX","skipY","rectangle","element_rectangle","rects","fillRect","Arc","Point","Rectangle","deprecated","valueOrDefault$3","computeMinSampleSize","pixels","curr","_length","getTicks","getPixelForTick","computeFitCategoryTraits","ruler","thickness","barThickness","stackCount","categoryPercentage","barPercentage","chunk","computeFlexCategoryTraits","percent","mode","gridLines","offsetGridLines","bar","controller_bar","scaleOpts","minBarLength","maxBarThickness","_ruler","getRuler","_xScale","_yScale","datasetLabel","_updateElementGeometry","vscale","getBasePixel","isHorizontal","vpixels","calculateBarValuePixels","ipixels","calculateBarIndexPixels","center","_getStacks","metasets","_getMatchingVisibleMetas","stacked","stacks","getStackCount","getStackIndex","getPixelForValue","_startPixel","_endPixel","imeta","ivalue","stackLength","_parseValue","range","stackIndex","indexOpts","valueOpts","valueOrDefault$4","resolve$1","tooltips","callbacks","dataPoint","xLabel","yLabel","controller_bubble","xScale","yScale","dsIndex","getPixelForDecimal","_options","valueOrDefault$5","PI$1","DOUBLE_PI$1","HALF_PI$1","animateRotate","animateScale","legendCallback","listItem","setAttribute","appendChild","createTextNode","outerHTML","generateLabels","controller","legendItem","cutoutPercentage","tooltipItem","dataLabel","controller_doughnut","getRingIndex","ringIndex","isDatasetVisible","maxWidth","maxHeight","ratioX","ratioY","offsetX","offsetY","arcs","cutout","chartWeight","_getRingWeight","endX","endY","contains0","contains90","contains270","minX","minY","maxX","maxY","getMaxBorderWidth","radiusLength","_getVisibleDatasetWeightTotal","calculateTotal","_getRingWeightOffset","animationOpts","centerX","centerY","calculateCircumference","hoverWidth","ringWeightOffset","dataSetIndex","axis","horizontalBar","controller_horizontalBar","valueOrDefault$6","resolve$2","isPointInArea","scaleClip","halfBorderWidth","tickOpts","ticks","defaultClip","toClip","controller_line","showLine","_showLine","lineTension","_scale","updateBezierControlPoints","lineModel","calculatePointY","lineOptions","ds","dsMeta","stackedRightValue","rightValue","sumPos","sumNeg","getRightValue","_getSortedVisibleDatasetMetas","controlPoints","capControlPoint","pt","cubicInterpolationMode","splineCurveMonotone","splineCurve","nextItem","resolve$3","angleLines","circular","pointLabels","beginAtZero","controller_polarArea","starts","_starts","angles","_angles","_updateRadius","countVisibleElements","_computeAngle","minSize","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getDistanceFromCenterForValue","resetRadius","doughnut","controller_pie","valueOrDefault$7","controller_radar","pointPosition","getPointPositionForValue","scatter","polarArea","pie","radar","getRelativePosition","native","parseVisibleItems","metadata","jlen","getIntersectItems","getNearestItems","intersect","distanceMetric","minDistance","POSITIVE_INFINITY","nearestItems","getDistanceMetricForAxis","useX","useY","pt1","pt2","deltaX","deltaY","indexMode","items","core_interaction","modes","single","nearest","intersectsItem","filterByPosition","where","sortByWeight","wrapBoxes","boxes","box","layoutBoxes","setLayoutDims","layouts","layout","fullWidth","availableWidth","vBoxMaxWidth","hBoxMaxHeight","buildLayoutBoxes","leftAndTop","rightAndBottom","getCombinedMax","maxPadding","updateDims","newWidth","newHeight","getPadding","boxPadding","outerWidth","outerHeight","sizes","handleMaxPadding","updatePos","change","getMargins","marginForPositions","positions","margin","fitBoxes","refit","changed","refitBoxes","placeBoxes","userPadding","core_layouts","addBox","_layers","removeBox","layoutItem","configure","layoutOptions","availableHeight","verticalBoxes","horizontalBoxes","platform_basic","acquireContext","getContext","platform_dom","stylesheet","EXPANDO_KEY","CSS_PREFIX","CSS_SIZE_MONITOR","CSS_RENDER_MONITOR","CSS_RENDER_ANIMATION","ANIMATION_START_EVENTS","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","readUsedSize","initCanvas","renderHeight","renderWidth","initial","displayWidth","aspectRatio","displayHeight","eventListenerOptions","supports","passive","createEvent","nativeEvent","fromNativeEvent","throttled","ticking","createDiv","cls","el","createResizer","maxSize","resizer","expand","shrink","_reset","scrollLeft","scrollTop","onScroll","watchForRender","expando","proxy","renderProxy","animationName","reflow","offsetParent","classList","unwatchForRender","remove","addResizeListener","container","maintainAspectRatio","parentNode","clientWidth","insertBefore","firstChild","removeResizeListener","removeChild","injectCSS","rootNode","css","containsStyles","platform_dom$2","disableCSSInjection","_enabled","_ensureLoaded","getRootNode","host","getElementById","releaseContext","removeAttribute","proxies","addEvent","removeEvent","implementation","platform","core_plugins","_plugins","_cacheId","register","plugin","unregister","idx","getAll","notify","hook","descriptors","$plugins","_invalidate","core_scaleService","constructors","registerScaleType","scaleConstructor","scaleDefaults","getScaleConstructor","getScaleDefaults","updateScaleDefaults","additions","addScalesToLayout","valueOrDefault$8","getRtlHelper","enabled","titleFontStyle","titleSpacing","titleMarginBottom","titleFontColor","titleAlign","bodySpacing","bodyFontColor","bodyAlign","footerFontStyle","footerSpacing","footerMarginTop","footerFontColor","footerAlign","yPadding","xPadding","caretPadding","caretSize","multiKeyBackground","displayColors","beforeTitle","tooltipItems","labelCount","afterTitle","beforeBody","beforeLabel","labelColor","labelTextColor","afterLabel","afterBody","beforeFooter","footer","afterFooter","positioners","average","eventPosition","nearestElement","distanceBetweenPoints","tp","pushOrConcat","toPush","splitNewlines","createTooltipItem","indexScale","valueScale","getLabelForIndex","getBaseModel","tooltipOpts","xAlign","yAlign","textDirection","_bodyFontFamily","bodyFontFamily","_bodyFontStyle","bodyFontStyle","_bodyAlign","bodyFontSize","_titleFontFamily","titleFontFamily","_titleFontStyle","titleFontSize","_titleAlign","_footerFontFamily","footerFontFamily","_footerFontStyle","footerFontSize","_footerAlign","legendColorBackground","getTooltipSize","tooltip","body","combinedBodyLength","bodyItem","before","lines","after","titleLineCount","footerLineCount","widthPadding","maxLineWidth","measureText","fontString","determineAlignment","lf","rf","olf","orf","yf","midX","midY","getBackgroundPoint","alignment","paddingAndSize","radiusAndPadding","getAlignedX","getBeforeAfterBodyLines","exports$4","_lastActive","getTitle","getBeforeBody","getBody","bodyItems","getAfterBody","getFooter","existingModel","active","_active","backgroundPoint","tooltipSize","caretX","caretY","labelColors","labelTextColors","_eventPosition","itemSort","dataPoints","drawCaret","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","drawTitle","rtlHelper","textBaseline","fillText","drawBody","textColor","drawColorBoxes","xLinePadding","colorX","fillLineOfText","bodyAlignForCalculation","rtlColorX","strokeRect","drawFooter","drawBackground","quadraticCurveTo","hasTooltipContent","globalAlpha","handleEvent","getElementsAtEventForMode","positioners_1","core_tooltip","valueOrDefault$9","mergeScaleConfig","slen","mergeConfig","initConfig","updateConfig","newOptions","ensureScalesHaveIDs","buildOrUpdateScales","nextAvailableScaleId","axesOpts","hasId","positionIsHorizontal","compare2Level","l1","l2","events","onHover","animationDuration","responsive","responsiveAnimationDuration","Chart","_bufferedRender","instances","retinaScale","devicePixelRatio","bindEvents","resize","initToolTip","stop","silent","getMaximumWidth","getMaximumHeight","newSize","onResize","scalesOptions","scaleOptions","xAxisOptions","yAxisOptions","updated","dtype","dposition","isDefault","scaleType","scaleClass","mergeTicksOptions","hasUpdated","buildOrUpdateControllers","newControllers","destroyDatasetMeta","order","ControllerClass","resetElements","updateLayout","updateDatasets","lastActive","_bufferedRequest","_idx","updateDataset","animationOptions","animationObject","easingFunction","stepDecimal","layers","drawDatasets","_drawTooltip","_getSortedDatasetMetas","filterVisible","drawDataset","getElementsAtXAxis","_meta","generateLegend","unbindEvents","toBase64Image","toDataURL","_chartInstance","_listeners","eventHandler","updateHoverStyle","bufferedRequest","core_controller","Controller","types","scaleMerge","core_helpers","parseMaxStyle","styleValue","parentProperty","valueInPixels","isConstrainedValue","getConstraintDimension","domNode","maxStyle","percentageProperty","defaultView","_getParentNode","constrainedNode","getComputedStyle","constrainedContainer","hasCNode","hasCContainer","infinity","filterCallback","filtered","findNextWhere","arrayToSearch","currentItem","findPreviousWhere","almostEquals","almostWhole","rounded","NEGATIVE_INFINITY","toRadians","toDegrees","radians","_decimalPlaces","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","aliasPixel","pixelWidth","_alignPixel","pixel","currentDevicePixelRatio","halfWidth","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","fa","fb","EPSILON","pointBefore","pointCurrent","pointAfter","alphaK","betaK","tauK","squaredMagnitude","pointsWithTangents","deltaK","mK","pointsLen","slopeDeltaX","loop","niceNum","fraction","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","evt","originalEvent","srcElement","boundingRect","getBoundingClientRect","paddingLeft","paddingTop","paddingRight","paddingBottom","getConstraintWidth","getConstraintHeight","_calculatePadding","parentDimension","cw","clientHeight","ch","currentStyle","forceRatio","pixelRatio","pixelSize","longestText","arrayOfThings","gc","garbageCollect","thing","nestedThing","longest","gcLen","textWidth","numberOfLabelLines","numberOfLines","CanvasGradient","colorValue","CanvasPattern","abstract","DateAdapter","_create","override","members","core_adapters","_date","core_ticks","formatters","tickValue","logDelta","tickString","logTick","numExponential","toExponential","numDecimal","logarithmic","remain","valueOrDefault$a","sample","numItems","increment","getPixelForGridLine","validIndex","lineValue","caches","computeLabelSizes","tickFonts","tickFont","nestedLabel","widest","highest","widths","heights","offsets","widestLabelSize","highestLabelSize","major","minor","valueAt","first","getTickMarkLength","drawTicks","tickMarkLength","getScaleLabelHeight","parseFontOptions","nestedOpts","fontColor","parseTickFontOptions","nonSkipped","ticksToFilter","getEvenSpacing","calculateSpacing","majorIndices","axisLength","ticksLimit","factors","factor","evenMajorSpacing","spacing","getMajorIndices","skipMajors","tick","majorStart","majorEnd","drawOnChartArea","zeroLineWidth","zeroLineColor","zeroLineBorderDash","zeroLineBorderDashOffset","scaleLabel","labelString","minRotation","maxRotation","mirror","autoSkip","autoSkipPadding","labelOffset","Scale","zeroLineIndex","_ticks","_getLabels","xLabels","yLabels","beforeUpdate","margins","samplingEnabled","sampleSize","_labelSizes","_maxLabelLines","longestLabelWidth","longestTextCache","_gridLineItems","_labelItems","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","beforeBuildTicks","buildTicks","afterBuildTicks","_convertTicksToLabels","beforeCalculateTickRotation","calculateTickRotation","afterCalculateTickRotation","beforeFit","fit","afterFit","_ticksToDraw","_autoSkip","afterUpdate","startPixel","endPixel","reversePixels","_reversePixels","beforeTickToLabelConversion","convertTicksToLabels","userCallback","afterTickToLabelConversion","labelSizes","maxLabelWidth","maxLabelHeight","tickWidth","maxLabelDiagonal","numTicks","labelRotation","_isVisible","_getLabelSizes","scaleLabelOpts","gridLineOpts","isBottom","firstLabelSize","lastLabelSize","lineSpace","tickPadding","isRotated","angleRadians","cosRotation","sinRotation","labelHeight","offsetRight","labelWidth","handleMargins","isFullWidth","_getScaleLabel","getValueForPixel","decimal","getDecimalForPixel","getBaseValue","avgMajorSpacing","maxTicksLimit","_tickSize","numMajorIndices","optionTicks","rot","_computeGridLineItems","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","lineColor","ticksLength","tl","axisWidth","axisHalfWidth","alignPixel","alignBorderValue","_computeLabelItems","lineCount","textOffset","isMirrored","fonts","_drawGrid","firstLineWidth","lastLineWidth","_drawLabels","_drawTitle","scaleLabelX","scaleLabelY","scaleLabelFontColor","scaleLabelFont","scaleLabelPadding","halfLineHeight","isLeft","tz","gz","_draw","core_scale","isNullOrUndef$1","defaultConfig","scale_category","ticksOpts","minIndex","maxIndex","_startValue","_valueRange","valueCategory","_defaults","isNullOrUndef$2","generateTicks","generationOptions","dataRange","niceMin","niceMax","numSpaces","MIN_SPACING","stepSize","maxNumSpaces","maxTicks","precision","rmin","rmax","scale_linearbase","handleTickRangeOptions","minSign","maxSign","setMin","suggestedMin","setMax","suggestedMax","getTickLimit","_computeTickLimit","handleDirectionalChanges","numericGeneratorOptions","fixedStepSize","ticksAsNumbers","_endValue","defaultConfig$1","DEFAULT_MIN","DEFAULT_MAX","getOrCreateStack","neg","stackData","relativePoints","updateMinMax","scale_linear","hasStacks","stackValues","_defaults$1","valueOrDefault$b","generateTicks$1","exp","significand","tickVal","endExp","endSignificand","minNotZero","lastTick","defaultConfig$2","nonNegativeOrDefault","scale_logarithmic","IDMatches","valuesPerStack","valuesForType","minVal","maxVal","tickValues","_getFirstTickValue","_valueOffset","_defaults$2","valueOrDefault$c","valueAtIndexOrDefault$1","resolve$4","defaultConfig$3","animate","showLabelBackdrop","backdropColor","backdropPaddingY","backdropPaddingX","getTickBackdropHeight","measureLabelSize","determineLimits","fitWithPointLabels","textSize","plFont","furthestLimits","furthestAngles","_pointLabelSizes","valueCount","getPointPosition","drawingArea","getIndexAngle","hLimits","vLimits","setReductions","getTextAlignForAngle","adjustPointPositionForLabelHeight","drawPointLabels","pointLabelOpts","tickBackdropHeight","outerDistance","extra","pointLabelPosition","pointLabelFontColor","drawRadiusLine","numberOrZero","param","scale_radialLinear","setCenterPoint","largestPossibleRadius","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxRight","maxLeft","maxTop","maxBottom","scalingFactor","distanceFromCenter","thisAngle","getBasePosition","angleLineOpts","tickFontColor","_defaults$3","deprecated$1","resolve$5","valueOrDefault$d","MIN_INTEGER","MIN_SAFE_INTEGER","MAX_INTEGER","MAX_SAFE_INTEGER","INTERVALS","steps","UNITS","sorter","arrayUnique","getMin","getMax","buildLookupTable","timestamps","distribution","table","lookup","mid","i0","i1","lo","interpolate$1","skey","tkey","span","toTimestamp","_adapter","determineUnitForAutoTicks","minUnit","capacity","interval","determineUnitForFormatting","determineMajorUnit","generate","timeOpts","unitStepSize","computeOffsets","setMajorTicks","majorUnit","ticksFromTimestamps","defaultConfig$4","adapters","displayFormat","displayFormats","scale_time","timestamp","labelsAdded","dataLabels","_table","_timestamps","getLabelCapacity","_unit","_majorUnit","_offsets","tooltipFormat","tickFormatFunction","minorFormat","majorFormat","nestedTickOpts","formatter","getPixelForOffset","_getLabelSize","tickLabelWidth","tickFontSize","getLabelWidth","exampleTime","exampleLabel","_defaults$4","category","radialLinear","FORMATS","_id","amount","filler","propagate","mappers","boundary","decodeFill","computeLinearBoundary","scaleBottom","scaleTop","scaleZero","computeCircularBoundary","computeBoundary","resolveTarget","visited","visible","createMapper","isDrawable","drawArea","curve0","curve1","len0","len1","doFill","mapper","p0","d0","d1","loopOffset","plugin_filler","afterDatasetsUpdate","$filler","beforeDatasetsDraw","getRtlHelper$1","noop$1","valueOrDefault$e","getBoxWidth","labelOpts","usePointStyle","boxWidth","ci","onLeave","lineDash","Legend","legendHitBoxes","_hoveredItem","doughnutMode","beforeBuildLabels","buildLabels","afterBuildLabels","legendItems","labelFont","hitboxes","lineWidths","totalHeight","vPadding","columnWidths","columnHeights","totalWidth","currentColWidth","currentColHeight","lineDefault","legendHeight","legendWidth","cursor","drawLegendBox","SQRT2","halfFontSize","xLeft","yMiddle","alignmentOffset","dimension","blockSize","itemHeight","realX","_getLegendItemAt","hitBox","lh","hoveredItem","createNewLegendAndAttach","legendOpts","plugin_legend","_element","beforeInit","afterEvent","noop$2","Title","titleX","titleY","fontOpts","createNewTitleBlockAndAttach","titleOpts","titleBlock","_adapters","Animation","animationService","Interaction","scaleService","Ticks","Tooltip","pluginService","PluginBase","canvasHelpers","layoutService","LinearScaleBase","klass","cfg","A","B","D","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","F","refs","updater","G","H","isReactComponent","forceUpdate","I","isPureReactComponent","J","K","__self","__source","$$typeof","_owner","O","P","Q","R","keyPrefix","S","T","U","V","escape","aa","X","N","Y","Z","ba","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","only","Fragment","Profiler","PureComponent","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","_context","createFactory","createRef","isValidElement","_ctor","_status","_result","useCallback","useDebugValue","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","onError","da","ea","ha","ia","ja","la","ma","na","oa","currentTarget","ka","pa","qa","ra","sa","extractEvents","eventTypes","ta","phasedRegistrationNames","registrationName","va","wa","dependencies","xa","ya","za","Aa","Ba","Ca","stateNode","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","Ua","Va","xlinkHref","Wa","Xa","Sa","Ta","Ra","setAttributeNS","Ya","Za","$a","ab","bb","cb","db","eb","gb","hb","ib","jb","kb","lb","mb","nb","pb","qb","_debugOwner","_debugSource","return","rb","sb","nodeName","xb","_valueTracker","setValue","stopTracking","tb","yb","checked","zb","defaultChecked","_wrapperState","initialChecked","Ab","initialValue","controlled","Bb","Cb","Db","Eb","ownerDocument","activeElement","Gb","Fb","Hb","selected","defaultSelected","disabled","Ib","dangerouslySetInnerHTML","Jb","Kb","Lb","textContent","Mb","Nb","Ob","Pb","Qb","namespaceURI","innerHTML","MSApp","execUnsafeLocalFunction","Rb","lastChild","nodeValue","Sb","Tb","animationend","animationiteration","animationstart","transitionend","Ub","Vb","Wb","Xb","Yb","Zb","$b","ac","bc","WeakMap","cc","dc","alternate","effectTag","ec","memoizedState","dehydrated","fc","hc","sibling","ic","jc","kc","lc","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","mc","nc","correspondingUseElement","oc","pc","qc","topLevelType","targetInst","ancestors","rc","eventSystemFlags","sc","containerInfo","tc","uc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Kc","blockedOn","Lc","delete","pointerId","Mc","Nc","Pc","unstable_runWithPriority","hydrate","Qc","Rc","Sc","Tc","Uc","unstable_scheduleCallback","unstable_NormalPriority","Vc","Wc","Yc","Zc","$c","ad","bubbled","captured","eventPriority","bd","cd","unstable_UserBlockingPriority","ed","fd","gd","hd","Oc","jd","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","orphans","tabSize","widows","zIndex","zoom","floodOpacity","stopOpacity","strokeMiterlimit","strokeOpacity","kd","ld","md","nd","menuitem","br","col","embed","img","keygen","track","wbr","od","pd","is","qd","rd","sd","td","ud","vd","nextSibling","wd","contains","compareDocumentPosition","xd","HTMLIFrameElement","contentWindow","yd","contentEditable","Bd","Cd","Dd","Ed","Fd","autoFocus","Gd","__html","Hd","Id","Jd","Kd","previousSibling","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","dispatchConfig","Ud","_targetInst","Vd","Wd","Xd","Yd","Zd","$d","ae","be","ce","Interface","isDefaultPrevented","defaultPrevented","returnValue","ee","eventPool","fe","destructor","de","getPooled","stopPropagation","cancelBubble","persist","eventPhase","bubbles","cancelable","timeStamp","isTrusted","ge","he","ie","je","ke","documentMode","le","ne","oe","beforeInput","compositionEnd","compositionStart","compositionUpdate","pe","qe","detail","se","ve","which","te","ctrlKey","altKey","metaKey","ue","we","email","tel","xe","ye","ze","Ae","Be","Ce","De","Ee","Fe","Ge","detachEvent","He","Ie","Je","Ke","Le","Me","_isInputEventSupported","Ne","Oe","Alt","Control","Meta","Shift","Pe","getModifierState","Qe","Re","Se","Te","Ue","Ve","screenX","screenY","shiftKey","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","We","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Xe","mouseEnter","mouseLeave","pointerEnter","pointerLeave","Ye","parentWindow","$e","af","bf","cf","df","select","ef","ff","gf","hf","jf","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","kf","onSelect","elapsedTime","pseudoElement","mf","clipboardData","nf","of","charCode","pf","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","qf","8","9","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","sf","dataTransfer","tf","targetTouches","changedTouches","uf","vf","wheelDeltaX","wheelDeltaY","wheelDelta","deltaZ","deltaMode","wf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","zf","Af","Bf","Cf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Df","Ef","Ff","Gf","__reactInternalMemoizedMergedChildContext","Hf","If","Jf","Kf","unstable_cancelCallback","Lf","unstable_requestPaint","Mf","unstable_now","Nf","unstable_getCurrentPriorityLevel","Of","unstable_ImmediatePriority","Pf","Qf","Rf","unstable_LowPriority","Sf","unstable_IdlePriority","Tf","Uf","unstable_shouldYield","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","hg","ig","jg","kg","lg","ng","og","pg","childExpirationTime","qg","firstContext","expirationTime","rg","sg","responders","tg","ug","updateQueue","baseState","baseQueue","shared","pending","vg","wg","suspenseConfig","payload","xg","yg","zg","ca","Ag","Bg","Cg","Dg","Eg","Fg","Jg","_reactInternalFiber","Gg","Hg","Ig","Kg","shouldComponentUpdate","Lg","Mg","UNSAFE_componentWillReceiveProps","Ng","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Og","Pg","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","elementType","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","dh","documentElement","eh","fh","gh","memoizedProps","revealOrder","ih","responder","jh","kh","mh","nh","oh","ph","qh","rh","sh","uh","vh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","dispatch","xh","yh","zh","Ah","deps","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","readContext","useResponder","useDeferredValue","useTransition","Oh","Ph","Qh","Rh","Sh","Th","pendingProps","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","di","ei","fi","UNSAFE_componentWillUpdate","componentWillUpdate","gi","pendingContext","ni","pi","qi","retryTime","ji","fallback","unstable_avoidThisFallback","ki","li","isBackwards","rendering","renderingStartTime","tail","tailExpiration","tailMode","mi","ri","si","wasMultiple","multiple","onclick","createElementNS","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","WeakSet","Set","Ci","Fi","Ei","Gi","__reactInternalSnapshotBeforeUpdate","Hi","Ii","Ji","focus","Ki","Li","Di","Mi","Ni","Oi","Pi","Qi","Ri","_reactRootContainer","Si","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","componentDidCatch","aj","componentStack","Rj","bj","cj","dj","fj","gj","kj","lj","mj","nj","oj","qj","rj","sj","tj","uj","vj","wj","timeoutMs","xj","yj","zj","lastExpiredTime","Aj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Bj","Cj","Dj","Ej","Fj","Gj","Hj","finishedWork","finishedExpirationTime","lastSuspendedTime","Ij","timeoutHandle","Jj","busyMinDurationMs","busyDelayMs","Kj","Mj","Nj","pingCache","Oj","ub","Pj","Xc","Qj","Sj","firstSuspendedTime","rangeCount","wb","activeElementDetached","focusedElem","selectionRange","Tj","createRange","setStart","removeAllRanges","addRange","setEnd","vb","Uj","Vj","Wj","ob","Xj","unstable_observedBits","Zj","pendingChildren","ak","bk","ck","dk","ek","fk","Jc","_internalRoot","gk","ik","hasAttribute","hk","jk","kk","unmount","form","Lj","lk","Events","findFiberByHostInstance","isDisabled","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","performance","cancelAnimationFrame","port2","port1","onmessage","postMessage","sortIndex","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","delay","unstable_wrapCallback","jsx","jsxs","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","Context","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","mark","awrap","async","skipTempReset","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Axios","createInstance","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","normalizedName","write","expires","domain","secure","cookie","toGMTString","decodeURIComponent","isAbsoluteURL","combineURLs","requestedURL","relativeURL","ignoreDuplicateOf","parsed","originURL","msie","urlParsingNode","resolveURL","protocol","hostname","port","requestURL","pkg","deprecatedWarnings","currentVerArr","isOlderVersion","thanVersion","pkgVersionArr","destVer","isDeprecated","formatMessage","opt","desc","schema","allowUnknown","executor","resolvePromise","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propFullName","secret","getShim","ReactPropTypes","symbol","any","instanceOf","objectOf","oneOf","shape","checkPropTypes","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","_innerSlider","_json2mq","_defaultProps","_innerSliderUtils","enquire","Slider","innerSlider","slickPrev","slickNext","dontAnimate","slickGoTo","pause","autoPlay","_responsiveMediaHandlers","query","breakpoints","breakpt","bQuery","minWidth","media","settings","newProps","resp","rows","slidesPerRow","newChildren","currentWidth","row","tabIndex","InnerSlider","innerSliderRefHandler","_initialState","_lodash","_classnames","_track","_dots","_arrows","_resizeObserverPolyfill","adaptiveHeight","onInit","prevState","onLazyLoad","updateState","adaptHeight","lazyLoadTimer","setInterval","progressiveLazyLoad","ro","onWindowResized","callbackTimers","observe","onfocus","pauseOnFocus","onSlideFocus","onblur","onSlideBlur","animationEndCallback","clearInterval","timer","autoplayTimer","disconnect","checkImagesLoad","onReInit","setTrackStyle","didPropsChange","debouncedResize","resizeWindow","isTrackMounted","Boolean","updatedState","_trackWidth","_trackLeft","childrenWidths","preClones","postClones","_i2","_trackStyle","childrenCount","trackLeft","images","imagesCount","loadedCount","image","prevClickHandler","onload","onLazyLoadError","asNavFor","beforeChange","afterChange","_slideHandler","asNavForIndex","firstBatch","focusOnSelect","nodes","clickable","ontouchmove","disableBodyScroll","triggerSlideHandler","enableBodyScroll","playType","play","autoplaySpeed","pauseType","dots","prevArrow","nextArrow","trackProps","pauseOnHover","onMouseEnter","onTrackOver","onMouseLeave","onTrackLeave","onMouseOver","selectHandler","dotProps","pauseOnDotsHover","clickHandler","onDotsLeave","onDotsOver","Dots","arrowProps","arrows","PrevArrow","NextArrow","verticalHeightStyle","centerPaddingStyle","listStyle","touchMove","listProps","onMouseDown","onMouseMove","onMouseUp","onTouchStart","onTouchMove","onTouchEnd","touchEnd","onTouchCancel","onKeyDown","innerSliderProps","listRefHandler","Track","trackRefHandler","ssrState","ssrInit","_i3","_Object$keys","currentDirection","initialized","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","nativeMax","nativeMin","toNumber","isBinary","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","remainingWait","debounced","isInvoking","flush","getSlideClasses","slickActive","slickCenter","slickCloned","getKey","fallbackKey","renderSlides","preCloneSlides","postCloneSlides","childOnClickOptions","childStyle","getSlideStyle","slideClass","slideClasses","outline","preCloneNo","_React$PureComponent","mouseEvents","handleRef","_rightBound","rightBound","_leftBound","leftBound","dotOptions","customPaging","appendDots","dotsClass","prevClasses","prevHandler","prevArrowProps","customProps","_React$PureComponent2","nextClasses","nextHandler","nextArrowProps","MapShim","getIndex","class_1","__entries__","isBrowser","global$1","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","leadingCall","trailingCall","resolvePending","timeoutCallback","throttle","addObserver","observer","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","attributes","childList","characterData","subtree","_b","getInstance","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","getBordersSize","getHTMLElementContentRect","paddings","positions_1","getPaddings","horizPad","vertPad","boxSizing","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","broadcastRect","ResizeObserverEntry","rectInit","contentRect","Constr","DOMRectReadOnly","createReadOnlyRect","ResizeObserverSPI","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","unobserve","clearActive","observation","ResizeObserver","camel2hyphen","obj2mq","mq","features","feature","isDimension","MediaQueryDispatch","MediaQuery","Util","matchMedia","queries","browserIsIncapable","shouldDegrade","isUnconditional","addHandler","removeHandler","QueryHandler","mql","assess","constuctor","equals","deferSetup","setup","initialised","unmatch","equalArrays","equalByTag","equalObjects","getTag","argsTag","arrayTag","objectTag","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","assocIndexOf","pairs","LARGE_ARRAY_SIZE","isMasked","toSource","reIsHostCtor","funcProto","reIsNative","nativeObjectToString","isOwn","unmasked","coreJsData","maskSrcKey","IE_PROTO","Hash","hashClear","hashDelete","hashGet","hashHas","hashSet","getMapData","setCacheAdd","setCacheHas","predicate","Uint8Array","mapToArray","setToArray","symbolProto","symbolValueOf","byteLength","byteOffset","getAllKeys","objProps","objLength","objStacked","skipCtor","objValue","objCtor","othCtor","baseGetAllKeys","getSymbols","arrayPush","keysFunc","symbolsFunc","arrayFilter","stubArray","nativeGetSymbols","resIndex","baseTimes","isIndex","inherited","isArr","isArg","isBuff","isType","skipIndexes","iteratee","typedArrayTags","freeProcess","isPrototype","nativeKeys","Ctor","overArg","DataView","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ctorString","baseAssignValue","keyBy","createAggregator","arrayAggregator","baseAggregator","baseIteratee","initializer","accumulator","baseEach","baseForOwn","createBaseEach","baseFor","createBaseFor","fromRight","eachFunc","baseMatches","baseMatchesProperty","identity","baseIsMatch","getMatchData","matchesStrictComparable","matchData","noCustomizer","COMPARE_PARTIAL_FLAG","isStrictComparable","hasIn","baseGet","memoizeCapped","rePropName","reEscapeChar","quote","subString","memoize","resolver","memoized","Cache","baseToString","arrayMap","symbolToString","baseHasIn","hasPath","hasFunc","baseProperty","basePropertyDeep"],"mappings":"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","file":"static/js/12.ded70547.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","import defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","import arrayWithHoles from \"@babel/runtime/helpers/esm/arrayWithHoles\";\nimport iterableToArrayLimit from \"@babel/runtime/helpers/esm/iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableRest from \"@babel/runtime/helpers/esm/nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default 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}","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) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\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 PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * A public higher-order component to access the imperative API\n */\nfunction withRouter(Component) {\n const displayName = `withRouter(${Component.displayName || Component.name})`;\n const C = props => {\n const { wrappedComponentRef, ...remainingProps } = props;\n\n return (\n \n {context => {\n invariant(\n context,\n `You should not use <${displayName} /> outside a `\n );\n return (\n \n );\n }}\n \n );\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (__DEV__) {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.object\n ])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nexport default withRouter;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport 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","import arrayWithoutHoles from \"@babel/runtime/helpers/esm/arrayWithoutHoles\";\nimport iterableToArray from \"@babel/runtime/helpers/esm/iterableToArray\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableSpread from \"@babel/runtime/helpers/esm/nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _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}","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","'use strict';\n\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","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\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","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","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","import objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\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}","var freeGlobal = require('./_freeGlobal');\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\nmodule.exports = root;\n","/**\n * Checks if `value` is classified as an `Array` object.\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 array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\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}","module.exports = require('./lib/axios');","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","module.exports = require(\"regenerator-runtime\");\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.clamp = clamp;\nexports.canUseDOM = exports.slidesOnLeft = exports.slidesOnRight = exports.siblingDirection = exports.getTotalSlides = exports.getPostClones = exports.getPreClones = exports.getTrackLeft = exports.getTrackAnimateCSS = exports.getTrackCSS = exports.checkSpecKeys = exports.getSlideCount = exports.checkNavigable = exports.getNavigableIndexes = exports.swipeEnd = exports.swipeMove = exports.swipeStart = exports.keyHandler = exports.changeSlide = exports.slideHandler = exports.initializedState = exports.extractObject = exports.canGoNext = exports.getSwipeDirection = exports.getHeight = exports.getWidth = exports.lazySlidesOnRight = exports.lazySlidesOnLeft = exports.lazyEndIndex = exports.lazyStartIndex = exports.getRequiredLazySlides = exports.getOnDemandLazySlides = exports.safePreventDefault = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction clamp(number, lowerBound, upperBound) {\n return Math.max(lowerBound, Math.min(number, upperBound));\n}\n\nvar safePreventDefault = function safePreventDefault(event) {\n var passiveEvents = [\"onTouchStart\", \"onTouchMove\", \"onWheel\"];\n\n if (!passiveEvents.includes(event._reactName)) {\n event.preventDefault();\n }\n};\n\nexports.safePreventDefault = safePreventDefault;\n\nvar getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n var onDemandSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n onDemandSlides.push(slideIndex);\n }\n }\n\n return onDemandSlides;\n}; // return list of slides that need to be present\n\n\nexports.getOnDemandLazySlides = getOnDemandLazySlides;\n\nvar getRequiredLazySlides = function getRequiredLazySlides(spec) {\n var requiredSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n requiredSlides.push(slideIndex);\n }\n\n return requiredSlides;\n}; // startIndex that needs to be present\n\n\nexports.getRequiredLazySlides = getRequiredLazySlides;\n\nvar lazyStartIndex = function lazyStartIndex(spec) {\n return spec.currentSlide - lazySlidesOnLeft(spec);\n};\n\nexports.lazyStartIndex = lazyStartIndex;\n\nvar lazyEndIndex = function lazyEndIndex(spec) {\n return spec.currentSlide + lazySlidesOnRight(spec);\n};\n\nexports.lazyEndIndex = lazyEndIndex;\n\nvar lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\n\nexports.lazySlidesOnLeft = lazySlidesOnLeft;\n\nvar lazySlidesOnRight = function lazySlidesOnRight(spec) {\n return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n}; // get width of an element\n\n\nexports.lazySlidesOnRight = lazySlidesOnRight;\n\nvar getWidth = function getWidth(elem) {\n return elem && elem.offsetWidth || 0;\n};\n\nexports.getWidth = getWidth;\n\nvar getHeight = function getHeight(elem) {\n return elem && elem.offsetHeight || 0;\n};\n\nexports.getHeight = getHeight;\n\nvar getSwipeDirection = function getSwipeDirection(touchObject) {\n var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var xDist, yDist, r, swipeAngle;\n xDist = touchObject.startX - touchObject.curX;\n yDist = touchObject.startY - touchObject.curY;\n r = Math.atan2(yDist, xDist);\n swipeAngle = Math.round(r * 180 / Math.PI);\n\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n\n if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {\n return \"left\";\n }\n\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return \"right\";\n }\n\n if (verticalSwiping === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return \"up\";\n } else {\n return \"down\";\n }\n }\n\n return \"vertical\";\n}; // whether or not we can go next\n\n\nexports.getSwipeDirection = getSwipeDirection;\n\nvar canGoNext = function canGoNext(spec) {\n var canGo = true;\n\n if (!spec.infinite) {\n if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n canGo = false;\n } else if (spec.slideCount <= spec.slidesToShow || spec.currentSlide >= spec.slideCount - spec.slidesToShow) {\n canGo = false;\n }\n }\n\n return canGo;\n}; // given an object and a list of keys, return new object with given keys\n\n\nexports.canGoNext = canGoNext;\n\nvar extractObject = function extractObject(spec, keys) {\n var newObject = {};\n keys.forEach(function (key) {\n return newObject[key] = spec[key];\n });\n return newObject;\n}; // get initialized state\n\n\nexports.extractObject = extractObject;\n\nvar initializedState = function initializedState(spec) {\n // spec also contains listRef, trackRef\n var slideCount = _react[\"default\"].Children.count(spec.children);\n\n var listNode = spec.listRef;\n var listWidth = Math.ceil(getWidth(listNode));\n var trackNode = spec.trackRef && spec.trackRef.node;\n var trackWidth = Math.ceil(getWidth(trackNode));\n var slideWidth;\n\n if (!spec.vertical) {\n var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n\n if (typeof spec.centerPadding === \"string\" && spec.centerPadding.slice(-1) === \"%\") {\n centerPaddingAdj *= listWidth / 100;\n }\n\n slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n } else {\n slideWidth = listWidth;\n }\n\n var slideHeight = listNode && getHeight(listNode.querySelector('[data-index=\"0\"]'));\n var listHeight = slideHeight * spec.slidesToShow;\n var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n\n if (spec.rtl && spec.currentSlide === undefined) {\n currentSlide = slideCount - 1 - spec.initialSlide;\n }\n\n var lazyLoadedList = spec.lazyLoadedList || [];\n var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: currentSlide,\n lazyLoadedList: lazyLoadedList\n }));\n lazyLoadedList = lazyLoadedList.concat(slidesToLoad);\n var state = {\n slideCount: slideCount,\n slideWidth: slideWidth,\n listWidth: listWidth,\n trackWidth: trackWidth,\n currentSlide: currentSlide,\n slideHeight: slideHeight,\n listHeight: listHeight,\n lazyLoadedList: lazyLoadedList\n };\n\n if (spec.autoplaying === null && spec.autoplay) {\n state[\"autoplaying\"] = \"playing\";\n }\n\n return state;\n};\n\nexports.initializedState = initializedState;\n\nvar slideHandler = function slideHandler(spec) {\n var waitForAnimate = spec.waitForAnimate,\n animating = spec.animating,\n fade = spec.fade,\n infinite = spec.infinite,\n index = spec.index,\n slideCount = spec.slideCount,\n lazyLoad = spec.lazyLoad,\n currentSlide = spec.currentSlide,\n centerMode = spec.centerMode,\n slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n useCSS = spec.useCSS;\n var lazyLoadedList = spec.lazyLoadedList;\n if (waitForAnimate && animating) return {};\n var animationSlide = index,\n finalSlide,\n animationLeft,\n finalLeft;\n var state = {},\n nextState = {};\n var targetSlide = infinite ? index : clamp(index, 0, slideCount - 1);\n\n if (fade) {\n if (!infinite && (index < 0 || index >= slideCount)) return {};\n\n if (index < 0) {\n animationSlide = index + slideCount;\n } else if (index >= slideCount) {\n animationSlide = index - slideCount;\n }\n\n if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n lazyLoadedList = lazyLoadedList.concat(animationSlide);\n }\n\n state = {\n animating: true,\n currentSlide: animationSlide,\n lazyLoadedList: lazyLoadedList,\n targetSlide: animationSlide\n };\n nextState = {\n animating: false,\n targetSlide: animationSlide\n };\n } else {\n finalSlide = animationSlide;\n\n if (animationSlide < 0) {\n finalSlide = animationSlide + slideCount;\n if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) finalSlide = slideCount - slideCount % slidesToScroll;\n } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n animationSlide = finalSlide = currentSlide;\n } else if (centerMode && animationSlide >= slideCount) {\n animationSlide = infinite ? slideCount : slideCount - 1;\n finalSlide = infinite ? 0 : slideCount - 1;\n } else if (animationSlide >= slideCount) {\n finalSlide = animationSlide - slideCount;\n if (!infinite) finalSlide = slideCount - slidesToShow;else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n }\n\n if (!infinite && animationSlide + slidesToShow >= slideCount) {\n finalSlide = slideCount - slidesToShow;\n }\n\n animationLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: animationSlide\n }));\n finalLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: finalSlide\n }));\n\n if (!infinite) {\n if (animationLeft === finalLeft) animationSlide = finalSlide;\n animationLeft = finalLeft;\n }\n\n if (lazyLoad) {\n lazyLoadedList = lazyLoadedList.concat(getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: animationSlide\n })));\n }\n\n if (!useCSS) {\n state = {\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n } else {\n state = {\n animating: true,\n currentSlide: finalSlide,\n trackStyle: getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: animationLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n nextState = {\n animating: false,\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n swipeLeft: null,\n targetSlide: targetSlide\n };\n }\n }\n\n return {\n state: state,\n nextState: nextState\n };\n};\n\nexports.slideHandler = slideHandler;\n\nvar changeSlide = function changeSlide(spec, options) {\n var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n var slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n slideCount = spec.slideCount,\n currentSlide = spec.currentSlide,\n previousTargetSlide = spec.targetSlide,\n lazyLoad = spec.lazyLoad,\n infinite = spec.infinite;\n unevenOffset = slideCount % slidesToScroll !== 0;\n indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n\n if (options.message === \"previous\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n targetSlide = currentSlide - slideOffset;\n\n if (lazyLoad && !infinite) {\n previousInt = currentSlide - slideOffset;\n targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n }\n\n if (!infinite) {\n targetSlide = previousTargetSlide - slidesToScroll;\n }\n } else if (options.message === \"next\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n targetSlide = currentSlide + slideOffset;\n\n if (lazyLoad && !infinite) {\n targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n }\n\n if (!infinite) {\n targetSlide = previousTargetSlide + slidesToScroll;\n }\n } else if (options.message === \"dots\") {\n // Click on dots\n targetSlide = options.index * options.slidesToScroll;\n } else if (options.message === \"children\") {\n // Click on the slides\n targetSlide = options.index;\n\n if (infinite) {\n var direction = siblingDirection(_objectSpread(_objectSpread({}, spec), {}, {\n targetSlide: targetSlide\n }));\n\n if (targetSlide > options.currentSlide && direction === \"left\") {\n targetSlide = targetSlide - slideCount;\n } else if (targetSlide < options.currentSlide && direction === \"right\") {\n targetSlide = targetSlide + slideCount;\n }\n }\n } else if (options.message === \"index\") {\n targetSlide = Number(options.index);\n }\n\n return targetSlide;\n};\n\nexports.changeSlide = changeSlide;\n\nvar keyHandler = function keyHandler(e, accessibility, rtl) {\n if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility) return \"\";\n if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n return \"\";\n};\n\nexports.keyHandler = keyHandler;\n\nvar swipeStart = function swipeStart(e, swipe, draggable) {\n e.target.tagName === \"IMG\" && safePreventDefault(e);\n if (!swipe || !draggable && e.type.indexOf(\"mouse\") !== -1) return \"\";\n return {\n dragging: true,\n touchObject: {\n startX: e.touches ? e.touches[0].pageX : e.clientX,\n startY: e.touches ? e.touches[0].pageY : e.clientY,\n curX: e.touches ? e.touches[0].pageX : e.clientX,\n curY: e.touches ? e.touches[0].pageY : e.clientY\n }\n };\n};\n\nexports.swipeStart = swipeStart;\n\nvar swipeMove = function swipeMove(e, spec) {\n // spec also contains, trackRef and slideIndex\n var scrolling = spec.scrolling,\n animating = spec.animating,\n vertical = spec.vertical,\n swipeToSlide = spec.swipeToSlide,\n verticalSwiping = spec.verticalSwiping,\n rtl = spec.rtl,\n currentSlide = spec.currentSlide,\n edgeFriction = spec.edgeFriction,\n edgeDragged = spec.edgeDragged,\n onEdge = spec.onEdge,\n swiped = spec.swiped,\n swiping = spec.swiping,\n slideCount = spec.slideCount,\n slidesToScroll = spec.slidesToScroll,\n infinite = spec.infinite,\n touchObject = spec.touchObject,\n swipeEvent = spec.swipeEvent,\n listHeight = spec.listHeight,\n listWidth = spec.listWidth;\n if (scrolling) return;\n if (animating) return safePreventDefault(e);\n if (vertical && swipeToSlide && verticalSwiping) safePreventDefault(e);\n var swipeLeft,\n state = {};\n var curLeft = getTrackLeft(spec);\n touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));\n var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));\n\n if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n return {\n scrolling: true\n };\n }\n\n if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n if (verticalSwiping) positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n var dotCount = Math.ceil(slideCount / slidesToScroll);\n var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n var touchSwipeLength = touchObject.swipeLength;\n\n if (!infinite) {\n if (currentSlide === 0 && (swipeDirection === \"right\" || swipeDirection === \"down\") || currentSlide + 1 >= dotCount && (swipeDirection === \"left\" || swipeDirection === \"up\") || !canGoNext(spec) && (swipeDirection === \"left\" || swipeDirection === \"up\")) {\n touchSwipeLength = touchObject.swipeLength * edgeFriction;\n\n if (edgeDragged === false && onEdge) {\n onEdge(swipeDirection);\n state[\"edgeDragged\"] = true;\n }\n }\n }\n\n if (!swiped && swipeEvent) {\n swipeEvent(swipeDirection);\n state[\"swiped\"] = true;\n }\n\n if (!vertical) {\n if (!rtl) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n } else {\n swipeLeft = curLeft - touchSwipeLength * positionOffset;\n }\n } else {\n swipeLeft = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n }\n\n if (verticalSwiping) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n }\n\n state = _objectSpread(_objectSpread({}, state), {}, {\n touchObject: touchObject,\n swipeLeft: swipeLeft,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: swipeLeft\n }))\n });\n\n if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n return state;\n }\n\n if (touchObject.swipeLength > 10) {\n state[\"swiping\"] = true;\n safePreventDefault(e);\n }\n\n return state;\n};\n\nexports.swipeMove = swipeMove;\n\nvar swipeEnd = function swipeEnd(e, spec) {\n var dragging = spec.dragging,\n swipe = spec.swipe,\n touchObject = spec.touchObject,\n listWidth = spec.listWidth,\n touchThreshold = spec.touchThreshold,\n verticalSwiping = spec.verticalSwiping,\n listHeight = spec.listHeight,\n swipeToSlide = spec.swipeToSlide,\n scrolling = spec.scrolling,\n onSwipe = spec.onSwipe,\n targetSlide = spec.targetSlide,\n currentSlide = spec.currentSlide,\n infinite = spec.infinite;\n\n if (!dragging) {\n if (swipe) safePreventDefault(e);\n return {};\n }\n\n var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n var swipeDirection = getSwipeDirection(touchObject, verticalSwiping); // reset the state of touch related state variables.\n\n var state = {\n dragging: false,\n edgeDragged: false,\n scrolling: false,\n swiping: false,\n swiped: false,\n swipeLeft: null,\n touchObject: {}\n };\n\n if (scrolling) {\n return state;\n }\n\n if (!touchObject.swipeLength) {\n return state;\n }\n\n if (touchObject.swipeLength > minSwipe) {\n safePreventDefault(e);\n\n if (onSwipe) {\n onSwipe(swipeDirection);\n }\n\n var slideCount, newSlide;\n var activeSlide = infinite ? currentSlide : targetSlide;\n\n switch (swipeDirection) {\n case \"left\":\n case \"up\":\n newSlide = activeSlide + getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 0;\n break;\n\n case \"right\":\n case \"down\":\n newSlide = activeSlide - getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 1;\n break;\n\n default:\n slideCount = activeSlide;\n }\n\n state[\"triggerSlideHandler\"] = slideCount;\n } else {\n // Adjust the track back to it's original position.\n var currentLeft = getTrackLeft(spec);\n state[\"trackStyle\"] = getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: currentLeft\n }));\n }\n\n return state;\n};\n\nexports.swipeEnd = swipeEnd;\n\nvar getNavigableIndexes = function getNavigableIndexes(spec) {\n var max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n var breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n var counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n var indexes = [];\n\n while (breakpoint < max) {\n indexes.push(breakpoint);\n breakpoint = counter + spec.slidesToScroll;\n counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n }\n\n return indexes;\n};\n\nexports.getNavigableIndexes = getNavigableIndexes;\n\nvar checkNavigable = function checkNavigable(spec, index) {\n var navigables = getNavigableIndexes(spec);\n var prevNavigable = 0;\n\n if (index > navigables[navigables.length - 1]) {\n index = navigables[navigables.length - 1];\n } else {\n for (var n in navigables) {\n if (index < navigables[n]) {\n index = prevNavigable;\n break;\n }\n\n prevNavigable = navigables[n];\n }\n }\n\n return index;\n};\n\nexports.checkNavigable = checkNavigable;\n\nvar getSlideCount = function getSlideCount(spec) {\n var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n\n if (spec.swipeToSlide) {\n var swipedSlide;\n var slickList = spec.listRef;\n var slides = slickList.querySelectorAll && slickList.querySelectorAll(\".slick-slide\") || [];\n Array.from(slides).every(function (slide) {\n if (!spec.vertical) {\n if (slide.offsetLeft - centerOffset + getWidth(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n } else {\n if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n }\n\n return true;\n });\n\n if (!swipedSlide) {\n return 0;\n }\n\n var currentIndex = spec.rtl === true ? spec.slideCount - spec.currentSlide : spec.currentSlide;\n var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n return slidesTraversed;\n } else {\n return spec.slidesToScroll;\n }\n};\n\nexports.getSlideCount = getSlideCount;\n\nvar checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n return keysArray.reduce(function (value, key) {\n return value && spec.hasOwnProperty(key);\n }, true) ? null : console.error(\"Keys Missing:\", spec);\n};\n\nexports.checkSpecKeys = checkSpecKeys;\n\nvar getTrackCSS = function getTrackCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\"]);\n var trackWidth, trackHeight;\n var trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n\n if (!spec.vertical) {\n trackWidth = getTotalSlides(spec) * spec.slideWidth;\n } else {\n trackHeight = trackChildren * spec.slideHeight;\n }\n\n var style = {\n opacity: 1,\n transition: \"\",\n WebkitTransition: \"\"\n };\n\n if (spec.useTransform) {\n var WebkitTransform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var transform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var msTransform = !spec.vertical ? \"translateX(\" + spec.left + \"px)\" : \"translateY(\" + spec.left + \"px)\";\n style = _objectSpread(_objectSpread({}, style), {}, {\n WebkitTransform: WebkitTransform,\n transform: transform,\n msTransform: msTransform\n });\n } else {\n if (spec.vertical) {\n style[\"top\"] = spec.left;\n } else {\n style[\"left\"] = spec.left;\n }\n }\n\n if (spec.fade) style = {\n opacity: 1\n };\n if (trackWidth) style.width = trackWidth;\n if (trackHeight) style.height = trackHeight; // Fallback for IE8\n\n if (window && !window.addEventListener && window.attachEvent) {\n if (!spec.vertical) {\n style.marginLeft = spec.left + \"px\";\n } else {\n style.marginTop = spec.left + \"px\";\n }\n }\n\n return style;\n};\n\nexports.getTrackCSS = getTrackCSS;\n\nvar getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\", \"speed\", \"cssEase\"]);\n var style = getTrackCSS(spec); // useCSS is true by default so it can be undefined\n\n if (spec.useTransform) {\n style.WebkitTransition = \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n if (spec.vertical) {\n style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nexports.getTrackAnimateCSS = getTrackAnimateCSS;\n\nvar getTrackLeft = function getTrackLeft(spec) {\n if (spec.unslick) {\n return 0;\n }\n\n checkSpecKeys(spec, [\"slideIndex\", \"trackRef\", \"infinite\", \"centerMode\", \"slideCount\", \"slidesToShow\", \"slidesToScroll\", \"slideWidth\", \"listWidth\", \"variableWidth\", \"slideHeight\"]);\n var slideIndex = spec.slideIndex,\n trackRef = spec.trackRef,\n infinite = spec.infinite,\n centerMode = spec.centerMode,\n slideCount = spec.slideCount,\n slidesToShow = spec.slidesToShow,\n slidesToScroll = spec.slidesToScroll,\n slideWidth = spec.slideWidth,\n listWidth = spec.listWidth,\n variableWidth = spec.variableWidth,\n slideHeight = spec.slideHeight,\n fade = spec.fade,\n vertical = spec.vertical;\n var slideOffset = 0;\n var targetLeft;\n var targetSlide;\n var verticalOffset = 0;\n\n if (fade || spec.slideCount === 1) {\n return 0;\n }\n\n var slidesToOffset = 0;\n\n if (infinite) {\n slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);\n } // shift current slide to center of the frame\n\n\n if (centerMode) {\n slidesToOffset += parseInt(slidesToShow / 2);\n }\n } else {\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n }\n\n if (centerMode) {\n slidesToOffset = parseInt(slidesToShow / 2);\n }\n }\n\n slideOffset = slidesToOffset * slideWidth;\n verticalOffset = slidesToOffset * slideHeight;\n\n if (!vertical) {\n targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n } else {\n targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n }\n\n if (variableWidth === true) {\n var targetSlideIndex;\n var trackElem = trackRef && trackRef.node;\n targetSlideIndex = slideIndex + getPreClones(spec);\n targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n\n if (centerMode === true) {\n targetSlideIndex = infinite ? slideIndex + getPreClones(spec) : slideIndex;\n targetSlide = trackElem && trackElem.children[targetSlideIndex];\n targetLeft = 0;\n\n for (var slide = 0; slide < targetSlideIndex; slide++) {\n targetLeft -= trackElem && trackElem.children[slide] && trackElem.children[slide].offsetWidth;\n }\n\n targetLeft -= parseInt(spec.centerPadding);\n targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n }\n }\n\n return targetLeft;\n};\n\nexports.getTrackLeft = getTrackLeft;\n\nvar getPreClones = function getPreClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n if (spec.variableWidth) {\n return spec.slideCount;\n }\n\n return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\n\nexports.getPreClones = getPreClones;\n\nvar getPostClones = function getPostClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n return spec.slideCount;\n};\n\nexports.getPostClones = getPostClones;\n\nvar getTotalSlides = function getTotalSlides(spec) {\n return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\n\nexports.getTotalSlides = getTotalSlides;\n\nvar siblingDirection = function siblingDirection(spec) {\n if (spec.targetSlide > spec.currentSlide) {\n if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n return \"left\";\n }\n\n return \"right\";\n } else {\n if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n return \"right\";\n }\n\n return \"left\";\n }\n};\n\nexports.siblingDirection = siblingDirection;\n\nvar slidesOnRight = function slidesOnRight(_ref) {\n var slidesToShow = _ref.slidesToShow,\n centerMode = _ref.centerMode,\n rtl = _ref.rtl,\n centerPadding = _ref.centerPadding;\n\n // returns no of slides on the right of active slide\n if (centerMode) {\n var right = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) right += 1;\n if (rtl && slidesToShow % 2 === 0) right += 1;\n return right;\n }\n\n if (rtl) {\n return 0;\n }\n\n return slidesToShow - 1;\n};\n\nexports.slidesOnRight = slidesOnRight;\n\nvar slidesOnLeft = function slidesOnLeft(_ref2) {\n var slidesToShow = _ref2.slidesToShow,\n centerMode = _ref2.centerMode,\n rtl = _ref2.rtl,\n centerPadding = _ref2.centerPadding;\n\n // returns no of slides on the left of active slide\n if (centerMode) {\n var left = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) left += 1;\n if (!rtl && slidesToShow % 2 === 0) left += 1;\n return left;\n }\n\n if (rtl) {\n return slidesToShow - 1;\n }\n\n return 0;\n};\n\nexports.slidesOnLeft = slidesOnLeft;\n\nvar canUseDOM = function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n};\n\nexports.canUseDOM = canUseDOM;","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\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 != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","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 Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\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","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _slider = _interopRequireDefault(require(\"./slider\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = _slider[\"default\"];\nexports[\"default\"] = _default;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\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","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","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\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 != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\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 valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\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) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\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","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","import setPrototypeOf from \"@babel/runtime/helpers/esm/setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport isNativeReflectConstruct from \"@babel/runtime/helpers/esm/isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\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\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"Chart\", {\n enumerable: true,\n get: function get() {\n return _chart[\"default\"];\n }\n});\nexports.defaults = exports.Scatter = exports.Bubble = exports.Polar = exports.Radar = exports.HorizontalBar = exports.Bar = exports.Line = exports.Pie = exports.Doughnut = exports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _chart = _interopRequireDefault(require(\"chart.js\"));\n\nvar _isEqual = _interopRequireDefault(require(\"lodash/isEqual\"));\n\nvar _keyBy = _interopRequireDefault(require(\"lodash/keyBy\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar NODE_ENV = typeof process !== 'undefined' && process.env && process.env.NODE_ENV;\n\nvar ChartComponent = /*#__PURE__*/function (_React$Component) {\n _inherits(ChartComponent, _React$Component);\n\n var _super = _createSuper(ChartComponent);\n\n function ChartComponent() {\n var _this;\n\n _classCallCheck(this, ChartComponent);\n\n _this = _super.call(this);\n\n _defineProperty(_assertThisInitialized(_this), \"handleOnClick\", function (event) {\n var instance = _this.chartInstance;\n var _this$props = _this.props,\n getDatasetAtEvent = _this$props.getDatasetAtEvent,\n getElementAtEvent = _this$props.getElementAtEvent,\n getElementsAtEvent = _this$props.getElementsAtEvent,\n onElementsClick = _this$props.onElementsClick;\n getDatasetAtEvent && getDatasetAtEvent(instance.getDatasetAtEvent(event), event);\n getElementAtEvent && getElementAtEvent(instance.getElementAtEvent(event), event);\n getElementsAtEvent && getElementsAtEvent(instance.getElementsAtEvent(event), event);\n onElementsClick && onElementsClick(instance.getElementsAtEvent(event), event); // Backward compatibility\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ref\", function (element) {\n _this.element = element;\n });\n\n _this.chartInstance = undefined;\n return _this;\n }\n\n _createClass(ChartComponent, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.renderChart();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n if (this.props.redraw) {\n this.destroyChart();\n this.renderChart();\n return;\n }\n\n this.updateChart();\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n var _this$props2 = this.props,\n redraw = _this$props2.redraw,\n type = _this$props2.type,\n options = _this$props2.options,\n plugins = _this$props2.plugins,\n legend = _this$props2.legend,\n height = _this$props2.height,\n width = _this$props2.width;\n\n if (nextProps.redraw === true) {\n return true;\n }\n\n if (height !== nextProps.height || width !== nextProps.width) {\n return true;\n }\n\n if (type !== nextProps.type) {\n return true;\n }\n\n if (!(0, _isEqual[\"default\"])(legend, nextProps.legend)) {\n return true;\n }\n\n if (!(0, _isEqual[\"default\"])(options, nextProps.options)) {\n return true;\n }\n\n var nextData = this.transformDataProp(nextProps);\n\n if (!(0, _isEqual[\"default\"])(this.shadowDataProp, nextData)) {\n return true;\n }\n\n return !(0, _isEqual[\"default\"])(plugins, nextProps.plugins);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.destroyChart();\n }\n }, {\n key: \"transformDataProp\",\n value: function transformDataProp(props) {\n var data = props.data;\n\n if (typeof data == 'function') {\n var node = this.element;\n return data(node);\n } else {\n return data;\n }\n } // Chart.js directly mutates the data.dataset objects by adding _meta proprerty\n // this makes impossible to compare the current and next data changes\n // therefore we memoize the data prop while sending a fake to Chart.js for mutation.\n // see https://github.com/chartjs/Chart.js/blob/master/src/core/core.controller.js#L615-L617\n\n }, {\n key: \"memoizeDataProps\",\n value: function memoizeDataProps() {\n if (!this.props.data) {\n return;\n }\n\n var data = this.transformDataProp(this.props);\n this.shadowDataProp = _objectSpread(_objectSpread({}, data), {}, {\n datasets: data.datasets && data.datasets.map(function (set) {\n return _objectSpread({}, set);\n })\n });\n this.saveCurrentDatasets(); // to remove the dataset metadata from this chart when the chart is destroyed\n\n return data;\n }\n }, {\n key: \"checkDatasets\",\n value: function checkDatasets(datasets) {\n var isDev = NODE_ENV !== 'production' && NODE_ENV !== 'prod';\n var usingCustomKeyProvider = this.props.datasetKeyProvider !== ChartComponent.getLabelAsKey;\n var multipleDatasets = datasets.length > 1;\n\n if (isDev && multipleDatasets && !usingCustomKeyProvider) {\n var shouldWarn = false;\n datasets.forEach(function (dataset) {\n if (!dataset.label) {\n shouldWarn = true;\n }\n });\n\n if (shouldWarn) {\n console.error('[react-chartjs-2] Warning: Each dataset needs a unique key. By default, the \"label\" property on each dataset is used. Alternatively, you may provide a \"datasetKeyProvider\" as a prop that returns a unique key.');\n }\n }\n }\n }, {\n key: \"getCurrentDatasets\",\n value: function getCurrentDatasets() {\n return this.chartInstance && this.chartInstance.config.data && this.chartInstance.config.data.datasets || [];\n }\n }, {\n key: \"saveCurrentDatasets\",\n value: function saveCurrentDatasets() {\n var _this2 = this;\n\n this.datasets = this.datasets || {};\n var currentDatasets = this.getCurrentDatasets();\n currentDatasets.forEach(function (d) {\n _this2.datasets[_this2.props.datasetKeyProvider(d)] = d;\n });\n }\n }, {\n key: \"updateChart\",\n value: function updateChart() {\n var _this3 = this;\n\n var options = this.props.options;\n var data = this.memoizeDataProps(this.props);\n if (!this.chartInstance) return;\n\n if (options) {\n this.chartInstance.options = _chart[\"default\"].helpers.configMerge(this.chartInstance.options, options);\n } // Pipe datasets to chart instance datasets enabling\n // seamless transitions\n\n\n var currentDatasets = this.getCurrentDatasets();\n var nextDatasets = data.datasets || [];\n this.checkDatasets(currentDatasets);\n var currentDatasetsIndexed = (0, _keyBy[\"default\"])(currentDatasets, this.props.datasetKeyProvider); // We can safely replace the dataset array, as long as we retain the _meta property\n // on each dataset.\n\n this.chartInstance.config.data.datasets = nextDatasets.map(function (next) {\n var current = currentDatasetsIndexed[_this3.props.datasetKeyProvider(next)];\n\n if (current && current.type === next.type && next.data) {\n // Be robust to no data. Relevant for other update mechanisms as in chartjs-plugin-streaming.\n // The data array must be edited in place. As chart.js adds listeners to it.\n current.data.splice(next.data.length);\n next.data.forEach(function (point, pid) {\n current.data[pid] = next.data[pid];\n });\n\n var _data = next.data,\n otherProps = _objectWithoutProperties(next, [\"data\"]); // Merge properties. Notice a weakness here. If a property is removed\n // from next, it will be retained by current and never disappears.\n // Workaround is to set value to null or undefined in next.\n\n\n return _objectSpread(_objectSpread({}, current), otherProps);\n } else {\n return next;\n }\n });\n\n var datasets = data.datasets,\n rest = _objectWithoutProperties(data, [\"datasets\"]);\n\n this.chartInstance.config.data = _objectSpread(_objectSpread({}, this.chartInstance.config.data), rest);\n this.chartInstance.update();\n }\n }, {\n key: \"renderChart\",\n value: function renderChart() {\n var _this$props3 = this.props,\n options = _this$props3.options,\n legend = _this$props3.legend,\n type = _this$props3.type,\n plugins = _this$props3.plugins;\n var node = this.element;\n var data = this.memoizeDataProps();\n\n if (typeof legend !== 'undefined' && !(0, _isEqual[\"default\"])(ChartComponent.defaultProps.legend, legend)) {\n options.legend = legend;\n }\n\n this.chartInstance = new _chart[\"default\"](node, {\n type: type,\n data: data,\n options: options,\n plugins: plugins\n });\n }\n }, {\n key: \"destroyChart\",\n value: function destroyChart() {\n if (!this.chartInstance) {\n return;\n } // Put all of the datasets that have existed in the chart back on the chart\n // so that the metadata associated with this chart get destroyed.\n // This allows the datasets to be used in another chart. This can happen,\n // for example, in a tabbed UI where the chart gets created each time the\n // tab gets switched to the chart and uses the same data).\n\n\n this.saveCurrentDatasets();\n var datasets = Object.values(this.datasets);\n this.chartInstance.config.data.datasets = datasets;\n this.chartInstance.destroy();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n height = _this$props4.height,\n width = _this$props4.width,\n id = _this$props4.id;\n return /*#__PURE__*/_react[\"default\"].createElement(\"canvas\", {\n ref: this.ref,\n height: height,\n width: width,\n id: id,\n onClick: this.handleOnClick\n });\n }\n }]);\n\n return ChartComponent;\n}(_react[\"default\"].Component);\n\n_defineProperty(ChartComponent, \"getLabelAsKey\", function (d) {\n return d.label;\n});\n\n_defineProperty(ChartComponent, \"propTypes\", {\n data: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].object, _propTypes[\"default\"].func]).isRequired,\n getDatasetAtEvent: _propTypes[\"default\"].func,\n getElementAtEvent: _propTypes[\"default\"].func,\n getElementsAtEvent: _propTypes[\"default\"].func,\n height: _propTypes[\"default\"].number,\n legend: _propTypes[\"default\"].object,\n onElementsClick: _propTypes[\"default\"].func,\n options: _propTypes[\"default\"].object,\n plugins: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].object),\n redraw: _propTypes[\"default\"].bool,\n type: function type(props, propName, componentName) {\n if (!_chart[\"default\"].controllers[props[propName]]) {\n return new Error('Invalid chart type `' + props[propName] + '` supplied to' + ' `' + componentName + '`.');\n }\n },\n width: _propTypes[\"default\"].number,\n datasetKeyProvider: _propTypes[\"default\"].func\n});\n\n_defineProperty(ChartComponent, \"defaultProps\", {\n legend: {\n display: true,\n position: 'bottom'\n },\n type: 'doughnut',\n height: 150,\n width: 300,\n redraw: false,\n options: {},\n datasetKeyProvider: ChartComponent.getLabelAsKey\n});\n\nvar _default = ChartComponent;\nexports[\"default\"] = _default;\n\nvar Doughnut = /*#__PURE__*/function (_React$Component2) {\n _inherits(Doughnut, _React$Component2);\n\n var _super2 = _createSuper(Doughnut);\n\n function Doughnut() {\n _classCallCheck(this, Doughnut);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(Doughnut, [{\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref) {\n return _this4.chartInstance = _ref && _ref.chartInstance;\n },\n type: \"doughnut\"\n }));\n }\n }]);\n\n return Doughnut;\n}(_react[\"default\"].Component);\n\nexports.Doughnut = Doughnut;\n\nvar Pie = /*#__PURE__*/function (_React$Component3) {\n _inherits(Pie, _React$Component3);\n\n var _super3 = _createSuper(Pie);\n\n function Pie() {\n _classCallCheck(this, Pie);\n\n return _super3.apply(this, arguments);\n }\n\n _createClass(Pie, [{\n key: \"render\",\n value: function render() {\n var _this5 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref2) {\n return _this5.chartInstance = _ref2 && _ref2.chartInstance;\n },\n type: \"pie\"\n }));\n }\n }]);\n\n return Pie;\n}(_react[\"default\"].Component);\n\nexports.Pie = Pie;\n\nvar Line = /*#__PURE__*/function (_React$Component4) {\n _inherits(Line, _React$Component4);\n\n var _super4 = _createSuper(Line);\n\n function Line() {\n _classCallCheck(this, Line);\n\n return _super4.apply(this, arguments);\n }\n\n _createClass(Line, [{\n key: \"render\",\n value: function render() {\n var _this6 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref3) {\n return _this6.chartInstance = _ref3 && _ref3.chartInstance;\n },\n type: \"line\"\n }));\n }\n }]);\n\n return Line;\n}(_react[\"default\"].Component);\n\nexports.Line = Line;\n\nvar Bar = /*#__PURE__*/function (_React$Component5) {\n _inherits(Bar, _React$Component5);\n\n var _super5 = _createSuper(Bar);\n\n function Bar() {\n _classCallCheck(this, Bar);\n\n return _super5.apply(this, arguments);\n }\n\n _createClass(Bar, [{\n key: \"render\",\n value: function render() {\n var _this7 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref4) {\n return _this7.chartInstance = _ref4 && _ref4.chartInstance;\n },\n type: \"bar\"\n }));\n }\n }]);\n\n return Bar;\n}(_react[\"default\"].Component);\n\nexports.Bar = Bar;\n\nvar HorizontalBar = /*#__PURE__*/function (_React$Component6) {\n _inherits(HorizontalBar, _React$Component6);\n\n var _super6 = _createSuper(HorizontalBar);\n\n function HorizontalBar() {\n _classCallCheck(this, HorizontalBar);\n\n return _super6.apply(this, arguments);\n }\n\n _createClass(HorizontalBar, [{\n key: \"render\",\n value: function render() {\n var _this8 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref5) {\n return _this8.chartInstance = _ref5 && _ref5.chartInstance;\n },\n type: \"horizontalBar\"\n }));\n }\n }]);\n\n return HorizontalBar;\n}(_react[\"default\"].Component);\n\nexports.HorizontalBar = HorizontalBar;\n\nvar Radar = /*#__PURE__*/function (_React$Component7) {\n _inherits(Radar, _React$Component7);\n\n var _super7 = _createSuper(Radar);\n\n function Radar() {\n _classCallCheck(this, Radar);\n\n return _super7.apply(this, arguments);\n }\n\n _createClass(Radar, [{\n key: \"render\",\n value: function render() {\n var _this9 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref6) {\n return _this9.chartInstance = _ref6 && _ref6.chartInstance;\n },\n type: \"radar\"\n }));\n }\n }]);\n\n return Radar;\n}(_react[\"default\"].Component);\n\nexports.Radar = Radar;\n\nvar Polar = /*#__PURE__*/function (_React$Component8) {\n _inherits(Polar, _React$Component8);\n\n var _super8 = _createSuper(Polar);\n\n function Polar() {\n _classCallCheck(this, Polar);\n\n return _super8.apply(this, arguments);\n }\n\n _createClass(Polar, [{\n key: \"render\",\n value: function render() {\n var _this10 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref7) {\n return _this10.chartInstance = _ref7 && _ref7.chartInstance;\n },\n type: \"polarArea\"\n }));\n }\n }]);\n\n return Polar;\n}(_react[\"default\"].Component);\n\nexports.Polar = Polar;\n\nvar Bubble = /*#__PURE__*/function (_React$Component9) {\n _inherits(Bubble, _React$Component9);\n\n var _super9 = _createSuper(Bubble);\n\n function Bubble() {\n _classCallCheck(this, Bubble);\n\n return _super9.apply(this, arguments);\n }\n\n _createClass(Bubble, [{\n key: \"render\",\n value: function render() {\n var _this11 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref8) {\n return _this11.chartInstance = _ref8 && _ref8.chartInstance;\n },\n type: \"bubble\"\n }));\n }\n }]);\n\n return Bubble;\n}(_react[\"default\"].Component);\n\nexports.Bubble = Bubble;\n\nvar Scatter = /*#__PURE__*/function (_React$Component10) {\n _inherits(Scatter, _React$Component10);\n\n var _super10 = _createSuper(Scatter);\n\n function Scatter() {\n _classCallCheck(this, Scatter);\n\n return _super10.apply(this, arguments);\n }\n\n _createClass(Scatter, [{\n key: \"render\",\n value: function render() {\n var _this12 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref9) {\n return _this12.chartInstance = _ref9 && _ref9.chartInstance;\n },\n type: \"scatter\"\n }));\n }\n }]);\n\n return Scatter;\n}(_react[\"default\"].Component);\n\nexports.Scatter = Scatter;\nvar defaults = _chart[\"default\"].defaults;\nexports.defaults = defaults;","import * as React from 'react';\nimport { VIEWBOX_CENTER_X, VIEWBOX_CENTER_Y } from './constants';\n\nfunction Path({\n className,\n counterClockwise,\n dashRatio,\n pathRadius,\n strokeWidth,\n style,\n}: {\n className?: string;\n counterClockwise: boolean;\n dashRatio: number;\n pathRadius: number;\n strokeWidth: number;\n style?: object;\n}) {\n return (\n \n );\n}\n\n// SVG path description specifies how the path should be drawn\nfunction getPathDescription({\n pathRadius,\n counterClockwise,\n}: {\n pathRadius: number;\n counterClockwise: boolean;\n}) {\n const radius = pathRadius;\n const rotation = counterClockwise ? 1 : 0;\n\n // Move to center of canvas\n // Relative move to top canvas\n // Relative arc to bottom of canvas\n // Relative arc to top of canvas\n return `\n M ${VIEWBOX_CENTER_X},${VIEWBOX_CENTER_Y}\n m 0,-${radius}\n a ${radius},${radius} ${rotation} 1 1 0,${2 * radius}\n a ${radius},${radius} ${rotation} 1 1 0,-${2 * radius}\n `;\n}\n\nfunction getDashStyle({\n counterClockwise,\n dashRatio,\n pathRadius,\n}: {\n counterClockwise: boolean;\n dashRatio: number;\n pathRadius: number;\n}) {\n const diameter = Math.PI * 2 * pathRadius;\n const gapLength = (1 - dashRatio) * diameter;\n\n return {\n // Have dash be full diameter, and gap be full diameter\n strokeDasharray: `${diameter}px ${diameter}px`,\n // Shift dash backward by gapLength, so gap starts appearing at correct distance\n strokeDashoffset: `${counterClockwise ? -gapLength : gapLength}px`,\n };\n}\n\nexport default Path;\n","import * as React from 'react';\n\nimport {\n VIEWBOX_WIDTH,\n VIEWBOX_HEIGHT,\n VIEWBOX_HEIGHT_HALF,\n VIEWBOX_CENTER_X,\n VIEWBOX_CENTER_Y,\n} from './constants';\nimport Path from './Path';\nimport { CircularProgressbarDefaultProps, CircularProgressbarProps } from './types';\n\nclass CircularProgressbar extends React.Component {\n static defaultProps: CircularProgressbarDefaultProps = {\n background: false,\n backgroundPadding: 0,\n circleRatio: 1,\n classes: {\n root: 'CircularProgressbar',\n trail: 'CircularProgressbar-trail',\n path: 'CircularProgressbar-path',\n text: 'CircularProgressbar-text',\n background: 'CircularProgressbar-background',\n },\n counterClockwise: false,\n className: '',\n maxValue: 100,\n minValue: 0,\n strokeWidth: 8,\n styles: {\n root: {},\n trail: {},\n path: {},\n text: {},\n background: {},\n },\n text: '',\n };\n\n getBackgroundPadding() {\n if (!this.props.background) {\n // Don't add padding if not displaying background\n return 0;\n }\n return this.props.backgroundPadding;\n }\n\n getPathRadius() {\n // The radius of the path is defined to be in the middle, so in order for the path to\n // fit perfectly inside the 100x100 viewBox, need to subtract half the strokeWidth\n return VIEWBOX_HEIGHT_HALF - this.props.strokeWidth / 2 - this.getBackgroundPadding();\n }\n\n // Ratio of path length to trail length, as a value between 0 and 1\n getPathRatio() {\n const { value, minValue, maxValue } = this.props;\n const boundedValue = Math.min(Math.max(value, minValue), maxValue);\n return (boundedValue - minValue) / (maxValue - minValue);\n }\n\n render() {\n const {\n circleRatio,\n className,\n classes,\n counterClockwise,\n styles,\n strokeWidth,\n text,\n } = this.props;\n\n const pathRadius = this.getPathRadius();\n const pathRatio = this.getPathRatio();\n\n return (\n \n {this.props.background ? (\n \n ) : null}\n\n \n\n \n\n {text ? (\n \n {text}\n \n ) : null}\n \n );\n }\n}\n\nexport default CircularProgressbar;\n","export const VIEWBOX_WIDTH = 100;\nexport const VIEWBOX_HEIGHT = 100;\nexport const VIEWBOX_HEIGHT_HALF = 50;\nexport const VIEWBOX_CENTER_X = 50;\nexport const VIEWBOX_CENTER_Y = 50;\n","import * as React from 'react';\n\nimport CircularProgressbar from './CircularProgressbar';\nimport { CircularProgressbarWrapperProps } from './types';\n\ntype CircularProgressbarWithChildrenProps = CircularProgressbarWrapperProps & {\n children?: React.ReactNode;\n};\n\n// This is a wrapper around CircularProgressbar that allows passing children,\n// which will be vertically and horizontally centered inside the progressbar automatically.\nfunction CircularProgressbarWithChildren(props: CircularProgressbarWithChildrenProps) {\n const { children, ...circularProgressbarProps } = props;\n\n return (\n
\n {/* Has an extra div wrapper because otherwise, adding content after\n this progressbar is spaced weirdly. */}\n
\n {/* Progressbar is not positioned absolutely, so that it can establish\n intrinsic size for props.children's content. */}\n \n\n {/* Children are positioned absolutely, and height adapts to the\n progressbar's intrinsic size. It appears below the progressbar,\n but negative margin moves it back up. */}\n {props.children ? (\n \n {props.children}\n
\n ) : null}\n
\n \n );\n}\n\nexport default CircularProgressbarWithChildren;\n","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\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","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","'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","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\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","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","/**\n * Helper function for iterating over a collection\n *\n * @param collection\n * @param fn\n */\nfunction each(collection, fn) {\n var i = 0,\n length = collection.length,\n cont;\n\n for(i; i < length; i++) {\n cont = fn(collection[i], i);\n if(cont === false) {\n break; //allow early exit\n }\n }\n}\n\n/**\n * Helper function for determining whether target object is an array\n *\n * @param target the object under test\n * @return {Boolean} true if array, false otherwise\n */\nfunction isArray(target) {\n return Object.prototype.toString.apply(target) === '[object Array]';\n}\n\n/**\n * Helper function for determining whether target object is a function\n *\n * @param target the object under test\n * @return {Boolean} true if function, false otherwise\n */\nfunction isFunction(target) {\n return typeof target === 'function';\n}\n\nmodule.exports = {\n isFunction : isFunction,\n isArray : isArray,\n each : each\n};\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\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 a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\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 `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\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 array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import {\n GA4Config,\n GA4ManagerOptionsInterface,\n GA4ReactInterface,\n GA4ReactResolveInterface,\n gtagAction,\n gtagCategory,\n gtagFunction,\n gtagLabel,\n} from '../models/gtagModels';\n\nexport const GA4ReactGlobalIndex = '__ga4React__';\n\ndeclare global {\n interface Window {\n gtag: gtagFunction | Function;\n __ga4React__: GA4ReactResolveInterface;\n }\n}\n\n/**\n * @desc class required to manage google analitycs 4\n * @class GA4React\n * */\nexport class GA4React implements GA4ReactInterface {\n private scriptSyncId: string = 'ga4ReactScriptSync';\n private scriptAsyncId: string = 'ga4ReactScriptAsync';\n private nonceAsync: string = '';\n private nonceSync: string = '';\n constructor(\n private gaCode: string,\n private gaConfig?: GA4Config,\n private additionalGaCode?: Array,\n private timeout?: number,\n private options?: GA4ManagerOptionsInterface\n ) {\n this.gaConfig = gaConfig ? gaConfig : {};\n this.gaCode = gaCode;\n this.timeout = timeout || 5000;\n this.additionalGaCode = additionalGaCode;\n this.options = options;\n\n if (this.options) {\n const { nonce } = this.options;\n this.nonceAsync = nonce && nonce[0] ? nonce[0] : '';\n this.nonceSync = nonce && nonce[1] ? nonce[1] : '';\n }\n }\n\n /**\n * @desc output on resolve initialization\n */\n private outputOnResolve(): GA4ReactResolveInterface {\n return {\n pageview: this.pageview,\n event: this.event,\n gtag: this.gtag,\n };\n }\n\n /**\n * @desc Return main function for send ga4 events, pageview etc\n * @returns {Promise}\n */\n public initialize(): Promise {\n return new Promise((resolve, reject) => {\n if (GA4React.isInitialized()) {\n reject(new Error('GA4React is being initialized'));\n }\n\n // in case of retry logics, remove previous scripts\n const previousScriptAsync = document.getElementById(this.scriptAsyncId);\n if (previousScriptAsync) {\n previousScriptAsync.remove();\n }\n\n const head: HTMLHeadElement = document.getElementsByTagName('head')[0];\n const scriptAsync: HTMLScriptElement = document.createElement('script');\n scriptAsync.setAttribute('id', this.scriptAsyncId);\n scriptAsync.setAttribute('async', '');\n\n if (\n this.nonceAsync &&\n typeof this.nonceAsync === 'string' &&\n this.nonceAsync.length > 0\n ) {\n scriptAsync.setAttribute('nonce', this.nonceAsync);\n }\n\n scriptAsync.setAttribute(\n 'src',\n `https://www.googletagmanager.com/gtag/js?id=${this.gaCode}`\n );\n scriptAsync.onload = () => {\n const target: HTMLElement | null = document.getElementById(\n this.scriptSyncId\n );\n if (target) {\n target.remove();\n }\n\n // in case of retry logics, remove previous script sync\n const previousScriptSync = document.getElementById(this.scriptSyncId);\n if (previousScriptSync) {\n previousScriptSync.remove();\n }\n\n const scriptSync: HTMLScriptElement = document.createElement('script');\n\n scriptSync.setAttribute('id', this.scriptSyncId);\n\n if (\n this.nonceSync &&\n typeof this.nonceSync === 'string' &&\n this.nonceSync.length > 0\n ) {\n scriptSync.setAttribute('nonce', this.nonceSync);\n }\n\n let scriptHTML: string = `window.dataLayer = window.dataLayer || [];\n function gtag(){dataLayer.push(arguments);};\n gtag('js', new Date());\n gtag('config', '${this.gaCode}', ${JSON.stringify(this.gaConfig)});`;\n\n if (this.additionalGaCode) {\n this.additionalGaCode.forEach((code: string) => {\n scriptHTML += `\\ngtag('config', '${code}', ${JSON.stringify(\n this.gaConfig\n )});`;\n });\n }\n\n scriptSync.innerHTML = scriptHTML;\n\n head.appendChild(scriptSync);\n\n const resolved: GA4ReactResolveInterface = this.outputOnResolve();\n\n Object.assign(window, { [GA4ReactGlobalIndex]: resolved });\n\n resolve(resolved);\n };\n\n scriptAsync.onerror = (event: Event | string): void => {\n if (typeof event === 'string') {\n reject(`GA4React intialization failed ${event}`);\n } else {\n const error = new Error();\n error.name = 'GA4React intialization failed';\n error.message = JSON.stringify(event, [\n 'message',\n 'arguments',\n 'type',\n 'name',\n ]);\n reject(error);\n }\n };\n\n const onChangeReadyState = () => {\n switch (document.readyState) {\n case 'interactive':\n case 'complete':\n if (!GA4React.isInitialized()) {\n head.appendChild(scriptAsync);\n document.removeEventListener(\n 'readystatechange',\n onChangeReadyState\n );\n }\n break;\n }\n };\n\n if (document.readyState !== 'complete') {\n document.addEventListener('readystatechange', onChangeReadyState);\n } else {\n onChangeReadyState();\n }\n\n setTimeout(() => {\n reject(new Error('GA4React Timeout'));\n }, this.timeout);\n });\n }\n\n /**\n * @desc send pageview event to gtag\n * @param path\n */\n public pageview(\n path: string | Location,\n location?: string | Location,\n title?: string\n ): any {\n return this.gtag('event', 'page_view', {\n page_path: path,\n page_location: location || window.location,\n page_title: title || document.title,\n });\n }\n\n /**\n * @desc set event and send to gtag\n * @param action\n * @param label\n * @param category\n * @param nonInteraction\n */\n public event(\n action: gtagAction,\n label: gtagLabel,\n category: gtagCategory,\n nonInteraction: boolean = false\n ): any {\n return this.gtag('event', action, {\n event_label: label,\n event_category: category,\n non_interaction: nonInteraction,\n });\n }\n\n /**\n * @desc direct access to gtag\n * @param args\n */\n public gtag(...args: any): any {\n //@ts-ignore\n return window.gtag(...args);\n }\n\n /**\n * @desc ga is initialized?\n */\n static isInitialized(): boolean {\n switch (typeof window[GA4ReactGlobalIndex] !== 'undefined') {\n case true:\n return true;\n default:\n return false;\n }\n }\n\n /**\n * @desc get ga4react from global\n */\n static getGA4React(): GA4ReactResolveInterface | void {\n if (GA4React.isInitialized()) {\n return window[GA4ReactGlobalIndex];\n } else {\n console.error(new Error('GA4React is not initialized'));\n }\n }\n}\n\nexport default GA4React;\n","import { useState, useEffect } from 'react';\nimport GA4React from '../lib/ga4manager';\n\nimport {\n GA4Config,\n GA4ManagerOptionsInterface,\n GA4ReactResolveInterface,\n} from '../models/gtagModels';\n\nexport const useGA4React = (\n gaCode?: string,\n gaConfig?: GA4Config | object,\n gaAdditionalCode?: Array,\n gaTimeout?: number,\n options?: GA4ManagerOptionsInterface\n): GA4ReactResolveInterface | void => {\n const [ga4, setGA4] = useState(undefined);\n useEffect(() => {\n if (gaCode) {\n switch (GA4React.isInitialized()) {\n case false:\n const ga4react = new GA4React(\n `${gaCode}`,\n gaConfig,\n gaAdditionalCode,\n gaTimeout,\n options\n );\n ga4react.initialize().then(\n (ga4: GA4ReactResolveInterface) => {\n setGA4(ga4);\n },\n (err: Error) => {\n console.error(err);\n }\n );\n break;\n case true:\n setGA4(GA4React.getGA4React());\n break;\n }\n } else {\n setGA4(GA4React.getGA4React());\n }\n }, [gaCode]);\n return ga4;\n};\n","//! moment.js\n//! version : 2.29.1\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 for (i = 0; i < arr.length; ++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, prop, val;\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 (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; 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 for (i = 0; i < arguments.length; 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 = /(\\[[^\\[]*\\])|(\\\\)?([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 for (i = 0; i < prioritized.length; 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 = /[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(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (\n matched,\n p1,\n p2,\n p3,\n p4\n ) {\n return p1 || p2 || p3 || p4;\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 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 for (i = 0; i < token.length; 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 = 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(\n '_'\n ),\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(['w', 'ww', 'W', 'WW'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 1)] = toInt(input);\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 = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\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 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 ) {\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 = /^\\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 = /^\\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 = /^(?:(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\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; 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 = isoTimes.length; 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\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; 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\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; 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 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 < ordering.length; ++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 = /^(-|\\+)?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\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 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', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (\n input,\n array,\n config,\n token\n ) {\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 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(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 2)] = toInt(input);\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.1';\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","/*!\n * Chart.js v2.9.4\n * https://www.chartjs.org\n * (c) 2020 Chart.js Contributors\n * Released under the MIT License\n */\n(function (global, factory) {\ntypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(function() { try { return require('moment'); } catch(e) { } }()) :\ntypeof define === 'function' && define.amd ? define(['require'], function(require) { return factory(function() { try { return require('moment'); } catch(e) { } }()); }) :\n(global = global || self, global.Chart = factory(global.moment));\n}(this, (function (moment) { 'use strict';\n\nmoment = moment && moment.hasOwnProperty('default') ? moment['default'] : moment;\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nfunction getCjsExportFromNamespace (n) {\n\treturn n && n['default'] || n;\n}\n\nvar colorName = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\n\nvar conversions = createCommonjsModule(function (module) {\n/* MIT license */\n\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in colorName) {\n\tif (colorName.hasOwnProperty(key)) {\n\t\treverseKeywords[colorName[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in colorName) {\n\t\tif (colorName.hasOwnProperty(keyword)) {\n\t\t\tvar value = colorName[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn colorName[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n});\nvar conversions_1 = conversions.rgb;\nvar conversions_2 = conversions.hsl;\nvar conversions_3 = conversions.hsv;\nvar conversions_4 = conversions.hwb;\nvar conversions_5 = conversions.cmyk;\nvar conversions_6 = conversions.xyz;\nvar conversions_7 = conversions.lab;\nvar conversions_8 = conversions.lch;\nvar conversions_9 = conversions.hex;\nvar conversions_10 = conversions.keyword;\nvar conversions_11 = conversions.ansi16;\nvar conversions_12 = conversions.ansi256;\nvar conversions_13 = conversions.hcg;\nvar conversions_14 = conversions.apple;\nvar conversions_15 = conversions.gray;\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nvar route = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nvar colorConvert = convert;\n\nvar colorName$1 = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\n\n/* MIT license */\n\n\nvar colorString = {\n getRgba: getRgba,\n getHsla: getHsla,\n getRgb: getRgb,\n getHsl: getHsl,\n getHwb: getHwb,\n getAlpha: getAlpha,\n\n hexString: hexString,\n rgbString: rgbString,\n rgbaString: rgbaString,\n percentString: percentString,\n percentaString: percentaString,\n hslString: hslString,\n hslaString: hslaString,\n hwbString: hwbString,\n keyword: keyword\n};\n\nfunction getRgba(string) {\n if (!string) {\n return;\n }\n var abbr = /^#([a-fA-F0-9]{3,4})$/i,\n hex = /^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i,\n rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n keyword = /(\\w+)/;\n\n var rgb = [0, 0, 0],\n a = 1,\n match = string.match(abbr),\n hexAlpha = \"\";\n if (match) {\n match = match[1];\n hexAlpha = match[3];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i] + match[i], 16);\n }\n if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n }\n }\n else if (match = string.match(hex)) {\n hexAlpha = match[2];\n match = match[1];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match.slice(i * 2, i * 2 + 2), 16);\n }\n if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\n }\n }\n else if (match = string.match(rgba)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i + 1]);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(per)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(keyword)) {\n if (match[1] == \"transparent\") {\n return [0, 0, 0, 0];\n }\n rgb = colorName$1[match[1]];\n if (!rgb) {\n return;\n }\n }\n\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = scale(rgb[i], 0, 255);\n }\n if (!a && a != 0) {\n a = 1;\n }\n else {\n a = scale(a, 0, 1);\n }\n rgb[3] = a;\n return rgb;\n}\n\nfunction getHsla(string) {\n if (!string) {\n return;\n }\n var hsl = /^hsla?\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hsl);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n s = scale(parseFloat(match[2]), 0, 100),\n l = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, s, l, a];\n }\n}\n\nfunction getHwb(string) {\n if (!string) {\n return;\n }\n var hwb = /^hwb\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hwb);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n w = scale(parseFloat(match[2]), 0, 100),\n b = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, w, b, a];\n }\n}\n\nfunction getRgb(string) {\n var rgba = getRgba(string);\n return rgba && rgba.slice(0, 3);\n}\n\nfunction getHsl(string) {\n var hsla = getHsla(string);\n return hsla && hsla.slice(0, 3);\n}\n\nfunction getAlpha(string) {\n var vals = getRgba(string);\n if (vals) {\n return vals[3];\n }\n else if (vals = getHsla(string)) {\n return vals[3];\n }\n else if (vals = getHwb(string)) {\n return vals[3];\n }\n}\n\n// generators\nfunction hexString(rgba, a) {\n var a = (a !== undefined && rgba.length === 3) ? a : rgba[3];\n return \"#\" + hexDouble(rgba[0]) \n + hexDouble(rgba[1])\n + hexDouble(rgba[2])\n + (\n (a >= 0 && a < 1)\n ? hexDouble(Math.round(a * 255))\n : \"\"\n );\n}\n\nfunction rgbString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return rgbaString(rgba, alpha);\n }\n return \"rgb(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2] + \")\";\n}\n\nfunction rgbaString(rgba, alpha) {\n if (alpha === undefined) {\n alpha = (rgba[3] !== undefined ? rgba[3] : 1);\n }\n return \"rgba(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2]\n + \", \" + alpha + \")\";\n}\n\nfunction percentString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return percentaString(rgba, alpha);\n }\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n\n return \"rgb(\" + r + \"%, \" + g + \"%, \" + b + \"%)\";\n}\n\nfunction percentaString(rgba, alpha) {\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n return \"rgba(\" + r + \"%, \" + g + \"%, \" + b + \"%, \" + (alpha || rgba[3] || 1) + \")\";\n}\n\nfunction hslString(hsla, alpha) {\n if (alpha < 1 || (hsla[3] && hsla[3] < 1)) {\n return hslaString(hsla, alpha);\n }\n return \"hsl(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%)\";\n}\n\nfunction hslaString(hsla, alpha) {\n if (alpha === undefined) {\n alpha = (hsla[3] !== undefined ? hsla[3] : 1);\n }\n return \"hsla(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%, \"\n + alpha + \")\";\n}\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\nfunction hwbString(hwb, alpha) {\n if (alpha === undefined) {\n alpha = (hwb[3] !== undefined ? hwb[3] : 1);\n }\n return \"hwb(\" + hwb[0] + \", \" + hwb[1] + \"%, \" + hwb[2] + \"%\"\n + (alpha !== undefined && alpha !== 1 ? \", \" + alpha : \"\") + \")\";\n}\n\nfunction keyword(rgb) {\n return reverseNames[rgb.slice(0, 3)];\n}\n\n// helpers\nfunction scale(num, min, max) {\n return Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n var str = num.toString(16).toUpperCase();\n return (str.length < 2) ? \"0\" + str : str;\n}\n\n\n//create a list of reverse color names\nvar reverseNames = {};\nfor (var name in colorName$1) {\n reverseNames[colorName$1[name]] = name;\n}\n\n/* MIT license */\n\n\n\nvar Color = function (obj) {\n\tif (obj instanceof Color) {\n\t\treturn obj;\n\t}\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj);\n\t}\n\n\tthis.valid = false;\n\tthis.values = {\n\t\trgb: [0, 0, 0],\n\t\thsl: [0, 0, 0],\n\t\thsv: [0, 0, 0],\n\t\thwb: [0, 0, 0],\n\t\tcmyk: [0, 0, 0, 0],\n\t\talpha: 1\n\t};\n\n\t// parse Color() argument\n\tvar vals;\n\tif (typeof obj === 'string') {\n\t\tvals = colorString.getRgba(obj);\n\t\tif (vals) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals = colorString.getHsla(obj)) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals = colorString.getHwb(obj)) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t}\n\t} else if (typeof obj === 'object') {\n\t\tvals = obj;\n\t\tif (vals.r !== undefined || vals.red !== undefined) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals.l !== undefined || vals.lightness !== undefined) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals.v !== undefined || vals.value !== undefined) {\n\t\t\tthis.setValues('hsv', vals);\n\t\t} else if (vals.w !== undefined || vals.whiteness !== undefined) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t} else if (vals.c !== undefined || vals.cyan !== undefined) {\n\t\t\tthis.setValues('cmyk', vals);\n\t\t}\n\t}\n};\n\nColor.prototype = {\n\tisValid: function () {\n\t\treturn this.valid;\n\t},\n\trgb: function () {\n\t\treturn this.setSpace('rgb', arguments);\n\t},\n\thsl: function () {\n\t\treturn this.setSpace('hsl', arguments);\n\t},\n\thsv: function () {\n\t\treturn this.setSpace('hsv', arguments);\n\t},\n\thwb: function () {\n\t\treturn this.setSpace('hwb', arguments);\n\t},\n\tcmyk: function () {\n\t\treturn this.setSpace('cmyk', arguments);\n\t},\n\n\trgbArray: function () {\n\t\treturn this.values.rgb;\n\t},\n\thslArray: function () {\n\t\treturn this.values.hsl;\n\t},\n\thsvArray: function () {\n\t\treturn this.values.hsv;\n\t},\n\thwbArray: function () {\n\t\tvar values = this.values;\n\t\tif (values.alpha !== 1) {\n\t\t\treturn values.hwb.concat([values.alpha]);\n\t\t}\n\t\treturn values.hwb;\n\t},\n\tcmykArray: function () {\n\t\treturn this.values.cmyk;\n\t},\n\trgbaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.rgb.concat([values.alpha]);\n\t},\n\thslaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.hsl.concat([values.alpha]);\n\t},\n\talpha: function (val) {\n\t\tif (val === undefined) {\n\t\t\treturn this.values.alpha;\n\t\t}\n\t\tthis.setValues('alpha', val);\n\t\treturn this;\n\t},\n\n\tred: function (val) {\n\t\treturn this.setChannel('rgb', 0, val);\n\t},\n\tgreen: function (val) {\n\t\treturn this.setChannel('rgb', 1, val);\n\t},\n\tblue: function (val) {\n\t\treturn this.setChannel('rgb', 2, val);\n\t},\n\thue: function (val) {\n\t\tif (val) {\n\t\t\tval %= 360;\n\t\t\tval = val < 0 ? 360 + val : val;\n\t\t}\n\t\treturn this.setChannel('hsl', 0, val);\n\t},\n\tsaturation: function (val) {\n\t\treturn this.setChannel('hsl', 1, val);\n\t},\n\tlightness: function (val) {\n\t\treturn this.setChannel('hsl', 2, val);\n\t},\n\tsaturationv: function (val) {\n\t\treturn this.setChannel('hsv', 1, val);\n\t},\n\twhiteness: function (val) {\n\t\treturn this.setChannel('hwb', 1, val);\n\t},\n\tblackness: function (val) {\n\t\treturn this.setChannel('hwb', 2, val);\n\t},\n\tvalue: function (val) {\n\t\treturn this.setChannel('hsv', 2, val);\n\t},\n\tcyan: function (val) {\n\t\treturn this.setChannel('cmyk', 0, val);\n\t},\n\tmagenta: function (val) {\n\t\treturn this.setChannel('cmyk', 1, val);\n\t},\n\tyellow: function (val) {\n\t\treturn this.setChannel('cmyk', 2, val);\n\t},\n\tblack: function (val) {\n\t\treturn this.setChannel('cmyk', 3, val);\n\t},\n\n\thexString: function () {\n\t\treturn colorString.hexString(this.values.rgb);\n\t},\n\trgbString: function () {\n\t\treturn colorString.rgbString(this.values.rgb, this.values.alpha);\n\t},\n\trgbaString: function () {\n\t\treturn colorString.rgbaString(this.values.rgb, this.values.alpha);\n\t},\n\tpercentString: function () {\n\t\treturn colorString.percentString(this.values.rgb, this.values.alpha);\n\t},\n\thslString: function () {\n\t\treturn colorString.hslString(this.values.hsl, this.values.alpha);\n\t},\n\thslaString: function () {\n\t\treturn colorString.hslaString(this.values.hsl, this.values.alpha);\n\t},\n\thwbString: function () {\n\t\treturn colorString.hwbString(this.values.hwb, this.values.alpha);\n\t},\n\tkeyword: function () {\n\t\treturn colorString.keyword(this.values.rgb, this.values.alpha);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.values.rgb;\n\t\treturn (rgb[0] << 16) | (rgb[1] << 8) | rgb[2];\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.values.rgb;\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tdark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.values.rgb;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tlight: function () {\n\t\treturn !this.dark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = [];\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb[i] = 255 - this.values.rgb[i];\n\t\t}\n\t\tthis.setValues('rgb', rgb);\n\t\treturn this;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] += hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] -= hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] += hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] -= hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[1] += hwb[1] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[2] += hwb[2] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tgreyscale: function () {\n\t\tvar rgb = this.values.rgb;\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\tthis.setValues('rgb', [val, val, val]);\n\t\treturn this;\n\t},\n\n\tclearer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha - (alpha * ratio));\n\t\treturn this;\n\t},\n\n\topaquer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha + (alpha * ratio));\n\t\treturn this;\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.values.hsl;\n\t\tvar hue = (hsl[0] + degrees) % 360;\n\t\thsl[0] = hue < 0 ? 360 + hue : hue;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\t/**\n\t * Ported from sass implementation in C\n\t * https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t */\n\tmix: function (mixinColor, weight) {\n\t\tvar color1 = this;\n\t\tvar color2 = mixinColor;\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn this\n\t\t\t.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue()\n\t\t\t)\n\t\t\t.alpha(color1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n\n\ttoJSON: function () {\n\t\treturn this.rgb();\n\t},\n\n\tclone: function () {\n\t\t// NOTE(SB): using node-clone creates a dependency to Buffer when using browserify,\n\t\t// making the final build way to big to embed in Chart.js. So let's do it manually,\n\t\t// assuming that values to clone are 1 dimension arrays containing only numbers,\n\t\t// except 'alpha' which is a number.\n\t\tvar result = new Color();\n\t\tvar source = this.values;\n\t\tvar target = result.values;\n\t\tvar value, type;\n\n\t\tfor (var prop in source) {\n\t\t\tif (source.hasOwnProperty(prop)) {\n\t\t\t\tvalue = source[prop];\n\t\t\t\ttype = ({}).toString.call(value);\n\t\t\t\tif (type === '[object Array]') {\n\t\t\t\t\ttarget[prop] = value.slice(0);\n\t\t\t\t} else if (type === '[object Number]') {\n\t\t\t\t\ttarget[prop] = value;\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error('unexpected color value:', value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n};\n\nColor.prototype.spaces = {\n\trgb: ['red', 'green', 'blue'],\n\thsl: ['hue', 'saturation', 'lightness'],\n\thsv: ['hue', 'saturation', 'value'],\n\thwb: ['hue', 'whiteness', 'blackness'],\n\tcmyk: ['cyan', 'magenta', 'yellow', 'black']\n};\n\nColor.prototype.maxes = {\n\trgb: [255, 255, 255],\n\thsl: [360, 100, 100],\n\thsv: [360, 100, 100],\n\thwb: [360, 100, 100],\n\tcmyk: [100, 100, 100, 100]\n};\n\nColor.prototype.getValues = function (space) {\n\tvar values = this.values;\n\tvar vals = {};\n\n\tfor (var i = 0; i < space.length; i++) {\n\t\tvals[space.charAt(i)] = values[space][i];\n\t}\n\n\tif (values.alpha !== 1) {\n\t\tvals.a = values.alpha;\n\t}\n\n\t// {r: 255, g: 255, b: 255, a: 0.4}\n\treturn vals;\n};\n\nColor.prototype.setValues = function (space, vals) {\n\tvar values = this.values;\n\tvar spaces = this.spaces;\n\tvar maxes = this.maxes;\n\tvar alpha = 1;\n\tvar i;\n\n\tthis.valid = true;\n\n\tif (space === 'alpha') {\n\t\talpha = vals;\n\t} else if (vals.length) {\n\t\t// [10, 10, 10]\n\t\tvalues[space] = vals.slice(0, space.length);\n\t\talpha = vals[space.length];\n\t} else if (vals[space.charAt(0)] !== undefined) {\n\t\t// {r: 10, g: 10, b: 10}\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[space.charAt(i)];\n\t\t}\n\n\t\talpha = vals.a;\n\t} else if (vals[spaces[space][0]] !== undefined) {\n\t\t// {red: 10, green: 10, blue: 10}\n\t\tvar chans = spaces[space];\n\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[chans[i]];\n\t\t}\n\n\t\talpha = vals.alpha;\n\t}\n\n\tvalues.alpha = Math.max(0, Math.min(1, (alpha === undefined ? values.alpha : alpha)));\n\n\tif (space === 'alpha') {\n\t\treturn false;\n\t}\n\n\tvar capped;\n\n\t// cap values of the space prior converting all values\n\tfor (i = 0; i < space.length; i++) {\n\t\tcapped = Math.max(0, Math.min(maxes[space][i], values[space][i]));\n\t\tvalues[space][i] = Math.round(capped);\n\t}\n\n\t// convert to all the other color spaces\n\tfor (var sname in spaces) {\n\t\tif (sname !== space) {\n\t\t\tvalues[sname] = colorConvert[space][sname](values[space]);\n\t\t}\n\t}\n\n\treturn true;\n};\n\nColor.prototype.setSpace = function (space, args) {\n\tvar vals = args[0];\n\n\tif (vals === undefined) {\n\t\t// color.rgb()\n\t\treturn this.getValues(space);\n\t}\n\n\t// color.rgb(10, 10, 10)\n\tif (typeof vals === 'number') {\n\t\tvals = Array.prototype.slice.call(args);\n\t}\n\n\tthis.setValues(space, vals);\n\treturn this;\n};\n\nColor.prototype.setChannel = function (space, index, val) {\n\tvar svalues = this.values[space];\n\tif (val === undefined) {\n\t\t// color.red()\n\t\treturn svalues[index];\n\t} else if (val === svalues[index]) {\n\t\t// color.red(color.red())\n\t\treturn this;\n\t}\n\n\t// color.red(100)\n\tsvalues[index] = val;\n\tthis.setValues(space, svalues);\n\n\treturn this;\n};\n\nif (typeof window !== 'undefined') {\n\twindow.Color = Color;\n}\n\nvar chartjsColor = Color;\n\nfunction isValidKey(key) {\r\n\treturn ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\r\n}\r\n\r\n/**\r\n * @namespace Chart.helpers\r\n */\r\nvar helpers = {\r\n\t/**\r\n\t * An empty function that can be used, for example, for optional callback.\r\n\t */\r\n\tnoop: function() {},\r\n\r\n\t/**\r\n\t * Returns a unique id, sequentially generated from a global variable.\r\n\t * @returns {number}\r\n\t * @function\r\n\t */\r\n\tuid: (function() {\r\n\t\tvar id = 0;\r\n\t\treturn function() {\r\n\t\t\treturn id++;\r\n\t\t};\r\n\t}()),\r\n\r\n\t/**\r\n\t * Returns true if `value` is neither null nor undefined, else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @since 2.7.0\r\n\t */\r\n\tisNullOrUndef: function(value) {\r\n\t\treturn value === null || typeof value === 'undefined';\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is an array (including typed arrays), else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @function\r\n\t */\r\n\tisArray: function(value) {\r\n\t\tif (Array.isArray && Array.isArray(value)) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tvar type = Object.prototype.toString.call(value);\r\n\t\tif (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is an object (excluding null), else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @since 2.7.0\r\n\t */\r\n\tisObject: function(value) {\r\n\t\treturn value !== null && Object.prototype.toString.call(value) === '[object Object]';\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is a finite number, else returns false\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t */\r\n\tisFinite: function(value) {\r\n\t\treturn (typeof value === 'number' || value instanceof Number) && isFinite(value);\r\n\t},\r\n\r\n\t/**\r\n\t * Returns `value` if defined, else returns `defaultValue`.\r\n\t * @param {*} value - The value to return if defined.\r\n\t * @param {*} defaultValue - The value to return if `value` is undefined.\r\n\t * @returns {*}\r\n\t */\r\n\tvalueOrDefault: function(value, defaultValue) {\r\n\t\treturn typeof value === 'undefined' ? defaultValue : value;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns value at the given `index` in array if defined, else returns `defaultValue`.\r\n\t * @param {Array} value - The array to lookup for value at `index`.\r\n\t * @param {number} index - The index in `value` to lookup for value.\r\n\t * @param {*} defaultValue - The value to return if `value[index]` is undefined.\r\n\t * @returns {*}\r\n\t */\r\n\tvalueAtIndexOrDefault: function(value, index, defaultValue) {\r\n\t\treturn helpers.valueOrDefault(helpers.isArray(value) ? value[index] : value, defaultValue);\r\n\t},\r\n\r\n\t/**\r\n\t * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\r\n\t * value returned by `fn`. If `fn` is not a function, this method returns undefined.\r\n\t * @param {function} fn - The function to call.\r\n\t * @param {Array|undefined|null} args - The arguments with which `fn` should be called.\r\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\r\n\t * @returns {*}\r\n\t */\r\n\tcallback: function(fn, args, thisArg) {\r\n\t\tif (fn && typeof fn.call === 'function') {\r\n\t\t\treturn fn.apply(thisArg, args);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Note(SB) for performance sake, this method should only be used when loopable type\r\n\t * is unknown or in none intensive code (not called often and small loopable). Else\r\n\t * it's preferable to use a regular for() loop and save extra function calls.\r\n\t * @param {object|Array} loopable - The object or array to be iterated.\r\n\t * @param {function} fn - The function to call for each item.\r\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\r\n\t * @param {boolean} [reverse] - If true, iterates backward on the loopable.\r\n\t */\r\n\teach: function(loopable, fn, thisArg, reverse) {\r\n\t\tvar i, len, keys;\r\n\t\tif (helpers.isArray(loopable)) {\r\n\t\t\tlen = loopable.length;\r\n\t\t\tif (reverse) {\r\n\t\t\t\tfor (i = len - 1; i >= 0; i--) {\r\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tfor (i = 0; i < len; i++) {\r\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else if (helpers.isObject(loopable)) {\r\n\t\t\tkeys = Object.keys(loopable);\r\n\t\t\tlen = keys.length;\r\n\t\t\tfor (i = 0; i < len; i++) {\r\n\t\t\t\tfn.call(thisArg, loopable[keys[i]], keys[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\r\n\t * @see https://stackoverflow.com/a/14853974\r\n\t * @param {Array} a0 - The array to compare\r\n\t * @param {Array} a1 - The array to compare\r\n\t * @returns {boolean}\r\n\t */\r\n\tarrayEquals: function(a0, a1) {\r\n\t\tvar i, ilen, v0, v1;\r\n\r\n\t\tif (!a0 || !a1 || a0.length !== a1.length) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = a0.length; i < ilen; ++i) {\r\n\t\t\tv0 = a0[i];\r\n\t\t\tv1 = a1[i];\r\n\r\n\t\t\tif (v0 instanceof Array && v1 instanceof Array) {\r\n\t\t\t\tif (!helpers.arrayEquals(v0, v1)) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t} else if (v0 !== v1) {\r\n\t\t\t\t// NOTE: two different object instances will never be equal: {x:20} != {x:20}\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns a deep copy of `source` without keeping references on objects and arrays.\r\n\t * @param {*} source - The value to clone.\r\n\t * @returns {*}\r\n\t */\r\n\tclone: function(source) {\r\n\t\tif (helpers.isArray(source)) {\r\n\t\t\treturn source.map(helpers.clone);\r\n\t\t}\r\n\r\n\t\tif (helpers.isObject(source)) {\r\n\t\t\tvar target = Object.create(source);\r\n\t\t\tvar keys = Object.keys(source);\r\n\t\t\tvar klen = keys.length;\r\n\t\t\tvar k = 0;\r\n\r\n\t\t\tfor (; k < klen; ++k) {\r\n\t\t\t\ttarget[keys[k]] = helpers.clone(source[keys[k]]);\r\n\t\t\t}\r\n\r\n\t\t\treturn target;\r\n\t\t}\r\n\r\n\t\treturn source;\r\n\t},\r\n\r\n\t/**\r\n\t * The default merger when Chart.helpers.merge is called without merger option.\r\n\t * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\r\n\t * @private\r\n\t */\r\n\t_merger: function(key, target, source, options) {\r\n\t\tif (!isValidKey(key)) {\r\n\t\t\t// We want to ensure we do not copy prototypes over\r\n\t\t\t// as this can pollute global namespaces\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar tval = target[key];\r\n\t\tvar sval = source[key];\r\n\r\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\r\n\t\t\thelpers.merge(tval, sval, options);\r\n\t\t} else {\r\n\t\t\ttarget[key] = helpers.clone(sval);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Merges source[key] in target[key] only if target[key] is undefined.\r\n\t * @private\r\n\t */\r\n\t_mergerIf: function(key, target, source) {\r\n\t\tif (!isValidKey(key)) {\r\n\t\t\t// We want to ensure we do not copy prototypes over\r\n\t\t\t// as this can pollute global namespaces\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar tval = target[key];\r\n\t\tvar sval = source[key];\r\n\r\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\r\n\t\t\thelpers.mergeIf(tval, sval);\r\n\t\t} else if (!target.hasOwnProperty(key)) {\r\n\t\t\ttarget[key] = helpers.clone(sval);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Recursively deep copies `source` properties into `target` with the given `options`.\r\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\r\n\t * @param {object} target - The target object in which all sources are merged into.\r\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\r\n\t * @param {object} [options] - Merging options:\r\n\t * @param {function} [options.merger] - The merge method (key, target, source, options)\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\tmerge: function(target, source, options) {\r\n\t\tvar sources = helpers.isArray(source) ? source : [source];\r\n\t\tvar ilen = sources.length;\r\n\t\tvar merge, i, keys, klen, k;\r\n\r\n\t\tif (!helpers.isObject(target)) {\r\n\t\t\treturn target;\r\n\t\t}\r\n\r\n\t\toptions = options || {};\r\n\t\tmerge = options.merger || helpers._merger;\r\n\r\n\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\tsource = sources[i];\r\n\t\t\tif (!helpers.isObject(source)) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tkeys = Object.keys(source);\r\n\t\t\tfor (k = 0, klen = keys.length; k < klen; ++k) {\r\n\t\t\t\tmerge(keys[k], target, source, options);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn target;\r\n\t},\r\n\r\n\t/**\r\n\t * Recursively deep copies `source` properties into `target` *only* if not defined in target.\r\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\r\n\t * @param {object} target - The target object in which all sources are merged into.\r\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\tmergeIf: function(target, source) {\r\n\t\treturn helpers.merge(target, source, {merger: helpers._mergerIf});\r\n\t},\r\n\r\n\t/**\r\n\t * Applies the contents of two or more objects together into the first object.\r\n\t * @param {object} target - The target object in which all objects are merged into.\r\n\t * @param {object} arg1 - Object containing additional properties to merge in target.\r\n\t * @param {object} argN - Additional objects containing properties to merge in target.\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\textend: Object.assign || function(target) {\r\n\t\treturn helpers.merge(target, [].slice.call(arguments, 1), {\r\n\t\t\tmerger: function(key, dst, src) {\r\n\t\t\t\tdst[key] = src[key];\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * Basic javascript inheritance based on the model created in Backbone.js\r\n\t */\r\n\tinherits: function(extensions) {\r\n\t\tvar me = this;\r\n\t\tvar ChartElement = (extensions && extensions.hasOwnProperty('constructor')) ? extensions.constructor : function() {\r\n\t\t\treturn me.apply(this, arguments);\r\n\t\t};\r\n\r\n\t\tvar Surrogate = function() {\r\n\t\t\tthis.constructor = ChartElement;\r\n\t\t};\r\n\r\n\t\tSurrogate.prototype = me.prototype;\r\n\t\tChartElement.prototype = new Surrogate();\r\n\t\tChartElement.extend = helpers.inherits;\r\n\r\n\t\tif (extensions) {\r\n\t\t\thelpers.extend(ChartElement.prototype, extensions);\r\n\t\t}\r\n\r\n\t\tChartElement.__super__ = me.prototype;\r\n\t\treturn ChartElement;\r\n\t},\r\n\r\n\t_deprecated: function(scope, value, previous, current) {\r\n\t\tif (value !== undefined) {\r\n\t\t\tconsole.warn(scope + ': \"' + previous +\r\n\t\t\t\t'\" is deprecated. Please use \"' + current + '\" instead');\r\n\t\t}\r\n\t}\r\n};\r\n\r\nvar helpers_core = helpers;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.callback instead.\r\n * @function Chart.helpers.callCallback\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.callCallback = helpers.callback;\r\n\r\n/**\r\n * Provided for backward compatibility, use Array.prototype.indexOf instead.\r\n * Array.prototype.indexOf compatibility: Chrome, Opera, Safari, FF1.5+, IE9+\r\n * @function Chart.helpers.indexOf\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.indexOf = function(array, item, fromIndex) {\r\n\treturn Array.prototype.indexOf.call(array, item, fromIndex);\r\n};\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.valueOrDefault instead.\r\n * @function Chart.helpers.getValueOrDefault\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.getValueOrDefault = helpers.valueOrDefault;\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.valueAtIndexOrDefault instead.\r\n * @function Chart.helpers.getValueAtIndexOrDefault\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.getValueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n\n/**\r\n * Easing functions adapted from Robert Penner's easing equations.\r\n * @namespace Chart.helpers.easingEffects\r\n * @see http://www.robertpenner.com/easing/\r\n */\r\nvar effects = {\r\n\tlinear: function(t) {\r\n\t\treturn t;\r\n\t},\r\n\r\n\teaseInQuad: function(t) {\r\n\t\treturn t * t;\r\n\t},\r\n\r\n\teaseOutQuad: function(t) {\r\n\t\treturn -t * (t - 2);\r\n\t},\r\n\r\n\teaseInOutQuad: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t;\r\n\t\t}\r\n\t\treturn -0.5 * ((--t) * (t - 2) - 1);\r\n\t},\r\n\r\n\teaseInCubic: function(t) {\r\n\t\treturn t * t * t;\r\n\t},\r\n\r\n\teaseOutCubic: function(t) {\r\n\t\treturn (t = t - 1) * t * t + 1;\r\n\t},\r\n\r\n\teaseInOutCubic: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t;\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * t + 2);\r\n\t},\r\n\r\n\teaseInQuart: function(t) {\r\n\t\treturn t * t * t * t;\r\n\t},\r\n\r\n\teaseOutQuart: function(t) {\r\n\t\treturn -((t = t - 1) * t * t * t - 1);\r\n\t},\r\n\r\n\teaseInOutQuart: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t * t;\r\n\t\t}\r\n\t\treturn -0.5 * ((t -= 2) * t * t * t - 2);\r\n\t},\r\n\r\n\teaseInQuint: function(t) {\r\n\t\treturn t * t * t * t * t;\r\n\t},\r\n\r\n\teaseOutQuint: function(t) {\r\n\t\treturn (t = t - 1) * t * t * t * t + 1;\r\n\t},\r\n\r\n\teaseInOutQuint: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t * t * t;\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * t * t * t + 2);\r\n\t},\r\n\r\n\teaseInSine: function(t) {\r\n\t\treturn -Math.cos(t * (Math.PI / 2)) + 1;\r\n\t},\r\n\r\n\teaseOutSine: function(t) {\r\n\t\treturn Math.sin(t * (Math.PI / 2));\r\n\t},\r\n\r\n\teaseInOutSine: function(t) {\r\n\t\treturn -0.5 * (Math.cos(Math.PI * t) - 1);\r\n\t},\r\n\r\n\teaseInExpo: function(t) {\r\n\t\treturn (t === 0) ? 0 : Math.pow(2, 10 * (t - 1));\r\n\t},\r\n\r\n\teaseOutExpo: function(t) {\r\n\t\treturn (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1;\r\n\t},\r\n\r\n\teaseInOutExpo: function(t) {\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * Math.pow(2, 10 * (t - 1));\r\n\t\t}\r\n\t\treturn 0.5 * (-Math.pow(2, -10 * --t) + 2);\r\n\t},\r\n\r\n\teaseInCirc: function(t) {\r\n\t\tif (t >= 1) {\r\n\t\t\treturn t;\r\n\t\t}\r\n\t\treturn -(Math.sqrt(1 - t * t) - 1);\r\n\t},\r\n\r\n\teaseOutCirc: function(t) {\r\n\t\treturn Math.sqrt(1 - (t = t - 1) * t);\r\n\t},\r\n\r\n\teaseInOutCirc: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn -0.5 * (Math.sqrt(1 - t * t) - 1);\r\n\t\t}\r\n\t\treturn 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\r\n\t},\r\n\r\n\teaseInElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.3;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\treturn -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\r\n\t},\r\n\r\n\teaseOutElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.3;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\treturn a * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / p) + 1;\r\n\t},\r\n\r\n\teaseInOutElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif ((t /= 0.5) === 2) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.45;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\tif (t < 1) {\r\n\t\t\treturn -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\r\n\t\t}\r\n\t\treturn a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p) * 0.5 + 1;\r\n\t},\r\n\teaseInBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\treturn t * t * ((s + 1) * t - s);\r\n\t},\r\n\r\n\teaseOutBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\treturn (t = t - 1) * t * ((s + 1) * t + s) + 1;\r\n\t},\r\n\r\n\teaseInOutBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\r\n\t},\r\n\r\n\teaseInBounce: function(t) {\r\n\t\treturn 1 - effects.easeOutBounce(1 - t);\r\n\t},\r\n\r\n\teaseOutBounce: function(t) {\r\n\t\tif (t < (1 / 2.75)) {\r\n\t\t\treturn 7.5625 * t * t;\r\n\t\t}\r\n\t\tif (t < (2 / 2.75)) {\r\n\t\t\treturn 7.5625 * (t -= (1.5 / 2.75)) * t + 0.75;\r\n\t\t}\r\n\t\tif (t < (2.5 / 2.75)) {\r\n\t\t\treturn 7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375;\r\n\t\t}\r\n\t\treturn 7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375;\r\n\t},\r\n\r\n\teaseInOutBounce: function(t) {\r\n\t\tif (t < 0.5) {\r\n\t\t\treturn effects.easeInBounce(t * 2) * 0.5;\r\n\t\t}\r\n\t\treturn effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5;\r\n\t}\r\n};\r\n\r\nvar helpers_easing = {\r\n\teffects: effects\r\n};\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.easing.effects instead.\r\n * @function Chart.helpers.easingEffects\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.easingEffects = effects;\n\nvar PI = Math.PI;\r\nvar RAD_PER_DEG = PI / 180;\r\nvar DOUBLE_PI = PI * 2;\r\nvar HALF_PI = PI / 2;\r\nvar QUARTER_PI = PI / 4;\r\nvar TWO_THIRDS_PI = PI * 2 / 3;\r\n\r\n/**\r\n * @namespace Chart.helpers.canvas\r\n */\r\nvar exports$1 = {\r\n\t/**\r\n\t * Clears the entire canvas associated to the given `chart`.\r\n\t * @param {Chart} chart - The chart for which to clear the canvas.\r\n\t */\r\n\tclear: function(chart) {\r\n\t\tchart.ctx.clearRect(0, 0, chart.width, chart.height);\r\n\t},\r\n\r\n\t/**\r\n\t * Creates a \"path\" for a rectangle with rounded corners at position (x, y) with a\r\n\t * given size (width, height) and the same `radius` for all corners.\r\n\t * @param {CanvasRenderingContext2D} ctx - The canvas 2D Context.\r\n\t * @param {number} x - The x axis of the coordinate for the rectangle starting point.\r\n\t * @param {number} y - The y axis of the coordinate for the rectangle starting point.\r\n\t * @param {number} width - The rectangle's width.\r\n\t * @param {number} height - The rectangle's height.\r\n\t * @param {number} radius - The rounded amount (in pixels) for the four corners.\r\n\t * @todo handle `radius` as top-left, top-right, bottom-right, bottom-left array/object?\r\n\t */\r\n\troundedRect: function(ctx, x, y, width, height, radius) {\r\n\t\tif (radius) {\r\n\t\t\tvar r = Math.min(radius, height / 2, width / 2);\r\n\t\t\tvar left = x + r;\r\n\t\t\tvar top = y + r;\r\n\t\t\tvar right = x + width - r;\r\n\t\t\tvar bottom = y + height - r;\r\n\r\n\t\t\tctx.moveTo(x, top);\r\n\t\t\tif (left < right && top < bottom) {\r\n\t\t\t\tctx.arc(left, top, r, -PI, -HALF_PI);\r\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, 0);\r\n\t\t\t\tctx.arc(right, bottom, r, 0, HALF_PI);\r\n\t\t\t\tctx.arc(left, bottom, r, HALF_PI, PI);\r\n\t\t\t} else if (left < right) {\r\n\t\t\t\tctx.moveTo(left, y);\r\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, HALF_PI);\r\n\t\t\t\tctx.arc(left, top, r, HALF_PI, PI + HALF_PI);\r\n\t\t\t} else if (top < bottom) {\r\n\t\t\t\tctx.arc(left, top, r, -PI, 0);\r\n\t\t\t\tctx.arc(left, bottom, r, 0, PI);\r\n\t\t\t} else {\r\n\t\t\t\tctx.arc(left, top, r, -PI, PI);\r\n\t\t\t}\r\n\t\t\tctx.closePath();\r\n\t\t\tctx.moveTo(x, y);\r\n\t\t} else {\r\n\t\t\tctx.rect(x, y, width, height);\r\n\t\t}\r\n\t},\r\n\r\n\tdrawPoint: function(ctx, style, radius, x, y, rotation) {\r\n\t\tvar type, xOffset, yOffset, size, cornerRadius;\r\n\t\tvar rad = (rotation || 0) * RAD_PER_DEG;\r\n\r\n\t\tif (style && typeof style === 'object') {\r\n\t\t\ttype = style.toString();\r\n\t\t\tif (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\r\n\t\t\t\tctx.save();\r\n\t\t\t\tctx.translate(x, y);\r\n\t\t\t\tctx.rotate(rad);\r\n\t\t\t\tctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\r\n\t\t\t\tctx.restore();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (isNaN(radius) || radius <= 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.beginPath();\r\n\r\n\t\tswitch (style) {\r\n\t\t// Default includes circle\r\n\t\tdefault:\r\n\t\t\tctx.arc(x, y, radius, 0, DOUBLE_PI);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'triangle':\r\n\t\t\tctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\trad += TWO_THIRDS_PI;\r\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\trad += TWO_THIRDS_PI;\r\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'rectRounded':\r\n\t\t\t// NOTE: the rounded rect implementation changed to use `arc` instead of\r\n\t\t\t// `quadraticCurveTo` since it generates better results when rect is\r\n\t\t\t// almost a circle. 0.516 (instead of 0.5) produces results with visually\r\n\t\t\t// closer proportion to the previous impl and it is inscribed in the\r\n\t\t\t// circle with `radius`. For more details, see the following PRs:\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5597\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5858\r\n\t\t\tcornerRadius = radius * 0.516;\r\n\t\t\tsize = radius - cornerRadius;\r\n\t\t\txOffset = Math.cos(rad + QUARTER_PI) * size;\r\n\t\t\tyOffset = Math.sin(rad + QUARTER_PI) * size;\r\n\t\t\tctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\r\n\t\t\tctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\r\n\t\t\tctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\r\n\t\t\tctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'rect':\r\n\t\t\tif (!rotation) {\r\n\t\t\t\tsize = Math.SQRT1_2 * radius;\r\n\t\t\t\tctx.rect(x - size, y - size, 2 * size, 2 * size);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\t/* falls through */\r\n\t\tcase 'rectRot':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'crossRot':\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\t/* falls through */\r\n\t\tcase 'cross':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'star':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'line':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'dash':\r\n\t\t\tctx.moveTo(x, y);\r\n\t\t\tctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tctx.fill();\r\n\t\tctx.stroke();\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if the point is inside the rectangle\r\n\t * @param {object} point - The point to test\r\n\t * @param {object} area - The rectangle\r\n\t * @returns {boolean}\r\n\t * @private\r\n\t */\r\n\t_isPointInArea: function(point, area) {\r\n\t\tvar epsilon = 1e-6; // 1e-6 is margin in pixels for accumulated error.\r\n\r\n\t\treturn point.x > area.left - epsilon && point.x < area.right + epsilon &&\r\n\t\t\tpoint.y > area.top - epsilon && point.y < area.bottom + epsilon;\r\n\t},\r\n\r\n\tclipArea: function(ctx, area) {\r\n\t\tctx.save();\r\n\t\tctx.beginPath();\r\n\t\tctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\r\n\t\tctx.clip();\r\n\t},\r\n\r\n\tunclipArea: function(ctx) {\r\n\t\tctx.restore();\r\n\t},\r\n\r\n\tlineTo: function(ctx, previous, target, flip) {\r\n\t\tvar stepped = target.steppedLine;\r\n\t\tif (stepped) {\r\n\t\t\tif (stepped === 'middle') {\r\n\t\t\t\tvar midpoint = (previous.x + target.x) / 2.0;\r\n\t\t\t\tctx.lineTo(midpoint, flip ? target.y : previous.y);\r\n\t\t\t\tctx.lineTo(midpoint, flip ? previous.y : target.y);\r\n\t\t\t} else if ((stepped === 'after' && !flip) || (stepped !== 'after' && flip)) {\r\n\t\t\t\tctx.lineTo(previous.x, target.y);\r\n\t\t\t} else {\r\n\t\t\t\tctx.lineTo(target.x, previous.y);\r\n\t\t\t}\r\n\t\t\tctx.lineTo(target.x, target.y);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!target.tension) {\r\n\t\t\tctx.lineTo(target.x, target.y);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.bezierCurveTo(\r\n\t\t\tflip ? previous.controlPointPreviousX : previous.controlPointNextX,\r\n\t\t\tflip ? previous.controlPointPreviousY : previous.controlPointNextY,\r\n\t\t\tflip ? target.controlPointNextX : target.controlPointPreviousX,\r\n\t\t\tflip ? target.controlPointNextY : target.controlPointPreviousY,\r\n\t\t\ttarget.x,\r\n\t\t\ttarget.y);\r\n\t}\r\n};\r\n\r\nvar helpers_canvas = exports$1;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.canvas.clear instead.\r\n * @namespace Chart.helpers.clear\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.clear = exports$1.clear;\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.canvas.roundedRect instead.\r\n * @namespace Chart.helpers.drawRoundedRectangle\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.drawRoundedRectangle = function(ctx) {\r\n\tctx.beginPath();\r\n\texports$1.roundedRect.apply(exports$1, arguments);\r\n};\n\nvar defaults = {\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_set: function(scope, values) {\r\n\t\treturn helpers_core.merge(this[scope] || (this[scope] = {}), values);\r\n\t}\r\n};\r\n\r\n// TODO(v3): remove 'global' from namespace. all default are global and\r\n// there's inconsistency around which options are under 'global'\r\ndefaults._set('global', {\r\n\tdefaultColor: 'rgba(0,0,0,0.1)',\r\n\tdefaultFontColor: '#666',\r\n\tdefaultFontFamily: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\r\n\tdefaultFontSize: 12,\r\n\tdefaultFontStyle: 'normal',\r\n\tdefaultLineHeight: 1.2,\r\n\tshowLines: true\r\n});\r\n\r\nvar core_defaults = defaults;\n\nvar valueOrDefault = helpers_core.valueOrDefault;\r\n\r\n/**\r\n * Converts the given font object into a CSS font string.\r\n * @param {object} font - A font object.\r\n * @return {string} The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\r\n * @private\r\n */\r\nfunction toFontString(font) {\r\n\tif (!font || helpers_core.isNullOrUndef(font.size) || helpers_core.isNullOrUndef(font.family)) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (font.style ? font.style + ' ' : '')\r\n\t\t+ (font.weight ? font.weight + ' ' : '')\r\n\t\t+ font.size + 'px '\r\n\t\t+ font.family;\r\n}\r\n\r\n/**\r\n * @alias Chart.helpers.options\r\n * @namespace\r\n */\r\nvar helpers_options = {\r\n\t/**\r\n\t * Converts the given line height `value` in pixels for a specific font `size`.\r\n\t * @param {number|string} value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\r\n\t * @param {number} size - The font size (in pixels) used to resolve relative `value`.\r\n\t * @returns {number} The effective line height in pixels (size * 1.2 if value is invalid).\r\n\t * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\r\n\t * @since 2.7.0\r\n\t */\r\n\ttoLineHeight: function(value, size) {\r\n\t\tvar matches = ('' + value).match(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\r\n\t\tif (!matches || matches[1] === 'normal') {\r\n\t\t\treturn size * 1.2;\r\n\t\t}\r\n\r\n\t\tvalue = +matches[2];\r\n\r\n\t\tswitch (matches[3]) {\r\n\t\tcase 'px':\r\n\t\t\treturn value;\r\n\t\tcase '%':\r\n\t\t\tvalue /= 100;\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\treturn size * value;\r\n\t},\r\n\r\n\t/**\r\n\t * Converts the given value into a padding object with pre-computed width/height.\r\n\t * @param {number|object} value - If a number, set the value to all TRBL component,\r\n\t * else, if and object, use defined properties and sets undefined ones to 0.\r\n\t * @returns {object} The padding values (top, right, bottom, left, width, height)\r\n\t * @since 2.7.0\r\n\t */\r\n\ttoPadding: function(value) {\r\n\t\tvar t, r, b, l;\r\n\r\n\t\tif (helpers_core.isObject(value)) {\r\n\t\t\tt = +value.top || 0;\r\n\t\t\tr = +value.right || 0;\r\n\t\t\tb = +value.bottom || 0;\r\n\t\t\tl = +value.left || 0;\r\n\t\t} else {\r\n\t\t\tt = r = b = l = +value || 0;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\ttop: t,\r\n\t\t\tright: r,\r\n\t\t\tbottom: b,\r\n\t\t\tleft: l,\r\n\t\t\theight: t + b,\r\n\t\t\twidth: l + r\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * Parses font options and returns the font object.\r\n\t * @param {object} options - A object that contains font options to be parsed.\r\n\t * @return {object} The font object.\r\n\t * @todo Support font.* options and renamed to toFont().\r\n\t * @private\r\n\t */\r\n\t_parseFont: function(options) {\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar size = valueOrDefault(options.fontSize, globalDefaults.defaultFontSize);\r\n\t\tvar font = {\r\n\t\t\tfamily: valueOrDefault(options.fontFamily, globalDefaults.defaultFontFamily),\r\n\t\t\tlineHeight: helpers_core.options.toLineHeight(valueOrDefault(options.lineHeight, globalDefaults.defaultLineHeight), size),\r\n\t\t\tsize: size,\r\n\t\t\tstyle: valueOrDefault(options.fontStyle, globalDefaults.defaultFontStyle),\r\n\t\t\tweight: null,\r\n\t\t\tstring: ''\r\n\t\t};\r\n\r\n\t\tfont.string = toFontString(font);\r\n\t\treturn font;\r\n\t},\r\n\r\n\t/**\r\n\t * Evaluates the given `inputs` sequentially and returns the first defined value.\r\n\t * @param {Array} inputs - An array of values, falling back to the last value.\r\n\t * @param {object} [context] - If defined and the current value is a function, the value\r\n\t * is called with `context` as first argument and the result becomes the new input.\r\n\t * @param {number} [index] - If defined and the current value is an array, the value\r\n\t * at `index` become the new input.\r\n\t * @param {object} [info] - object to return information about resolution in\r\n\t * @param {boolean} [info.cacheable] - Will be set to `false` if option is not cacheable.\r\n\t * @since 2.7.0\r\n\t */\r\n\tresolve: function(inputs, context, index, info) {\r\n\t\tvar cacheable = true;\r\n\t\tvar i, ilen, value;\r\n\r\n\t\tfor (i = 0, ilen = inputs.length; i < ilen; ++i) {\r\n\t\t\tvalue = inputs[i];\r\n\t\t\tif (value === undefined) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tif (context !== undefined && typeof value === 'function') {\r\n\t\t\t\tvalue = value(context);\r\n\t\t\t\tcacheable = false;\r\n\t\t\t}\r\n\t\t\tif (index !== undefined && helpers_core.isArray(value)) {\r\n\t\t\t\tvalue = value[index];\r\n\t\t\t\tcacheable = false;\r\n\t\t\t}\r\n\t\t\tif (value !== undefined) {\r\n\t\t\t\tif (info && !cacheable) {\r\n\t\t\t\t\tinfo.cacheable = false;\r\n\t\t\t\t}\r\n\t\t\t\treturn value;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\n\n/**\r\n * @alias Chart.helpers.math\r\n * @namespace\r\n */\r\nvar exports$2 = {\r\n\t/**\r\n\t * Returns an array of factors sorted from 1 to sqrt(value)\r\n\t * @private\r\n\t */\r\n\t_factorize: function(value) {\r\n\t\tvar result = [];\r\n\t\tvar sqrt = Math.sqrt(value);\r\n\t\tvar i;\r\n\r\n\t\tfor (i = 1; i < sqrt; i++) {\r\n\t\t\tif (value % i === 0) {\r\n\t\t\t\tresult.push(i);\r\n\t\t\t\tresult.push(value / i);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (sqrt === (sqrt | 0)) { // if value is a square number\r\n\t\t\tresult.push(sqrt);\r\n\t\t}\r\n\r\n\t\tresult.sort(function(a, b) {\r\n\t\t\treturn a - b;\r\n\t\t}).pop();\r\n\t\treturn result;\r\n\t},\r\n\r\n\tlog10: Math.log10 || function(x) {\r\n\t\tvar exponent = Math.log(x) * Math.LOG10E; // Math.LOG10E = 1 / Math.LN10.\r\n\t\t// Check for whole powers of 10,\r\n\t\t// which due to floating point rounding error should be corrected.\r\n\t\tvar powerOf10 = Math.round(exponent);\r\n\t\tvar isPowerOf10 = x === Math.pow(10, powerOf10);\r\n\r\n\t\treturn isPowerOf10 ? powerOf10 : exponent;\r\n\t}\r\n};\r\n\r\nvar helpers_math = exports$2;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.math.log10 instead.\r\n * @namespace Chart.helpers.log10\r\n * @deprecated since version 2.9.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.log10 = exports$2.log10;\n\nvar getRtlAdapter = function(rectX, width) {\r\n\treturn {\r\n\t\tx: function(x) {\r\n\t\t\treturn rectX + rectX + width - x;\r\n\t\t},\r\n\t\tsetWidth: function(w) {\r\n\t\t\twidth = w;\r\n\t\t},\r\n\t\ttextAlign: function(align) {\r\n\t\t\tif (align === 'center') {\r\n\t\t\t\treturn align;\r\n\t\t\t}\r\n\t\t\treturn align === 'right' ? 'left' : 'right';\r\n\t\t},\r\n\t\txPlus: function(x, value) {\r\n\t\t\treturn x - value;\r\n\t\t},\r\n\t\tleftForLtr: function(x, itemWidth) {\r\n\t\t\treturn x - itemWidth;\r\n\t\t},\r\n\t};\r\n};\r\n\r\nvar getLtrAdapter = function() {\r\n\treturn {\r\n\t\tx: function(x) {\r\n\t\t\treturn x;\r\n\t\t},\r\n\t\tsetWidth: function(w) { // eslint-disable-line no-unused-vars\r\n\t\t},\r\n\t\ttextAlign: function(align) {\r\n\t\t\treturn align;\r\n\t\t},\r\n\t\txPlus: function(x, value) {\r\n\t\t\treturn x + value;\r\n\t\t},\r\n\t\tleftForLtr: function(x, _itemWidth) { // eslint-disable-line no-unused-vars\r\n\t\t\treturn x;\r\n\t\t},\r\n\t};\r\n};\r\n\r\nvar getAdapter = function(rtl, rectX, width) {\r\n\treturn rtl ? getRtlAdapter(rectX, width) : getLtrAdapter();\r\n};\r\n\r\nvar overrideTextDirection = function(ctx, direction) {\r\n\tvar style, original;\r\n\tif (direction === 'ltr' || direction === 'rtl') {\r\n\t\tstyle = ctx.canvas.style;\r\n\t\toriginal = [\r\n\t\t\tstyle.getPropertyValue('direction'),\r\n\t\t\tstyle.getPropertyPriority('direction'),\r\n\t\t];\r\n\r\n\t\tstyle.setProperty('direction', direction, 'important');\r\n\t\tctx.prevTextDirection = original;\r\n\t}\r\n};\r\n\r\nvar restoreTextDirection = function(ctx) {\r\n\tvar original = ctx.prevTextDirection;\r\n\tif (original !== undefined) {\r\n\t\tdelete ctx.prevTextDirection;\r\n\t\tctx.canvas.style.setProperty('direction', original[0], original[1]);\r\n\t}\r\n};\r\n\r\nvar helpers_rtl = {\r\n\tgetRtlAdapter: getAdapter,\r\n\toverrideTextDirection: overrideTextDirection,\r\n\trestoreTextDirection: restoreTextDirection,\r\n};\n\nvar helpers$1 = helpers_core;\r\nvar easing = helpers_easing;\r\nvar canvas = helpers_canvas;\r\nvar options = helpers_options;\r\nvar math = helpers_math;\r\nvar rtl = helpers_rtl;\nhelpers$1.easing = easing;\nhelpers$1.canvas = canvas;\nhelpers$1.options = options;\nhelpers$1.math = math;\nhelpers$1.rtl = rtl;\n\nfunction interpolate(start, view, model, ease) {\r\n\tvar keys = Object.keys(model);\r\n\tvar i, ilen, key, actual, origin, target, type, c0, c1;\r\n\r\n\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\tkey = keys[i];\r\n\r\n\t\ttarget = model[key];\r\n\r\n\t\t// if a value is added to the model after pivot() has been called, the view\r\n\t\t// doesn't contain it, so let's initialize the view to the target value.\r\n\t\tif (!view.hasOwnProperty(key)) {\r\n\t\t\tview[key] = target;\r\n\t\t}\r\n\r\n\t\tactual = view[key];\r\n\r\n\t\tif (actual === target || key[0] === '_') {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tif (!start.hasOwnProperty(key)) {\r\n\t\t\tstart[key] = actual;\r\n\t\t}\r\n\r\n\t\torigin = start[key];\r\n\r\n\t\ttype = typeof target;\r\n\r\n\t\tif (type === typeof origin) {\r\n\t\t\tif (type === 'string') {\r\n\t\t\t\tc0 = chartjsColor(origin);\r\n\t\t\t\tif (c0.valid) {\r\n\t\t\t\t\tc1 = chartjsColor(target);\r\n\t\t\t\t\tif (c1.valid) {\r\n\t\t\t\t\t\tview[key] = c1.mix(c0, ease).rgbString();\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else if (helpers$1.isFinite(origin) && helpers$1.isFinite(target)) {\r\n\t\t\t\tview[key] = origin + (target - origin) * ease;\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tview[key] = target;\r\n\t}\r\n}\r\n\r\nvar Element = function(configuration) {\r\n\thelpers$1.extend(this, configuration);\r\n\tthis.initialize.apply(this, arguments);\r\n};\r\n\r\nhelpers$1.extend(Element.prototype, {\r\n\t_type: undefined,\r\n\r\n\tinitialize: function() {\r\n\t\tthis.hidden = false;\r\n\t},\r\n\r\n\tpivot: function() {\r\n\t\tvar me = this;\r\n\t\tif (!me._view) {\r\n\t\t\tme._view = helpers$1.extend({}, me._model);\r\n\t\t}\r\n\t\tme._start = {};\r\n\t\treturn me;\r\n\t},\r\n\r\n\ttransition: function(ease) {\r\n\t\tvar me = this;\r\n\t\tvar model = me._model;\r\n\t\tvar start = me._start;\r\n\t\tvar view = me._view;\r\n\r\n\t\t// No animation -> No Transition\r\n\t\tif (!model || ease === 1) {\r\n\t\t\tme._view = helpers$1.extend({}, model);\r\n\t\t\tme._start = null;\r\n\t\t\treturn me;\r\n\t\t}\r\n\r\n\t\tif (!view) {\r\n\t\t\tview = me._view = {};\r\n\t\t}\r\n\r\n\t\tif (!start) {\r\n\t\t\tstart = me._start = {};\r\n\t\t}\r\n\r\n\t\tinterpolate(start, view, model, ease);\r\n\r\n\t\treturn me;\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\treturn {\r\n\t\t\tx: this._model.x,\r\n\t\t\ty: this._model.y\r\n\t\t};\r\n\t},\r\n\r\n\thasValue: function() {\r\n\t\treturn helpers$1.isNumber(this._model.x) && helpers$1.isNumber(this._model.y);\r\n\t}\r\n});\r\n\r\nElement.extend = helpers$1.inherits;\r\n\r\nvar core_element = Element;\n\nvar exports$3 = core_element.extend({\r\n\tchart: null, // the animation associated chart instance\r\n\tcurrentStep: 0, // the current animation step\r\n\tnumSteps: 60, // default number of steps\r\n\teasing: '', // the easing to use for this animation\r\n\trender: null, // render function used by the animation service\r\n\r\n\tonAnimationProgress: null, // user specified callback to fire on each step of the animation\r\n\tonAnimationComplete: null, // user specified callback to fire when the animation finishes\r\n});\r\n\r\nvar core_animation = exports$3;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.Animation instead\r\n * @prop Chart.Animation#animationObject\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n */\r\nObject.defineProperty(exports$3.prototype, 'animationObject', {\r\n\tget: function() {\r\n\t\treturn this;\r\n\t}\r\n});\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.Animation#chart instead\r\n * @prop Chart.Animation#chartInstance\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n */\r\nObject.defineProperty(exports$3.prototype, 'chartInstance', {\r\n\tget: function() {\r\n\t\treturn this.chart;\r\n\t},\r\n\tset: function(value) {\r\n\t\tthis.chart = value;\r\n\t}\r\n});\n\ncore_defaults._set('global', {\r\n\tanimation: {\r\n\t\tduration: 1000,\r\n\t\teasing: 'easeOutQuart',\r\n\t\tonProgress: helpers$1.noop,\r\n\t\tonComplete: helpers$1.noop\r\n\t}\r\n});\r\n\r\nvar core_animations = {\r\n\tanimations: [],\r\n\trequest: null,\r\n\r\n\t/**\r\n\t * @param {Chart} chart - The chart to animate.\r\n\t * @param {Chart.Animation} animation - The animation that we will animate.\r\n\t * @param {number} duration - The animation duration in ms.\r\n\t * @param {boolean} lazy - if true, the chart is not marked as animating to enable more responsive interactions\r\n\t */\r\n\taddAnimation: function(chart, animation, duration, lazy) {\r\n\t\tvar animations = this.animations;\r\n\t\tvar i, ilen;\r\n\r\n\t\tanimation.chart = chart;\r\n\t\tanimation.startTime = Date.now();\r\n\t\tanimation.duration = duration;\r\n\r\n\t\tif (!lazy) {\r\n\t\t\tchart.animating = true;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = animations.length; i < ilen; ++i) {\r\n\t\t\tif (animations[i].chart === chart) {\r\n\t\t\t\tanimations[i] = animation;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tanimations.push(animation);\r\n\r\n\t\t// If there are no animations queued, manually kickstart a digest, for lack of a better word\r\n\t\tif (animations.length === 1) {\r\n\t\t\tthis.requestAnimationFrame();\r\n\t\t}\r\n\t},\r\n\r\n\tcancelAnimation: function(chart) {\r\n\t\tvar index = helpers$1.findIndex(this.animations, function(animation) {\r\n\t\t\treturn animation.chart === chart;\r\n\t\t});\r\n\r\n\t\tif (index !== -1) {\r\n\t\t\tthis.animations.splice(index, 1);\r\n\t\t\tchart.animating = false;\r\n\t\t}\r\n\t},\r\n\r\n\trequestAnimationFrame: function() {\r\n\t\tvar me = this;\r\n\t\tif (me.request === null) {\r\n\t\t\t// Skip animation frame requests until the active one is executed.\r\n\t\t\t// This can happen when processing mouse events, e.g. 'mousemove'\r\n\t\t\t// and 'mouseout' events will trigger multiple renders.\r\n\t\t\tme.request = helpers$1.requestAnimFrame.call(window, function() {\r\n\t\t\t\tme.request = null;\r\n\t\t\t\tme.startDigest();\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tstartDigest: function() {\r\n\t\tvar me = this;\r\n\r\n\t\tme.advance();\r\n\r\n\t\t// Do we have more stuff to animate?\r\n\t\tif (me.animations.length > 0) {\r\n\t\t\tme.requestAnimationFrame();\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tadvance: function() {\r\n\t\tvar animations = this.animations;\r\n\t\tvar animation, chart, numSteps, nextStep;\r\n\t\tvar i = 0;\r\n\r\n\t\t// 1 animation per chart, so we are looping charts here\r\n\t\twhile (i < animations.length) {\r\n\t\t\tanimation = animations[i];\r\n\t\t\tchart = animation.chart;\r\n\t\t\tnumSteps = animation.numSteps;\r\n\r\n\t\t\t// Make sure that currentStep starts at 1\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/6104\r\n\t\t\tnextStep = Math.floor((Date.now() - animation.startTime) / animation.duration * numSteps) + 1;\r\n\t\t\tanimation.currentStep = Math.min(nextStep, numSteps);\r\n\r\n\t\t\thelpers$1.callback(animation.render, [chart, animation], chart);\r\n\t\t\thelpers$1.callback(animation.onAnimationProgress, [animation], chart);\r\n\r\n\t\t\tif (animation.currentStep >= numSteps) {\r\n\t\t\t\thelpers$1.callback(animation.onAnimationComplete, [animation], chart);\r\n\t\t\t\tchart.animating = false;\r\n\t\t\t\tanimations.splice(i, 1);\r\n\t\t\t} else {\r\n\t\t\t\t++i;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\n\nvar resolve = helpers$1.options.resolve;\r\n\r\nvar arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\r\n\r\n/**\r\n * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\r\n * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\r\n * called on the 'onData*' callbacks (e.g. onDataPush, etc.) with same arguments.\r\n */\r\nfunction listenArrayEvents(array, listener) {\r\n\tif (array._chartjs) {\r\n\t\tarray._chartjs.listeners.push(listener);\r\n\t\treturn;\r\n\t}\r\n\r\n\tObject.defineProperty(array, '_chartjs', {\r\n\t\tconfigurable: true,\r\n\t\tenumerable: false,\r\n\t\tvalue: {\r\n\t\t\tlisteners: [listener]\r\n\t\t}\r\n\t});\r\n\r\n\tarrayEvents.forEach(function(key) {\r\n\t\tvar method = 'onData' + key.charAt(0).toUpperCase() + key.slice(1);\r\n\t\tvar base = array[key];\r\n\r\n\t\tObject.defineProperty(array, key, {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: false,\r\n\t\t\tvalue: function() {\r\n\t\t\t\tvar args = Array.prototype.slice.call(arguments);\r\n\t\t\t\tvar res = base.apply(this, args);\r\n\r\n\t\t\t\thelpers$1.each(array._chartjs.listeners, function(object) {\r\n\t\t\t\t\tif (typeof object[method] === 'function') {\r\n\t\t\t\t\t\tobject[method].apply(object, args);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn res;\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n}\r\n\r\n/**\r\n * Removes the given array event listener and cleanup extra attached properties (such as\r\n * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\r\n */\r\nfunction unlistenArrayEvents(array, listener) {\r\n\tvar stub = array._chartjs;\r\n\tif (!stub) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tvar listeners = stub.listeners;\r\n\tvar index = listeners.indexOf(listener);\r\n\tif (index !== -1) {\r\n\t\tlisteners.splice(index, 1);\r\n\t}\r\n\r\n\tif (listeners.length > 0) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tarrayEvents.forEach(function(key) {\r\n\t\tdelete array[key];\r\n\t});\r\n\r\n\tdelete array._chartjs;\r\n}\r\n\r\n// Base class for all dataset controllers (line, bar, etc)\r\nvar DatasetController = function(chart, datasetIndex) {\r\n\tthis.initialize(chart, datasetIndex);\r\n};\r\n\r\nhelpers$1.extend(DatasetController.prototype, {\r\n\r\n\t/**\r\n\t * Element type used to generate a meta dataset (e.g. Chart.element.Line).\r\n\t * @type {Chart.core.element}\r\n\t */\r\n\tdatasetElementType: null,\r\n\r\n\t/**\r\n\t * Element type used to generate a meta data (e.g. Chart.element.Point).\r\n\t * @type {Chart.core.element}\r\n\t */\r\n\tdataElementType: null,\r\n\r\n\t/**\r\n\t * Dataset element option keys to be resolved in _resolveDatasetElementOptions.\r\n\t * A derived controller may override this to resolve controller-specific options.\r\n\t * The keys defined here are for backward compatibility for legend styles.\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderColor',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'borderWidth'\r\n\t],\r\n\r\n\t/**\r\n\t * Data element option keys to be resolved in _resolveDataElementOptions.\r\n\t * A derived controller may override this to resolve controller-specific options.\r\n\t * The keys defined here are for backward compatibility for legend styles.\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'pointStyle'\r\n\t],\r\n\r\n\tinitialize: function(chart, datasetIndex) {\r\n\t\tvar me = this;\r\n\t\tme.chart = chart;\r\n\t\tme.index = datasetIndex;\r\n\t\tme.linkScales();\r\n\t\tme.addElements();\r\n\t\tme._type = me.getMeta().type;\r\n\t},\r\n\r\n\tupdateIndex: function(datasetIndex) {\r\n\t\tthis.index = datasetIndex;\r\n\t},\r\n\r\n\tlinkScales: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar chart = me.chart;\r\n\t\tvar scales = chart.scales;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar scalesOpts = chart.options.scales;\r\n\r\n\t\tif (meta.xAxisID === null || !(meta.xAxisID in scales) || dataset.xAxisID) {\r\n\t\t\tmeta.xAxisID = dataset.xAxisID || scalesOpts.xAxes[0].id;\r\n\t\t}\r\n\t\tif (meta.yAxisID === null || !(meta.yAxisID in scales) || dataset.yAxisID) {\r\n\t\t\tmeta.yAxisID = dataset.yAxisID || scalesOpts.yAxes[0].id;\r\n\t\t}\r\n\t},\r\n\r\n\tgetDataset: function() {\r\n\t\treturn this.chart.data.datasets[this.index];\r\n\t},\r\n\r\n\tgetMeta: function() {\r\n\t\treturn this.chart.getDatasetMeta(this.index);\r\n\t},\r\n\r\n\tgetScaleForId: function(scaleID) {\r\n\t\treturn this.chart.scales[scaleID];\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.getMeta().yAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.getMeta().xAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScale: function() {\r\n\t\treturn this.getScaleForId(this._getValueScaleId());\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScale: function() {\r\n\t\treturn this.getScaleForId(this._getIndexScaleId());\r\n\t},\r\n\r\n\treset: function() {\r\n\t\tthis._update(true);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tdestroy: function() {\r\n\t\tif (this._data) {\r\n\t\t\tunlistenArrayEvents(this._data, this);\r\n\t\t}\r\n\t},\r\n\r\n\tcreateMetaDataset: function() {\r\n\t\tvar me = this;\r\n\t\tvar type = me.datasetElementType;\r\n\t\treturn type && new type({\r\n\t\t\t_chart: me.chart,\r\n\t\t\t_datasetIndex: me.index\r\n\t\t});\r\n\t},\r\n\r\n\tcreateMetaData: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar type = me.dataElementType;\r\n\t\treturn type && new type({\r\n\t\t\t_chart: me.chart,\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index\r\n\t\t});\r\n\t},\r\n\r\n\taddElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar data = me.getDataset().data || [];\r\n\t\tvar metaData = meta.data;\r\n\t\tvar i, ilen;\r\n\r\n\t\tfor (i = 0, ilen = data.length; i < ilen; ++i) {\r\n\t\t\tmetaData[i] = metaData[i] || me.createMetaData(i);\r\n\t\t}\r\n\r\n\t\tmeta.dataset = meta.dataset || me.createMetaDataset();\r\n\t},\r\n\r\n\taddElementAndReset: function(index) {\r\n\t\tvar element = this.createMetaData(index);\r\n\t\tthis.getMeta().data.splice(index, 0, element);\r\n\t\tthis.updateElement(element, index, true);\r\n\t},\r\n\r\n\tbuildOrUpdateElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar data = dataset.data || (dataset.data = []);\r\n\r\n\t\t// In order to correctly handle data addition/deletion animation (an thus simulate\r\n\t\t// real-time charts), we need to monitor these data modifications and synchronize\r\n\t\t// the internal meta data accordingly.\r\n\t\tif (me._data !== data) {\r\n\t\t\tif (me._data) {\r\n\t\t\t\t// This case happens when the user replaced the data array instance.\r\n\t\t\t\tunlistenArrayEvents(me._data, me);\r\n\t\t\t}\r\n\r\n\t\t\tif (data && Object.isExtensible(data)) {\r\n\t\t\t\tlistenArrayEvents(data, me);\r\n\t\t\t}\r\n\t\t\tme._data = data;\r\n\t\t}\r\n\r\n\t\t// Re-sync meta data in case the user replaced the data array or if we missed\r\n\t\t// any updates and so make sure that we handle number of datapoints changing.\r\n\t\tme.resyncElements();\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the merged user-supplied and default dataset-level options\r\n\t * @private\r\n\t */\r\n\t_configure: function() {\r\n\t\tvar me = this;\r\n\t\tme._config = helpers$1.merge(Object.create(null), [\r\n\t\t\tme.chart.options.datasets[me._type],\r\n\t\t\tme.getDataset(),\r\n\t\t], {\r\n\t\t\tmerger: function(key, target, source) {\r\n\t\t\t\tif (key !== '_meta' && key !== 'data') {\r\n\t\t\t\t\thelpers$1._merger(key, target, source);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t_update: function(reset) {\r\n\t\tvar me = this;\r\n\t\tme._configure();\r\n\t\tme._cachedDataOpts = null;\r\n\t\tme.update(reset);\r\n\t},\r\n\r\n\tupdate: helpers$1.noop,\r\n\r\n\ttransition: function(easingValue) {\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar elements = meta.data || [];\r\n\t\tvar ilen = elements.length;\r\n\t\tvar i = 0;\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\telements[i].transition(easingValue);\r\n\t\t}\r\n\r\n\t\tif (meta.dataset) {\r\n\t\t\tmeta.dataset.transition(easingValue);\r\n\t\t}\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar elements = meta.data || [];\r\n\t\tvar ilen = elements.length;\r\n\t\tvar i = 0;\r\n\r\n\t\tif (meta.dataset) {\r\n\t\t\tmeta.dataset.draw();\r\n\t\t}\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\telements[i].draw();\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Returns a set of predefined style properties that should be used to represent the dataset\r\n\t * or the data if the index is specified\r\n\t * @param {number} index - data index\r\n\t * @return {IStyleInterface} style object\r\n\t */\r\n\tgetStyle: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar dataset = meta.dataset;\r\n\t\tvar style;\r\n\r\n\t\tme._configure();\r\n\t\tif (dataset && index === undefined) {\r\n\t\t\tstyle = me._resolveDatasetElementOptions(dataset || {});\r\n\t\t} else {\r\n\t\t\tindex = index || 0;\r\n\t\t\tstyle = me._resolveDataElementOptions(meta.data[index] || {}, index);\r\n\t\t}\r\n\r\n\t\tif (style.fill === false || style.fill === null) {\r\n\t\t\tstyle.backgroundColor = style.borderColor;\r\n\t\t}\r\n\r\n\t\treturn style;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function(element, hover) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar datasetOpts = me._config;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar options = chart.options.elements[me.datasetElementType.prototype._type] || {};\r\n\t\tvar elementOptions = me._datasetElementOptions;\r\n\t\tvar values = {};\r\n\t\tvar i, ilen, key, readKey;\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataset: me.getDataset(),\r\n\t\t\tdatasetIndex: me.index,\r\n\t\t\thover: hover\r\n\t\t};\r\n\r\n\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\r\n\t\t\tkey = elementOptions[i];\r\n\t\t\treadKey = hover ? 'hover' + key.charAt(0).toUpperCase() + key.slice(1) : key;\r\n\t\t\tvalues[key] = resolve([\r\n\t\t\t\tcustom[readKey],\r\n\t\t\t\tdatasetOpts[readKey],\r\n\t\t\t\toptions[readKey]\r\n\t\t\t], context);\r\n\t\t}\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function(element, index) {\r\n\t\tvar me = this;\r\n\t\tvar custom = element && element.custom;\r\n\t\tvar cached = me._cachedDataOpts;\r\n\t\tif (cached && !custom) {\r\n\t\t\treturn cached;\r\n\t\t}\r\n\t\tvar chart = me.chart;\r\n\t\tvar datasetOpts = me._config;\r\n\t\tvar options = chart.options.elements[me.dataElementType.prototype._type] || {};\r\n\t\tvar elementOptions = me._dataElementOptions;\r\n\t\tvar values = {};\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: me.getDataset(),\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\t// `resolve` sets cacheable to `false` if any option is indexed or scripted\r\n\t\tvar info = {cacheable: !custom};\r\n\r\n\t\tvar keys, i, ilen, key;\r\n\r\n\t\tcustom = custom || {};\r\n\r\n\t\tif (helpers$1.isArray(elementOptions)) {\r\n\t\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\r\n\t\t\t\tkey = elementOptions[i];\r\n\t\t\t\tvalues[key] = resolve([\r\n\t\t\t\t\tcustom[key],\r\n\t\t\t\t\tdatasetOpts[key],\r\n\t\t\t\t\toptions[key]\r\n\t\t\t\t], context, index, info);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tkeys = Object.keys(elementOptions);\r\n\t\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\t\t\tkey = keys[i];\r\n\t\t\t\tvalues[key] = resolve([\r\n\t\t\t\t\tcustom[key],\r\n\t\t\t\t\tdatasetOpts[elementOptions[key]],\r\n\t\t\t\t\tdatasetOpts[key],\r\n\t\t\t\t\toptions[key]\r\n\t\t\t\t], context, index, info);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (info.cacheable) {\r\n\t\t\tme._cachedDataOpts = Object.freeze(values);\r\n\t\t}\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tremoveHoverStyle: function(element) {\r\n\t\thelpers$1.merge(element._model, element.$previousStyle || {});\r\n\t\tdelete element.$previousStyle;\r\n\t},\r\n\r\n\tsetHoverStyle: function(element) {\r\n\t\tvar dataset = this.chart.data.datasets[element._datasetIndex];\r\n\t\tvar index = element._index;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar model = element._model;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\telement.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = resolve([custom.hoverBackgroundColor, dataset.hoverBackgroundColor, getHoverColor(model.backgroundColor)], undefined, index);\r\n\t\tmodel.borderColor = resolve([custom.hoverBorderColor, dataset.hoverBorderColor, getHoverColor(model.borderColor)], undefined, index);\r\n\t\tmodel.borderWidth = resolve([custom.hoverBorderWidth, dataset.hoverBorderWidth, model.borderWidth], undefined, index);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_removeDatasetHoverStyle: function() {\r\n\t\tvar element = this.getMeta().dataset;\r\n\r\n\t\tif (element) {\r\n\t\t\tthis.removeHoverStyle(element);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_setDatasetHoverStyle: function() {\r\n\t\tvar element = this.getMeta().dataset;\r\n\t\tvar prev = {};\r\n\t\tvar i, ilen, key, keys, hoverOptions, model;\r\n\r\n\t\tif (!element) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tmodel = element._model;\r\n\t\thoverOptions = this._resolveDatasetElementOptions(element, true);\r\n\r\n\t\tkeys = Object.keys(hoverOptions);\r\n\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\t\tkey = keys[i];\r\n\t\t\tprev[key] = model[key];\r\n\t\t\tmodel[key] = hoverOptions[key];\r\n\t\t}\r\n\r\n\t\telement.$previousStyle = prev;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tresyncElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar data = me.getDataset().data;\r\n\t\tvar numMeta = meta.data.length;\r\n\t\tvar numData = data.length;\r\n\r\n\t\tif (numData < numMeta) {\r\n\t\t\tmeta.data.splice(numData, numMeta - numData);\r\n\t\t} else if (numData > numMeta) {\r\n\t\t\tme.insertElements(numMeta, numData - numMeta);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tinsertElements: function(start, count) {\r\n\t\tfor (var i = 0; i < count; ++i) {\r\n\t\t\tthis.addElementAndReset(start + i);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataPush: function() {\r\n\t\tvar count = arguments.length;\r\n\t\tthis.insertElements(this.getDataset().data.length - count, count);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataPop: function() {\r\n\t\tthis.getMeta().data.pop();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataShift: function() {\r\n\t\tthis.getMeta().data.shift();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataSplice: function(start, count) {\r\n\t\tthis.getMeta().data.splice(start, count);\r\n\t\tthis.insertElements(start, arguments.length - 2);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataUnshift: function() {\r\n\t\tthis.insertElements(0, arguments.length);\r\n\t}\r\n});\r\n\r\nDatasetController.extend = helpers$1.inherits;\r\n\r\nvar core_datasetController = DatasetController;\n\nvar TAU = Math.PI * 2;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tarc: {\r\n\t\t\tbackgroundColor: core_defaults.global.defaultColor,\r\n\t\t\tborderColor: '#fff',\r\n\t\t\tborderWidth: 2,\r\n\t\t\tborderAlign: 'center'\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction clipArc(ctx, arc) {\r\n\tvar startAngle = arc.startAngle;\r\n\tvar endAngle = arc.endAngle;\r\n\tvar pixelMargin = arc.pixelMargin;\r\n\tvar angleMargin = pixelMargin / arc.outerRadius;\r\n\tvar x = arc.x;\r\n\tvar y = arc.y;\r\n\r\n\t// Draw an inner border by cliping the arc and drawing a double-width border\r\n\t// Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\r\n\tctx.beginPath();\r\n\tctx.arc(x, y, arc.outerRadius, startAngle - angleMargin, endAngle + angleMargin);\r\n\tif (arc.innerRadius > pixelMargin) {\r\n\t\tangleMargin = pixelMargin / arc.innerRadius;\r\n\t\tctx.arc(x, y, arc.innerRadius - pixelMargin, endAngle + angleMargin, startAngle - angleMargin, true);\r\n\t} else {\r\n\t\tctx.arc(x, y, pixelMargin, endAngle + Math.PI / 2, startAngle - Math.PI / 2);\r\n\t}\r\n\tctx.closePath();\r\n\tctx.clip();\r\n}\r\n\r\nfunction drawFullCircleBorders(ctx, vm, arc, inner) {\r\n\tvar endAngle = arc.endAngle;\r\n\tvar i;\r\n\r\n\tif (inner) {\r\n\t\tarc.endAngle = arc.startAngle + TAU;\r\n\t\tclipArc(ctx, arc);\r\n\t\tarc.endAngle = endAngle;\r\n\t\tif (arc.endAngle === arc.startAngle && arc.fullCircles) {\r\n\t\t\tarc.endAngle += TAU;\r\n\t\t\tarc.fullCircles--;\r\n\t\t}\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.startAngle + TAU, arc.startAngle, true);\r\n\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\tctx.stroke();\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.startAngle + TAU);\r\n\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\tctx.stroke();\r\n\t}\r\n}\r\n\r\nfunction drawBorder(ctx, vm, arc) {\r\n\tvar inner = vm.borderAlign === 'inner';\r\n\r\n\tif (inner) {\r\n\t\tctx.lineWidth = vm.borderWidth * 2;\r\n\t\tctx.lineJoin = 'round';\r\n\t} else {\r\n\t\tctx.lineWidth = vm.borderWidth;\r\n\t\tctx.lineJoin = 'bevel';\r\n\t}\r\n\r\n\tif (arc.fullCircles) {\r\n\t\tdrawFullCircleBorders(ctx, vm, arc, inner);\r\n\t}\r\n\r\n\tif (inner) {\r\n\t\tclipArc(ctx, arc);\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.endAngle);\r\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\tctx.closePath();\r\n\tctx.stroke();\r\n}\r\n\r\nvar element_arc = core_element.extend({\r\n\t_type: 'arc',\r\n\r\n\tinLabelRange: function(mouseX) {\r\n\t\tvar vm = this._view;\r\n\r\n\t\tif (vm) {\r\n\t\t\treturn (Math.pow(mouseX - vm.x, 2) < Math.pow(vm.radius + vm.hoverRadius, 2));\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\tinRange: function(chartX, chartY) {\r\n\t\tvar vm = this._view;\r\n\r\n\t\tif (vm) {\r\n\t\t\tvar pointRelativePosition = helpers$1.getAngleFromPoint(vm, {x: chartX, y: chartY});\r\n\t\t\tvar angle = pointRelativePosition.angle;\r\n\t\t\tvar distance = pointRelativePosition.distance;\r\n\r\n\t\t\t// Sanitise angle range\r\n\t\t\tvar startAngle = vm.startAngle;\r\n\t\t\tvar endAngle = vm.endAngle;\r\n\t\t\twhile (endAngle < startAngle) {\r\n\t\t\t\tendAngle += TAU;\r\n\t\t\t}\r\n\t\t\twhile (angle > endAngle) {\r\n\t\t\t\tangle -= TAU;\r\n\t\t\t}\r\n\t\t\twhile (angle < startAngle) {\r\n\t\t\t\tangle += TAU;\r\n\t\t\t}\r\n\r\n\t\t\t// Check if within the range of the open/close angle\r\n\t\t\tvar betweenAngles = (angle >= startAngle && angle <= endAngle);\r\n\t\t\tvar withinRadius = (distance >= vm.innerRadius && distance <= vm.outerRadius);\r\n\r\n\t\t\treturn (betweenAngles && withinRadius);\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar halfAngle = (vm.startAngle + vm.endAngle) / 2;\r\n\t\tvar halfRadius = (vm.innerRadius + vm.outerRadius) / 2;\r\n\t\treturn {\r\n\t\t\tx: vm.x + Math.cos(halfAngle) * halfRadius,\r\n\t\t\ty: vm.y + Math.sin(halfAngle) * halfRadius\r\n\t\t};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn Math.PI * ((vm.endAngle - vm.startAngle) / (2 * Math.PI)) * (Math.pow(vm.outerRadius, 2) - Math.pow(vm.innerRadius, 2));\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar centreAngle = vm.startAngle + ((vm.endAngle - vm.startAngle) / 2);\r\n\t\tvar rangeFromCentre = (vm.outerRadius - vm.innerRadius) / 2 + vm.innerRadius;\r\n\r\n\t\treturn {\r\n\t\t\tx: vm.x + (Math.cos(centreAngle) * rangeFromCentre),\r\n\t\t\ty: vm.y + (Math.sin(centreAngle) * rangeFromCentre)\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar vm = this._view;\r\n\t\tvar pixelMargin = (vm.borderAlign === 'inner') ? 0.33 : 0;\r\n\t\tvar arc = {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y,\r\n\t\t\tinnerRadius: vm.innerRadius,\r\n\t\t\touterRadius: Math.max(vm.outerRadius - pixelMargin, 0),\r\n\t\t\tpixelMargin: pixelMargin,\r\n\t\t\tstartAngle: vm.startAngle,\r\n\t\t\tendAngle: vm.endAngle,\r\n\t\t\tfullCircles: Math.floor(vm.circumference / TAU)\r\n\t\t};\r\n\t\tvar i;\r\n\r\n\t\tctx.save();\r\n\r\n\t\tctx.fillStyle = vm.backgroundColor;\r\n\t\tctx.strokeStyle = vm.borderColor;\r\n\r\n\t\tif (arc.fullCircles) {\r\n\t\t\tarc.endAngle = arc.startAngle + TAU;\r\n\t\t\tctx.beginPath();\r\n\t\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\r\n\t\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\t\t\tctx.closePath();\r\n\t\t\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\t\t\tctx.fill();\r\n\t\t\t}\r\n\t\t\tarc.endAngle = arc.startAngle + vm.circumference % TAU;\r\n\t\t}\r\n\r\n\t\tctx.beginPath();\r\n\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\r\n\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\t\tctx.closePath();\r\n\t\tctx.fill();\r\n\r\n\t\tif (vm.borderWidth) {\r\n\t\t\tdrawBorder(ctx, vm, arc);\r\n\t\t}\r\n\r\n\t\tctx.restore();\r\n\t}\r\n});\n\nvar valueOrDefault$1 = helpers$1.valueOrDefault;\r\n\r\nvar defaultColor = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tline: {\r\n\t\t\ttension: 0.4,\r\n\t\t\tbackgroundColor: defaultColor,\r\n\t\t\tborderWidth: 3,\r\n\t\t\tborderColor: defaultColor,\r\n\t\t\tborderCapStyle: 'butt',\r\n\t\t\tborderDash: [],\r\n\t\t\tborderDashOffset: 0.0,\r\n\t\t\tborderJoinStyle: 'miter',\r\n\t\t\tcapBezierPoints: true,\r\n\t\t\tfill: true, // do we fill in the area between the line and its base axis\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar element_line = core_element.extend({\r\n\t_type: 'line',\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar vm = me._view;\r\n\t\tvar ctx = me._chart.ctx;\r\n\t\tvar spanGaps = vm.spanGaps;\r\n\t\tvar points = me._children.slice(); // clone array\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar globalOptionLineElements = globalDefaults.elements.line;\r\n\t\tvar lastDrawnIndex = -1;\r\n\t\tvar closePath = me._loop;\r\n\t\tvar index, previous, currentVM;\r\n\r\n\t\tif (!points.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (me._loop) {\r\n\t\t\tfor (index = 0; index < points.length; ++index) {\r\n\t\t\t\tprevious = helpers$1.previousItem(points, index);\r\n\t\t\t\t// If the line has an open path, shift the point array\r\n\t\t\t\tif (!points[index]._view.skip && previous._view.skip) {\r\n\t\t\t\t\tpoints = points.slice(index).concat(points.slice(0, index));\r\n\t\t\t\t\tclosePath = spanGaps;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// If the line has a close path, add the first point again\r\n\t\t\tif (closePath) {\r\n\t\t\t\tpoints.push(points[0]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tctx.save();\r\n\r\n\t\t// Stroke Line Options\r\n\t\tctx.lineCap = vm.borderCapStyle || globalOptionLineElements.borderCapStyle;\r\n\r\n\t\t// IE 9 and 10 do not support line dash\r\n\t\tif (ctx.setLineDash) {\r\n\t\t\tctx.setLineDash(vm.borderDash || globalOptionLineElements.borderDash);\r\n\t\t}\r\n\r\n\t\tctx.lineDashOffset = valueOrDefault$1(vm.borderDashOffset, globalOptionLineElements.borderDashOffset);\r\n\t\tctx.lineJoin = vm.borderJoinStyle || globalOptionLineElements.borderJoinStyle;\r\n\t\tctx.lineWidth = valueOrDefault$1(vm.borderWidth, globalOptionLineElements.borderWidth);\r\n\t\tctx.strokeStyle = vm.borderColor || globalDefaults.defaultColor;\r\n\r\n\t\t// Stroke Line\r\n\t\tctx.beginPath();\r\n\r\n\t\t// First point moves to it's starting position no matter what\r\n\t\tcurrentVM = points[0]._view;\r\n\t\tif (!currentVM.skip) {\r\n\t\t\tctx.moveTo(currentVM.x, currentVM.y);\r\n\t\t\tlastDrawnIndex = 0;\r\n\t\t}\r\n\r\n\t\tfor (index = 1; index < points.length; ++index) {\r\n\t\t\tcurrentVM = points[index]._view;\r\n\t\t\tprevious = lastDrawnIndex === -1 ? helpers$1.previousItem(points, index) : points[lastDrawnIndex];\r\n\r\n\t\t\tif (!currentVM.skip) {\r\n\t\t\t\tif ((lastDrawnIndex !== (index - 1) && !spanGaps) || lastDrawnIndex === -1) {\r\n\t\t\t\t\t// There was a gap and this is the first point after the gap\r\n\t\t\t\t\tctx.moveTo(currentVM.x, currentVM.y);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Line to next point\r\n\t\t\t\t\thelpers$1.canvas.lineTo(ctx, previous._view, currentVM);\r\n\t\t\t\t}\r\n\t\t\t\tlastDrawnIndex = index;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (closePath) {\r\n\t\t\tctx.closePath();\r\n\t\t}\r\n\r\n\t\tctx.stroke();\r\n\t\tctx.restore();\r\n\t}\r\n});\n\nvar valueOrDefault$2 = helpers$1.valueOrDefault;\r\n\r\nvar defaultColor$1 = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tpoint: {\r\n\t\t\tradius: 3,\r\n\t\t\tpointStyle: 'circle',\r\n\t\t\tbackgroundColor: defaultColor$1,\r\n\t\t\tborderColor: defaultColor$1,\r\n\t\t\tborderWidth: 1,\r\n\t\t\t// Hover\r\n\t\t\thitRadius: 1,\r\n\t\t\thoverRadius: 4,\r\n\t\t\thoverBorderWidth: 1\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction xRange(mouseX) {\r\n\tvar vm = this._view;\r\n\treturn vm ? (Math.abs(mouseX - vm.x) < vm.radius + vm.hitRadius) : false;\r\n}\r\n\r\nfunction yRange(mouseY) {\r\n\tvar vm = this._view;\r\n\treturn vm ? (Math.abs(mouseY - vm.y) < vm.radius + vm.hitRadius) : false;\r\n}\r\n\r\nvar element_point = core_element.extend({\r\n\t_type: 'point',\r\n\r\n\tinRange: function(mouseX, mouseY) {\r\n\t\tvar vm = this._view;\r\n\t\treturn vm ? ((Math.pow(mouseX - vm.x, 2) + Math.pow(mouseY - vm.y, 2)) < Math.pow(vm.hitRadius + vm.radius, 2)) : false;\r\n\t},\r\n\r\n\tinLabelRange: xRange,\r\n\tinXRange: xRange,\r\n\tinYRange: yRange,\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y\r\n\t\t};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\treturn Math.PI * Math.pow(this._view.radius, 2);\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y,\r\n\t\t\tpadding: vm.radius + vm.borderWidth\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function(chartArea) {\r\n\t\tvar vm = this._view;\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar pointStyle = vm.pointStyle;\r\n\t\tvar rotation = vm.rotation;\r\n\t\tvar radius = vm.radius;\r\n\t\tvar x = vm.x;\r\n\t\tvar y = vm.y;\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar defaultColor = globalDefaults.defaultColor; // eslint-disable-line no-shadow\r\n\r\n\t\tif (vm.skip) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Clipping for Points.\r\n\t\tif (chartArea === undefined || helpers$1.canvas._isPointInArea(vm, chartArea)) {\r\n\t\t\tctx.strokeStyle = vm.borderColor || defaultColor;\r\n\t\t\tctx.lineWidth = valueOrDefault$2(vm.borderWidth, globalDefaults.elements.point.borderWidth);\r\n\t\t\tctx.fillStyle = vm.backgroundColor || defaultColor;\r\n\t\t\thelpers$1.canvas.drawPoint(ctx, pointStyle, radius, x, y, rotation);\r\n\t\t}\r\n\t}\r\n});\n\nvar defaultColor$2 = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\trectangle: {\r\n\t\t\tbackgroundColor: defaultColor$2,\r\n\t\t\tborderColor: defaultColor$2,\r\n\t\t\tborderSkipped: 'bottom',\r\n\t\t\tborderWidth: 0\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction isVertical(vm) {\r\n\treturn vm && vm.width !== undefined;\r\n}\r\n\r\n/**\r\n * Helper function to get the bounds of the bar regardless of the orientation\r\n * @param bar {Chart.Element.Rectangle} the bar\r\n * @return {Bounds} bounds of the bar\r\n * @private\r\n */\r\nfunction getBarBounds(vm) {\r\n\tvar x1, x2, y1, y2, half;\r\n\r\n\tif (isVertical(vm)) {\r\n\t\thalf = vm.width / 2;\r\n\t\tx1 = vm.x - half;\r\n\t\tx2 = vm.x + half;\r\n\t\ty1 = Math.min(vm.y, vm.base);\r\n\t\ty2 = Math.max(vm.y, vm.base);\r\n\t} else {\r\n\t\thalf = vm.height / 2;\r\n\t\tx1 = Math.min(vm.x, vm.base);\r\n\t\tx2 = Math.max(vm.x, vm.base);\r\n\t\ty1 = vm.y - half;\r\n\t\ty2 = vm.y + half;\r\n\t}\r\n\r\n\treturn {\r\n\t\tleft: x1,\r\n\t\ttop: y1,\r\n\t\tright: x2,\r\n\t\tbottom: y2\r\n\t};\r\n}\r\n\r\nfunction swap(orig, v1, v2) {\r\n\treturn orig === v1 ? v2 : orig === v2 ? v1 : orig;\r\n}\r\n\r\nfunction parseBorderSkipped(vm) {\r\n\tvar edge = vm.borderSkipped;\r\n\tvar res = {};\r\n\r\n\tif (!edge) {\r\n\t\treturn res;\r\n\t}\r\n\r\n\tif (vm.horizontal) {\r\n\t\tif (vm.base > vm.x) {\r\n\t\t\tedge = swap(edge, 'left', 'right');\r\n\t\t}\r\n\t} else if (vm.base < vm.y) {\r\n\t\tedge = swap(edge, 'bottom', 'top');\r\n\t}\r\n\r\n\tres[edge] = true;\r\n\treturn res;\r\n}\r\n\r\nfunction parseBorderWidth(vm, maxW, maxH) {\r\n\tvar value = vm.borderWidth;\r\n\tvar skip = parseBorderSkipped(vm);\r\n\tvar t, r, b, l;\r\n\r\n\tif (helpers$1.isObject(value)) {\r\n\t\tt = +value.top || 0;\r\n\t\tr = +value.right || 0;\r\n\t\tb = +value.bottom || 0;\r\n\t\tl = +value.left || 0;\r\n\t} else {\r\n\t\tt = r = b = l = +value || 0;\r\n\t}\r\n\r\n\treturn {\r\n\t\tt: skip.top || (t < 0) ? 0 : t > maxH ? maxH : t,\r\n\t\tr: skip.right || (r < 0) ? 0 : r > maxW ? maxW : r,\r\n\t\tb: skip.bottom || (b < 0) ? 0 : b > maxH ? maxH : b,\r\n\t\tl: skip.left || (l < 0) ? 0 : l > maxW ? maxW : l\r\n\t};\r\n}\r\n\r\nfunction boundingRects(vm) {\r\n\tvar bounds = getBarBounds(vm);\r\n\tvar width = bounds.right - bounds.left;\r\n\tvar height = bounds.bottom - bounds.top;\r\n\tvar border = parseBorderWidth(vm, width / 2, height / 2);\r\n\r\n\treturn {\r\n\t\touter: {\r\n\t\t\tx: bounds.left,\r\n\t\t\ty: bounds.top,\r\n\t\t\tw: width,\r\n\t\t\th: height\r\n\t\t},\r\n\t\tinner: {\r\n\t\t\tx: bounds.left + border.l,\r\n\t\t\ty: bounds.top + border.t,\r\n\t\t\tw: width - border.l - border.r,\r\n\t\t\th: height - border.t - border.b\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction inRange(vm, x, y) {\r\n\tvar skipX = x === null;\r\n\tvar skipY = y === null;\r\n\tvar bounds = !vm || (skipX && skipY) ? false : getBarBounds(vm);\r\n\r\n\treturn bounds\r\n\t\t&& (skipX || x >= bounds.left && x <= bounds.right)\r\n\t\t&& (skipY || y >= bounds.top && y <= bounds.bottom);\r\n}\r\n\r\nvar element_rectangle = core_element.extend({\r\n\t_type: 'rectangle',\r\n\r\n\tdraw: function() {\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar vm = this._view;\r\n\t\tvar rects = boundingRects(vm);\r\n\t\tvar outer = rects.outer;\r\n\t\tvar inner = rects.inner;\r\n\r\n\t\tctx.fillStyle = vm.backgroundColor;\r\n\t\tctx.fillRect(outer.x, outer.y, outer.w, outer.h);\r\n\r\n\t\tif (outer.w === inner.w && outer.h === inner.h) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.save();\r\n\t\tctx.beginPath();\r\n\t\tctx.rect(outer.x, outer.y, outer.w, outer.h);\r\n\t\tctx.clip();\r\n\t\tctx.fillStyle = vm.borderColor;\r\n\t\tctx.rect(inner.x, inner.y, inner.w, inner.h);\r\n\t\tctx.fill('evenodd');\r\n\t\tctx.restore();\r\n\t},\r\n\r\n\theight: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn vm.base - vm.y;\r\n\t},\r\n\r\n\tinRange: function(mouseX, mouseY) {\r\n\t\treturn inRange(this._view, mouseX, mouseY);\r\n\t},\r\n\r\n\tinLabelRange: function(mouseX, mouseY) {\r\n\t\tvar vm = this._view;\r\n\t\treturn isVertical(vm)\r\n\t\t\t? inRange(vm, mouseX, null)\r\n\t\t\t: inRange(vm, null, mouseY);\r\n\t},\r\n\r\n\tinXRange: function(mouseX) {\r\n\t\treturn inRange(this._view, mouseX, null);\r\n\t},\r\n\r\n\tinYRange: function(mouseY) {\r\n\t\treturn inRange(this._view, null, mouseY);\r\n\t},\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar x, y;\r\n\t\tif (isVertical(vm)) {\r\n\t\t\tx = vm.x;\r\n\t\t\ty = (vm.y + vm.base) / 2;\r\n\t\t} else {\r\n\t\t\tx = (vm.x + vm.base) / 2;\r\n\t\t\ty = vm.y;\r\n\t\t}\r\n\r\n\t\treturn {x: x, y: y};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\tvar vm = this._view;\r\n\r\n\t\treturn isVertical(vm)\r\n\t\t\t? vm.width * Math.abs(vm.y - vm.base)\r\n\t\t\t: vm.height * Math.abs(vm.x - vm.base);\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y\r\n\t\t};\r\n\t}\r\n});\n\nvar elements = {};\r\nvar Arc = element_arc;\r\nvar Line = element_line;\r\nvar Point = element_point;\r\nvar Rectangle = element_rectangle;\nelements.Arc = Arc;\nelements.Line = Line;\nelements.Point = Point;\nelements.Rectangle = Rectangle;\n\nvar deprecated = helpers$1._deprecated;\r\nvar valueOrDefault$3 = helpers$1.valueOrDefault;\r\n\r\ncore_defaults._set('bar', {\r\n\thover: {\r\n\t\tmode: 'label'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\toffset: true,\r\n\t\t\tgridLines: {\r\n\t\t\t\toffsetGridLines: true\r\n\t\t\t}\r\n\t\t}],\r\n\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear'\r\n\t\t}]\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\tbar: {\r\n\t\t\tcategoryPercentage: 0.8,\r\n\t\t\tbarPercentage: 0.9\r\n\t\t}\r\n\t}\r\n});\r\n\r\n/**\r\n * Computes the \"optimal\" sample size to maintain bars equally sized while preventing overlap.\r\n * @private\r\n */\r\nfunction computeMinSampleSize(scale, pixels) {\r\n\tvar min = scale._length;\r\n\tvar prev, curr, i, ilen;\r\n\r\n\tfor (i = 1, ilen = pixels.length; i < ilen; ++i) {\r\n\t\tmin = Math.min(min, Math.abs(pixels[i] - pixels[i - 1]));\r\n\t}\r\n\r\n\tfor (i = 0, ilen = scale.getTicks().length; i < ilen; ++i) {\r\n\t\tcurr = scale.getPixelForTick(i);\r\n\t\tmin = i > 0 ? Math.min(min, Math.abs(curr - prev)) : min;\r\n\t\tprev = curr;\r\n\t}\r\n\r\n\treturn min;\r\n}\r\n\r\n/**\r\n * Computes an \"ideal\" category based on the absolute bar thickness or, if undefined or null,\r\n * uses the smallest interval (see computeMinSampleSize) that prevents bar overlapping. This\r\n * mode currently always generates bars equally sized (until we introduce scriptable options?).\r\n * @private\r\n */\r\nfunction computeFitCategoryTraits(index, ruler, options) {\r\n\tvar thickness = options.barThickness;\r\n\tvar count = ruler.stackCount;\r\n\tvar curr = ruler.pixels[index];\r\n\tvar min = helpers$1.isNullOrUndef(thickness)\r\n\t\t? computeMinSampleSize(ruler.scale, ruler.pixels)\r\n\t\t: -1;\r\n\tvar size, ratio;\r\n\r\n\tif (helpers$1.isNullOrUndef(thickness)) {\r\n\t\tsize = min * options.categoryPercentage;\r\n\t\tratio = options.barPercentage;\r\n\t} else {\r\n\t\t// When bar thickness is enforced, category and bar percentages are ignored.\r\n\t\t// Note(SB): we could add support for relative bar thickness (e.g. barThickness: '50%')\r\n\t\t// and deprecate barPercentage since this value is ignored when thickness is absolute.\r\n\t\tsize = thickness * count;\r\n\t\tratio = 1;\r\n\t}\r\n\r\n\treturn {\r\n\t\tchunk: size / count,\r\n\t\tratio: ratio,\r\n\t\tstart: curr - (size / 2)\r\n\t};\r\n}\r\n\r\n/**\r\n * Computes an \"optimal\" category that globally arranges bars side by side (no gap when\r\n * percentage options are 1), based on the previous and following categories. This mode\r\n * generates bars with different widths when data are not evenly spaced.\r\n * @private\r\n */\r\nfunction computeFlexCategoryTraits(index, ruler, options) {\r\n\tvar pixels = ruler.pixels;\r\n\tvar curr = pixels[index];\r\n\tvar prev = index > 0 ? pixels[index - 1] : null;\r\n\tvar next = index < pixels.length - 1 ? pixels[index + 1] : null;\r\n\tvar percent = options.categoryPercentage;\r\n\tvar start, size;\r\n\r\n\tif (prev === null) {\r\n\t\t// first data: its size is double based on the next point or,\r\n\t\t// if it's also the last data, we use the scale size.\r\n\t\tprev = curr - (next === null ? ruler.end - ruler.start : next - curr);\r\n\t}\r\n\r\n\tif (next === null) {\r\n\t\t// last data: its size is also double based on the previous point.\r\n\t\tnext = curr + curr - prev;\r\n\t}\r\n\r\n\tstart = curr - (curr - Math.min(prev, next)) / 2 * percent;\r\n\tsize = Math.abs(next - prev) / 2 * percent;\r\n\r\n\treturn {\r\n\t\tchunk: size / ruler.stackCount,\r\n\t\tratio: options.barPercentage,\r\n\t\tstart: start\r\n\t};\r\n}\r\n\r\nvar controller_bar = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Rectangle,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderSkipped',\r\n\t\t'borderWidth',\r\n\t\t'barPercentage',\r\n\t\t'barThickness',\r\n\t\t'categoryPercentage',\r\n\t\t'maxBarThickness',\r\n\t\t'minBarLength'\r\n\t],\r\n\r\n\tinitialize: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta, scaleOpts;\r\n\r\n\t\tcore_datasetController.prototype.initialize.apply(me, arguments);\r\n\r\n\t\tmeta = me.getMeta();\r\n\t\tmeta.stack = me.getDataset().stack;\r\n\t\tmeta.bar = true;\r\n\r\n\t\tscaleOpts = me._getIndexScale().options;\r\n\t\tdeprecated('bar chart', scaleOpts.barPercentage, 'scales.[x/y]Axes.barPercentage', 'dataset.barPercentage');\r\n\t\tdeprecated('bar chart', scaleOpts.barThickness, 'scales.[x/y]Axes.barThickness', 'dataset.barThickness');\r\n\t\tdeprecated('bar chart', scaleOpts.categoryPercentage, 'scales.[x/y]Axes.categoryPercentage', 'dataset.categoryPercentage');\r\n\t\tdeprecated('bar chart', me._getValueScale().options.minBarLength, 'scales.[x/y]Axes.minBarLength', 'dataset.minBarLength');\r\n\t\tdeprecated('bar chart', scaleOpts.maxBarThickness, 'scales.[x/y]Axes.maxBarThickness', 'dataset.maxBarThickness');\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar rects = me.getMeta().data;\r\n\t\tvar i, ilen;\r\n\r\n\t\tme._ruler = me.getRuler();\r\n\r\n\t\tfor (i = 0, ilen = rects.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(rects[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(rectangle, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar options = me._resolveDataElementOptions(rectangle, index);\r\n\r\n\t\trectangle._xScale = me.getScaleForId(meta.xAxisID);\r\n\t\trectangle._yScale = me.getScaleForId(meta.yAxisID);\r\n\t\trectangle._datasetIndex = me.index;\r\n\t\trectangle._index = index;\r\n\t\trectangle._model = {\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderSkipped: options.borderSkipped,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\tdatasetLabel: dataset.label,\r\n\t\t\tlabel: me.chart.data.labels[index]\r\n\t\t};\r\n\r\n\t\tif (helpers$1.isArray(dataset.data[index])) {\r\n\t\t\trectangle._model.borderSkipped = null;\r\n\t\t}\r\n\r\n\t\tme._updateElementGeometry(rectangle, index, reset, options);\r\n\r\n\t\trectangle.pivot();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_updateElementGeometry: function(rectangle, index, reset, options) {\r\n\t\tvar me = this;\r\n\t\tvar model = rectangle._model;\r\n\t\tvar vscale = me._getValueScale();\r\n\t\tvar base = vscale.getBasePixel();\r\n\t\tvar horizontal = vscale.isHorizontal();\r\n\t\tvar ruler = me._ruler || me.getRuler();\r\n\t\tvar vpixels = me.calculateBarValuePixels(me.index, index, options);\r\n\t\tvar ipixels = me.calculateBarIndexPixels(me.index, index, ruler, options);\r\n\r\n\t\tmodel.horizontal = horizontal;\r\n\t\tmodel.base = reset ? base : vpixels.base;\r\n\t\tmodel.x = horizontal ? reset ? base : vpixels.head : ipixels.center;\r\n\t\tmodel.y = horizontal ? ipixels.center : reset ? base : vpixels.head;\r\n\t\tmodel.height = horizontal ? ipixels.size : undefined;\r\n\t\tmodel.width = horizontal ? undefined : ipixels.size;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the stacks based on groups and bar visibility.\r\n\t * @param {number} [last] - The dataset index\r\n\t * @returns {string[]} The list of stack IDs\r\n\t * @private\r\n\t */\r\n\t_getStacks: function(last) {\r\n\t\tvar me = this;\r\n\t\tvar scale = me._getIndexScale();\r\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\r\n\t\tvar stacked = scale.options.stacked;\r\n\t\tvar ilen = metasets.length;\r\n\t\tvar stacks = [];\r\n\t\tvar i, meta;\r\n\r\n\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\tmeta = metasets[i];\r\n\t\t\t// stacked | meta.stack\r\n\t\t\t// | found | not found | undefined\r\n\t\t\t// false | x | x | x\r\n\t\t\t// true | | x |\r\n\t\t\t// undefined | | x | x\r\n\t\t\tif (stacked === false || stacks.indexOf(meta.stack) === -1 ||\r\n\t\t\t\t(stacked === undefined && meta.stack === undefined)) {\r\n\t\t\t\tstacks.push(meta.stack);\r\n\t\t\t}\r\n\t\t\tif (meta.index === last) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn stacks;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the effective number of stacks based on groups and bar visibility.\r\n\t * @private\r\n\t */\r\n\tgetStackCount: function() {\r\n\t\treturn this._getStacks().length;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the stack index for the given dataset based on groups and bar visibility.\r\n\t * @param {number} [datasetIndex] - The dataset index\r\n\t * @param {string} [name] - The stack name to find\r\n\t * @returns {number} The stack index\r\n\t * @private\r\n\t */\r\n\tgetStackIndex: function(datasetIndex, name) {\r\n\t\tvar stacks = this._getStacks(datasetIndex);\r\n\t\tvar index = (name !== undefined)\r\n\t\t\t? stacks.indexOf(name)\r\n\t\t\t: -1; // indexOf returns -1 if element is not present\r\n\r\n\t\treturn (index === -1)\r\n\t\t\t? stacks.length - 1\r\n\t\t\t: index;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tgetRuler: function() {\r\n\t\tvar me = this;\r\n\t\tvar scale = me._getIndexScale();\r\n\t\tvar pixels = [];\r\n\t\tvar i, ilen;\r\n\r\n\t\tfor (i = 0, ilen = me.getMeta().data.length; i < ilen; ++i) {\r\n\t\t\tpixels.push(scale.getPixelForValue(null, i, me.index));\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tpixels: pixels,\r\n\t\t\tstart: scale._startPixel,\r\n\t\t\tend: scale._endPixel,\r\n\t\t\tstackCount: me.getStackCount(),\r\n\t\t\tscale: scale\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * Note: pixel values are not clamped to the scale area.\r\n\t * @private\r\n\t */\r\n\tcalculateBarValuePixels: function(datasetIndex, index, options) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar scale = me._getValueScale();\r\n\t\tvar isHorizontal = scale.isHorizontal();\r\n\t\tvar datasets = chart.data.datasets;\r\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\r\n\t\tvar value = scale._parseValue(datasets[datasetIndex].data[index]);\r\n\t\tvar minBarLength = options.minBarLength;\r\n\t\tvar stacked = scale.options.stacked;\r\n\t\tvar stack = me.getMeta().stack;\r\n\t\tvar start = value.start === undefined ? 0 : value.max >= 0 && value.min >= 0 ? value.min : value.max;\r\n\t\tvar length = value.start === undefined ? value.end : value.max >= 0 && value.min >= 0 ? value.max - value.min : value.min - value.max;\r\n\t\tvar ilen = metasets.length;\r\n\t\tvar i, imeta, ivalue, base, head, size, stackLength;\r\n\r\n\t\tif (stacked || (stacked === undefined && stack !== undefined)) {\r\n\t\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\t\timeta = metasets[i];\r\n\r\n\t\t\t\tif (imeta.index === datasetIndex) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (imeta.stack === stack) {\r\n\t\t\t\t\tstackLength = scale._parseValue(datasets[imeta.index].data[index]);\r\n\t\t\t\t\tivalue = stackLength.start === undefined ? stackLength.end : stackLength.min >= 0 && stackLength.max >= 0 ? stackLength.max : stackLength.min;\r\n\r\n\t\t\t\t\tif ((value.min < 0 && ivalue < 0) || (value.max >= 0 && ivalue > 0)) {\r\n\t\t\t\t\t\tstart += ivalue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tbase = scale.getPixelForValue(start);\r\n\t\thead = scale.getPixelForValue(start + length);\r\n\t\tsize = head - base;\r\n\r\n\t\tif (minBarLength !== undefined && Math.abs(size) < minBarLength) {\r\n\t\t\tsize = minBarLength;\r\n\t\t\tif (length >= 0 && !isHorizontal || length < 0 && isHorizontal) {\r\n\t\t\t\thead = base - minBarLength;\r\n\t\t\t} else {\r\n\t\t\t\thead = base + minBarLength;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tsize: size,\r\n\t\t\tbase: base,\r\n\t\t\thead: head,\r\n\t\t\tcenter: head + size / 2\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tcalculateBarIndexPixels: function(datasetIndex, index, ruler, options) {\r\n\t\tvar me = this;\r\n\t\tvar range = options.barThickness === 'flex'\r\n\t\t\t? computeFlexCategoryTraits(index, ruler, options)\r\n\t\t\t: computeFitCategoryTraits(index, ruler, options);\r\n\r\n\t\tvar stackIndex = me.getStackIndex(datasetIndex, me.getMeta().stack);\r\n\t\tvar center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\r\n\t\tvar size = Math.min(\r\n\t\t\tvalueOrDefault$3(options.maxBarThickness, Infinity),\r\n\t\t\trange.chunk * range.ratio);\r\n\r\n\t\treturn {\r\n\t\t\tbase: center - size / 2,\r\n\t\t\thead: center + size / 2,\r\n\t\t\tcenter: center,\r\n\t\t\tsize: size\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar scale = me._getValueScale();\r\n\t\tvar rects = me.getMeta().data;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar ilen = rects.length;\r\n\t\tvar i = 0;\r\n\r\n\t\thelpers$1.canvas.clipArea(chart.ctx, chart.chartArea);\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tvar val = scale._parseValue(dataset.data[i]);\r\n\t\t\tif (!isNaN(val.min) && !isNaN(val.max)) {\r\n\t\t\t\trects[i].draw();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\thelpers$1.canvas.unclipArea(chart.ctx);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function() {\r\n\t\tvar me = this;\r\n\t\tvar values = helpers$1.extend({}, core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments));\r\n\t\tvar indexOpts = me._getIndexScale().options;\r\n\t\tvar valueOpts = me._getValueScale().options;\r\n\r\n\t\tvalues.barPercentage = valueOrDefault$3(indexOpts.barPercentage, values.barPercentage);\r\n\t\tvalues.barThickness = valueOrDefault$3(indexOpts.barThickness, values.barThickness);\r\n\t\tvalues.categoryPercentage = valueOrDefault$3(indexOpts.categoryPercentage, values.categoryPercentage);\r\n\t\tvalues.maxBarThickness = valueOrDefault$3(indexOpts.maxBarThickness, values.maxBarThickness);\r\n\t\tvalues.minBarLength = valueOrDefault$3(valueOpts.minBarLength, values.minBarLength);\r\n\r\n\t\treturn values;\r\n\t}\r\n\r\n});\n\nvar valueOrDefault$4 = helpers$1.valueOrDefault;\r\nvar resolve$1 = helpers$1.options.resolve;\r\n\r\ncore_defaults._set('bubble', {\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'linear', // bubble should probably use a linear scale by default\r\n\t\t\tposition: 'bottom',\r\n\t\t\tid: 'x-axis-0' // need an ID so datasets can reference the scale\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'left',\r\n\t\t\tid: 'y-axis-0'\r\n\t\t}]\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\t// Title doesn't make sense for scatter since we format the data as a point\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(item, data) {\r\n\t\t\t\tvar datasetLabel = data.datasets[item.datasetIndex].label || '';\r\n\t\t\t\tvar dataPoint = data.datasets[item.datasetIndex].data[item.index];\r\n\t\t\t\treturn datasetLabel + ': (' + item.xLabel + ', ' + item.yLabel + ', ' + dataPoint.r + ')';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_bubble = core_datasetController.extend({\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tdataElementType: elements.Point,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t\t'hoverRadius',\r\n\t\t'hitRadius',\r\n\t\t'pointStyle',\r\n\t\t'rotation'\r\n\t],\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar points = meta.data;\r\n\r\n\t\t// Update Points\r\n\t\thelpers$1.each(points, function(point, index) {\r\n\t\t\tme.updateElement(point, index, reset);\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar xScale = me.getScaleForId(meta.xAxisID);\r\n\t\tvar yScale = me.getScaleForId(meta.yAxisID);\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\t\tvar data = me.getDataset().data[index];\r\n\t\tvar dsIndex = me.index;\r\n\r\n\t\tvar x = reset ? xScale.getPixelForDecimal(0.5) : xScale.getPixelForValue(typeof data === 'object' ? data : NaN, index, dsIndex);\r\n\t\tvar y = reset ? yScale.getBasePixel() : yScale.getPixelForValue(data, index, dsIndex);\r\n\r\n\t\tpoint._xScale = xScale;\r\n\t\tpoint._yScale = yScale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = dsIndex;\r\n\t\tpoint._index = index;\r\n\t\tpoint._model = {\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\thitRadius: options.hitRadius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tradius: reset ? 0 : options.radius,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\tx: x,\r\n\t\t\ty: y,\r\n\t\t};\r\n\r\n\t\tpoint.pivot();\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$4(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$4(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$4(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = options.radius + options.hoverRadius;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function(point, index) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar data = dataset.data[index] || {};\r\n\t\tvar values = core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments);\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: dataset,\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\t// In case values were cached (and thus frozen), we need to clone the values\r\n\t\tif (me._cachedDataOpts === values) {\r\n\t\t\tvalues = helpers$1.extend({}, values);\r\n\t\t}\r\n\r\n\t\t// Custom radius resolution\r\n\t\tvalues.radius = resolve$1([\r\n\t\t\tcustom.radius,\r\n\t\t\tdata.r,\r\n\t\t\tme._config.radius,\r\n\t\t\tchart.options.elements.point.radius\r\n\t\t], context, index);\r\n\r\n\t\treturn values;\r\n\t}\r\n});\n\nvar valueOrDefault$5 = helpers$1.valueOrDefault;\r\n\r\nvar PI$1 = Math.PI;\r\nvar DOUBLE_PI$1 = PI$1 * 2;\r\nvar HALF_PI$1 = PI$1 / 2;\r\n\r\ncore_defaults._set('doughnut', {\r\n\tanimation: {\r\n\t\t// Boolean - Whether we animate the rotation of the Doughnut\r\n\t\tanimateRotate: true,\r\n\t\t// Boolean - Whether we animate scaling the Doughnut from the centre\r\n\t\tanimateScale: false\r\n\t},\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\tlegendCallback: function(chart) {\r\n\t\tvar list = document.createElement('ul');\r\n\t\tvar data = chart.data;\r\n\t\tvar datasets = data.datasets;\r\n\t\tvar labels = data.labels;\r\n\t\tvar i, ilen, listItem, listItemSpan;\r\n\r\n\t\tlist.setAttribute('class', chart.id + '-legend');\r\n\t\tif (datasets.length) {\r\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\r\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\r\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\r\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\r\n\t\t\t\tif (labels[i]) {\r\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn list.outerHTML;\r\n\t},\r\n\tlegend: {\r\n\t\tlabels: {\r\n\t\t\tgenerateLabels: function(chart) {\r\n\t\t\t\tvar data = chart.data;\r\n\t\t\t\tif (data.labels.length && data.datasets.length) {\r\n\t\t\t\t\treturn data.labels.map(function(label, i) {\r\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\r\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\ttext: label,\r\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\r\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\r\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\r\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\r\n\r\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\r\n\t\t\t\t\t\t\tindex: i\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tonClick: function(e, legendItem) {\r\n\t\t\tvar index = legendItem.index;\r\n\t\t\tvar chart = this.chart;\r\n\t\t\tvar i, ilen, meta;\r\n\r\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\r\n\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\t// toggle visibility of index if exists\r\n\t\t\t\tif (meta.data[index]) {\r\n\t\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tchart.update();\r\n\t\t}\r\n\t},\r\n\r\n\t// The percentage of the chart that we cut out of the middle.\r\n\tcutoutPercentage: 50,\r\n\r\n\t// The rotation of the chart, where the first data arc begins.\r\n\trotation: -HALF_PI$1,\r\n\r\n\t// The total circumference of the chart.\r\n\tcircumference: DOUBLE_PI$1,\r\n\r\n\t// Need to override these to give a nice default\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(tooltipItem, data) {\r\n\t\t\t\tvar dataLabel = data.labels[tooltipItem.index];\r\n\t\t\t\tvar value = ': ' + data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];\r\n\r\n\t\t\t\tif (helpers$1.isArray(dataLabel)) {\r\n\t\t\t\t\t// show value on first line of multiline label\r\n\t\t\t\t\t// need to clone because we are changing the value\r\n\t\t\t\t\tdataLabel = dataLabel.slice();\r\n\t\t\t\t\tdataLabel[0] += value;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdataLabel += value;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn dataLabel;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_doughnut = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Arc,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'borderAlign',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t],\r\n\r\n\t// Get index of the dataset in relation to the visible datasets. This allows determining the inner and outer radius correctly\r\n\tgetRingIndex: function(datasetIndex) {\r\n\t\tvar ringIndex = 0;\r\n\r\n\t\tfor (var j = 0; j < datasetIndex; ++j) {\r\n\t\t\tif (this.chart.isDatasetVisible(j)) {\r\n\t\t\t\t++ringIndex;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn ringIndex;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar ratioX = 1;\r\n\t\tvar ratioY = 1;\r\n\t\tvar offsetX = 0;\r\n\t\tvar offsetY = 0;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar arcs = meta.data;\r\n\t\tvar cutout = opts.cutoutPercentage / 100 || 0;\r\n\t\tvar circumference = opts.circumference;\r\n\t\tvar chartWeight = me._getRingWeight(me.index);\r\n\t\tvar maxWidth, maxHeight, i, ilen;\r\n\r\n\t\t// If the chart's circumference isn't a full circle, calculate size as a ratio of the width/height of the arc\r\n\t\tif (circumference < DOUBLE_PI$1) {\r\n\t\t\tvar startAngle = opts.rotation % DOUBLE_PI$1;\r\n\t\t\tstartAngle += startAngle >= PI$1 ? -DOUBLE_PI$1 : startAngle < -PI$1 ? DOUBLE_PI$1 : 0;\r\n\t\t\tvar endAngle = startAngle + circumference;\r\n\t\t\tvar startX = Math.cos(startAngle);\r\n\t\t\tvar startY = Math.sin(startAngle);\r\n\t\t\tvar endX = Math.cos(endAngle);\r\n\t\t\tvar endY = Math.sin(endAngle);\r\n\t\t\tvar contains0 = (startAngle <= 0 && endAngle >= 0) || endAngle >= DOUBLE_PI$1;\r\n\t\t\tvar contains90 = (startAngle <= HALF_PI$1 && endAngle >= HALF_PI$1) || endAngle >= DOUBLE_PI$1 + HALF_PI$1;\r\n\t\t\tvar contains180 = startAngle === -PI$1 || endAngle >= PI$1;\r\n\t\t\tvar contains270 = (startAngle <= -HALF_PI$1 && endAngle >= -HALF_PI$1) || endAngle >= PI$1 + HALF_PI$1;\r\n\t\t\tvar minX = contains180 ? -1 : Math.min(startX, startX * cutout, endX, endX * cutout);\r\n\t\t\tvar minY = contains270 ? -1 : Math.min(startY, startY * cutout, endY, endY * cutout);\r\n\t\t\tvar maxX = contains0 ? 1 : Math.max(startX, startX * cutout, endX, endX * cutout);\r\n\t\t\tvar maxY = contains90 ? 1 : Math.max(startY, startY * cutout, endY, endY * cutout);\r\n\t\t\tratioX = (maxX - minX) / 2;\r\n\t\t\tratioY = (maxY - minY) / 2;\r\n\t\t\toffsetX = -(maxX + minX) / 2;\r\n\t\t\toffsetY = -(maxY + minY) / 2;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\r\n\t\t}\r\n\r\n\t\tchart.borderWidth = me.getMaxBorderWidth();\r\n\t\tmaxWidth = (chartArea.right - chartArea.left - chart.borderWidth) / ratioX;\r\n\t\tmaxHeight = (chartArea.bottom - chartArea.top - chart.borderWidth) / ratioY;\r\n\t\tchart.outerRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\r\n\t\tchart.innerRadius = Math.max(chart.outerRadius * cutout, 0);\r\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / (me._getVisibleDatasetWeightTotal() || 1);\r\n\t\tchart.offsetX = offsetX * chart.outerRadius;\r\n\t\tchart.offsetY = offsetY * chart.outerRadius;\r\n\r\n\t\tmeta.total = me.calculateTotal();\r\n\r\n\t\tme.outerRadius = chart.outerRadius - chart.radiusLength * me._getRingWeightOffset(me.index);\r\n\t\tme.innerRadius = Math.max(me.outerRadius - chart.radiusLength * chartWeight, 0);\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(arcs[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(arc, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar animationOpts = opts.animation;\r\n\t\tvar centerX = (chartArea.left + chartArea.right) / 2;\r\n\t\tvar centerY = (chartArea.top + chartArea.bottom) / 2;\r\n\t\tvar startAngle = opts.rotation; // non reset case handled later\r\n\t\tvar endAngle = opts.rotation; // non reset case handled later\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar circumference = reset && animationOpts.animateRotate ? 0 : arc.hidden ? 0 : me.calculateCircumference(dataset.data[index]) * (opts.circumference / DOUBLE_PI$1);\r\n\t\tvar innerRadius = reset && animationOpts.animateScale ? 0 : me.innerRadius;\r\n\t\tvar outerRadius = reset && animationOpts.animateScale ? 0 : me.outerRadius;\r\n\t\tvar options = arc._options || {};\r\n\r\n\t\thelpers$1.extend(arc, {\r\n\t\t\t// Utility\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index,\r\n\r\n\t\t\t// Desired view properties\r\n\t\t\t_model: {\r\n\t\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\t\tborderColor: options.borderColor,\r\n\t\t\t\tborderWidth: options.borderWidth,\r\n\t\t\t\tborderAlign: options.borderAlign,\r\n\t\t\t\tx: centerX + chart.offsetX,\r\n\t\t\t\ty: centerY + chart.offsetY,\r\n\t\t\t\tstartAngle: startAngle,\r\n\t\t\t\tendAngle: endAngle,\r\n\t\t\t\tcircumference: circumference,\r\n\t\t\t\touterRadius: outerRadius,\r\n\t\t\t\tinnerRadius: innerRadius,\r\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(dataset.label, index, chart.data.labels[index])\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tvar model = arc._model;\r\n\r\n\t\t// Set correct angles if not resetting\r\n\t\tif (!reset || !animationOpts.animateRotate) {\r\n\t\t\tif (index === 0) {\r\n\t\t\t\tmodel.startAngle = opts.rotation;\r\n\t\t\t} else {\r\n\t\t\t\tmodel.startAngle = me.getMeta().data[index - 1]._model.endAngle;\r\n\t\t\t}\r\n\r\n\t\t\tmodel.endAngle = model.startAngle + model.circumference;\r\n\t\t}\r\n\r\n\t\tarc.pivot();\r\n\t},\r\n\r\n\tcalculateTotal: function() {\r\n\t\tvar dataset = this.getDataset();\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar total = 0;\r\n\t\tvar value;\r\n\r\n\t\thelpers$1.each(meta.data, function(element, index) {\r\n\t\t\tvalue = dataset.data[index];\r\n\t\t\tif (!isNaN(value) && !element.hidden) {\r\n\t\t\t\ttotal += Math.abs(value);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t/* if (total === 0) {\r\n\t\t\ttotal = NaN;\r\n\t\t}*/\r\n\r\n\t\treturn total;\r\n\t},\r\n\r\n\tcalculateCircumference: function(value) {\r\n\t\tvar total = this.getMeta().total;\r\n\t\tif (total > 0 && !isNaN(value)) {\r\n\t\t\treturn DOUBLE_PI$1 * (Math.abs(value) / total);\r\n\t\t}\r\n\t\treturn 0;\r\n\t},\r\n\r\n\t// gets the max border or hover width to properly scale pie charts\r\n\tgetMaxBorderWidth: function(arcs) {\r\n\t\tvar me = this;\r\n\t\tvar max = 0;\r\n\t\tvar chart = me.chart;\r\n\t\tvar i, ilen, meta, arc, controller, options, borderWidth, hoverWidth;\r\n\r\n\t\tif (!arcs) {\r\n\t\t\t// Find the outmost visible dataset\r\n\t\t\tfor (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\r\n\t\t\t\tif (chart.isDatasetVisible(i)) {\r\n\t\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\t\tarcs = meta.data;\r\n\t\t\t\t\tif (i !== me.index) {\r\n\t\t\t\t\t\tcontroller = meta.controller;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!arcs) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarc = arcs[i];\r\n\t\t\tif (controller) {\r\n\t\t\t\tcontroller._configure();\r\n\t\t\t\toptions = controller._resolveDataElementOptions(arc, i);\r\n\t\t\t} else {\r\n\t\t\t\toptions = arc._options;\r\n\t\t\t}\r\n\t\t\tif (options.borderAlign !== 'inner') {\r\n\t\t\t\tborderWidth = options.borderWidth;\r\n\t\t\t\thoverWidth = options.hoverBorderWidth;\r\n\r\n\t\t\t\tmax = borderWidth > max ? borderWidth : max;\r\n\t\t\t\tmax = hoverWidth > max ? hoverWidth : max;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn max;\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(arc) {\r\n\t\tvar model = arc._model;\r\n\t\tvar options = arc._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tarc.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$5(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$5(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$5(options.hoverBorderWidth, options.borderWidth);\r\n\t},\r\n\r\n\t/**\r\n\t * Get radius length offset of the dataset in relation to the visible datasets weights. This allows determining the inner and outer radius correctly\r\n\t * @private\r\n\t */\r\n\t_getRingWeightOffset: function(datasetIndex) {\r\n\t\tvar ringWeightOffset = 0;\r\n\r\n\t\tfor (var i = 0; i < datasetIndex; ++i) {\r\n\t\t\tif (this.chart.isDatasetVisible(i)) {\r\n\t\t\t\tringWeightOffset += this._getRingWeight(i);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn ringWeightOffset;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getRingWeight: function(dataSetIndex) {\r\n\t\treturn Math.max(valueOrDefault$5(this.chart.data.datasets[dataSetIndex].weight, 1), 0);\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the sum of all visibile data set weights. This value can be 0.\r\n\t * @private\r\n\t */\r\n\t_getVisibleDatasetWeightTotal: function() {\r\n\t\treturn this._getRingWeightOffset(this.chart.data.datasets.length);\r\n\t}\r\n});\n\ncore_defaults._set('horizontalBar', {\r\n\thover: {\r\n\t\tmode: 'index',\r\n\t\taxis: 'y'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'bottom'\r\n\t\t}],\r\n\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\tposition: 'left',\r\n\t\t\toffset: true,\r\n\t\t\tgridLines: {\r\n\t\t\t\toffsetGridLines: true\r\n\t\t\t}\r\n\t\t}]\r\n\t},\r\n\r\n\telements: {\r\n\t\trectangle: {\r\n\t\t\tborderSkipped: 'left'\r\n\t\t}\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tmode: 'index',\r\n\t\taxis: 'y'\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\thorizontalBar: {\r\n\t\t\tcategoryPercentage: 0.8,\r\n\t\t\tbarPercentage: 0.9\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_horizontalBar = controller_bar.extend({\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.getMeta().xAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.getMeta().yAxisID;\r\n\t}\r\n});\n\nvar valueOrDefault$6 = helpers$1.valueOrDefault;\r\nvar resolve$2 = helpers$1.options.resolve;\r\nvar isPointInArea = helpers$1.canvas._isPointInArea;\r\n\r\ncore_defaults._set('line', {\r\n\tshowLines: true,\r\n\tspanGaps: false,\r\n\r\n\thover: {\r\n\t\tmode: 'label'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\tid: 'x-axis-0'\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tid: 'y-axis-0'\r\n\t\t}]\r\n\t}\r\n});\r\n\r\nfunction scaleClip(scale, halfBorderWidth) {\r\n\tvar tickOpts = scale && scale.options.ticks || {};\r\n\tvar reverse = tickOpts.reverse;\r\n\tvar min = tickOpts.min === undefined ? halfBorderWidth : 0;\r\n\tvar max = tickOpts.max === undefined ? halfBorderWidth : 0;\r\n\treturn {\r\n\t\tstart: reverse ? max : min,\r\n\t\tend: reverse ? min : max\r\n\t};\r\n}\r\n\r\nfunction defaultClip(xScale, yScale, borderWidth) {\r\n\tvar halfBorderWidth = borderWidth / 2;\r\n\tvar x = scaleClip(xScale, halfBorderWidth);\r\n\tvar y = scaleClip(yScale, halfBorderWidth);\r\n\r\n\treturn {\r\n\t\ttop: y.end,\r\n\t\tright: x.end,\r\n\t\tbottom: y.start,\r\n\t\tleft: x.start\r\n\t};\r\n}\r\n\r\nfunction toClip(value) {\r\n\tvar t, r, b, l;\r\n\r\n\tif (helpers$1.isObject(value)) {\r\n\t\tt = value.top;\r\n\t\tr = value.right;\r\n\t\tb = value.bottom;\r\n\t\tl = value.left;\r\n\t} else {\r\n\t\tt = r = b = l = value;\r\n\t}\r\n\r\n\treturn {\r\n\t\ttop: t,\r\n\t\tright: r,\r\n\t\tbottom: b,\r\n\t\tleft: l\r\n\t};\r\n}\r\n\r\n\r\nvar controller_line = core_datasetController.extend({\r\n\r\n\tdatasetElementType: elements.Line,\r\n\r\n\tdataElementType: elements.Point,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderColor',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'borderWidth',\r\n\t\t'cubicInterpolationMode',\r\n\t\t'fill'\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: {\r\n\t\tbackgroundColor: 'pointBackgroundColor',\r\n\t\tborderColor: 'pointBorderColor',\r\n\t\tborderWidth: 'pointBorderWidth',\r\n\t\thitRadius: 'pointHitRadius',\r\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\r\n\t\thoverBorderColor: 'pointHoverBorderColor',\r\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\r\n\t\thoverRadius: 'pointHoverRadius',\r\n\t\tpointStyle: 'pointStyle',\r\n\t\tradius: 'pointRadius',\r\n\t\trotation: 'pointRotation'\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar line = meta.dataset;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar options = me.chart.options;\r\n\t\tvar config = me._config;\r\n\t\tvar showLine = me._showLine = valueOrDefault$6(config.showLine, options.showLines);\r\n\t\tvar i, ilen;\r\n\r\n\t\tme._xScale = me.getScaleForId(meta.xAxisID);\r\n\t\tme._yScale = me.getScaleForId(meta.yAxisID);\r\n\r\n\t\t// Update Line\r\n\t\tif (showLine) {\r\n\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\t\tif (config.tension !== undefined && config.lineTension === undefined) {\r\n\t\t\t\tconfig.lineTension = config.tension;\r\n\t\t\t}\r\n\r\n\t\t\t// Utility\r\n\t\t\tline._scale = me._yScale;\r\n\t\t\tline._datasetIndex = me.index;\r\n\t\t\t// Data\r\n\t\t\tline._children = points;\r\n\t\t\t// Model\r\n\t\t\tline._model = me._resolveDatasetElementOptions(line);\r\n\r\n\t\t\tline.pivot();\r\n\t\t}\r\n\r\n\t\t// Update Points\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(points[i], i, reset);\r\n\t\t}\r\n\r\n\t\tif (showLine && line._model.tension !== 0) {\r\n\t\t\tme.updateBezierControlPoints();\r\n\t\t}\r\n\r\n\t\t// Now pivot the point for animation\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tpoints[i].pivot();\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar datasetIndex = me.index;\r\n\t\tvar value = dataset.data[index];\r\n\t\tvar xScale = me._xScale;\r\n\t\tvar yScale = me._yScale;\r\n\t\tvar lineModel = meta.dataset._model;\r\n\t\tvar x, y;\r\n\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\r\n\t\tx = xScale.getPixelForValue(typeof value === 'object' ? value : NaN, index, datasetIndex);\r\n\t\ty = reset ? yScale.getBasePixel() : me.calculatePointY(value, index, datasetIndex);\r\n\r\n\t\t// Utility\r\n\t\tpoint._xScale = xScale;\r\n\t\tpoint._yScale = yScale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = datasetIndex;\r\n\t\tpoint._index = index;\r\n\r\n\t\t// Desired view properties\r\n\t\tpoint._model = {\r\n\t\t\tx: x,\r\n\t\t\ty: y,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\t// Appearance\r\n\t\t\tradius: options.radius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\ttension: valueOrDefault$6(custom.tension, lineModel ? lineModel.tension : 0),\r\n\t\t\tsteppedLine: lineModel ? lineModel.steppedLine : false,\r\n\t\t\t// Tooltip\r\n\t\t\thitRadius: options.hitRadius\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function(element) {\r\n\t\tvar me = this;\r\n\t\tvar config = me._config;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar options = me.chart.options;\r\n\t\tvar lineOptions = options.elements.line;\r\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\r\n\r\n\t\t// The default behavior of lines is to break at null values, according\r\n\t\t// to https://github.com/chartjs/Chart.js/issues/2435#issuecomment-216718158\r\n\t\t// This option gives lines the ability to span gaps\r\n\t\tvalues.spanGaps = valueOrDefault$6(config.spanGaps, options.spanGaps);\r\n\t\tvalues.tension = valueOrDefault$6(config.lineTension, lineOptions.tension);\r\n\t\tvalues.steppedLine = resolve$2([custom.steppedLine, config.steppedLine, lineOptions.stepped]);\r\n\t\tvalues.clip = toClip(valueOrDefault$6(config.clip, defaultClip(me._xScale, me._yScale, values.borderWidth)));\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tcalculatePointY: function(value, index, datasetIndex) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar yScale = me._yScale;\r\n\t\tvar sumPos = 0;\r\n\t\tvar sumNeg = 0;\r\n\t\tvar i, ds, dsMeta, stackedRightValue, rightValue, metasets, ilen;\r\n\r\n\t\tif (yScale.options.stacked) {\r\n\t\t\trightValue = +yScale.getRightValue(value);\r\n\t\t\tmetasets = chart._getSortedVisibleDatasetMetas();\r\n\t\t\tilen = metasets.length;\r\n\r\n\t\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\t\tdsMeta = metasets[i];\r\n\t\t\t\tif (dsMeta.index === datasetIndex) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tds = chart.data.datasets[dsMeta.index];\r\n\t\t\t\tif (dsMeta.type === 'line' && dsMeta.yAxisID === yScale.id) {\r\n\t\t\t\t\tstackedRightValue = +yScale.getRightValue(ds.data[index]);\r\n\t\t\t\t\tif (stackedRightValue < 0) {\r\n\t\t\t\t\t\tsumNeg += stackedRightValue || 0;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tsumPos += stackedRightValue || 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (rightValue < 0) {\r\n\t\t\t\treturn yScale.getPixelForValue(sumNeg + rightValue);\r\n\t\t\t}\r\n\t\t\treturn yScale.getPixelForValue(sumPos + rightValue);\r\n\t\t}\r\n\t\treturn yScale.getPixelForValue(value);\r\n\t},\r\n\r\n\tupdateBezierControlPoints: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar lineModel = meta.dataset._model;\r\n\t\tvar area = chart.chartArea;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar i, ilen, model, controlPoints;\r\n\r\n\t\t// Only consider points that are drawn in case the spanGaps option is used\r\n\t\tif (lineModel.spanGaps) {\r\n\t\t\tpoints = points.filter(function(pt) {\r\n\t\t\t\treturn !pt._model.skip;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction capControlPoint(pt, min, max) {\r\n\t\t\treturn Math.max(Math.min(pt, max), min);\r\n\t\t}\r\n\r\n\t\tif (lineModel.cubicInterpolationMode === 'monotone') {\r\n\t\t\thelpers$1.splineCurveMonotone(points);\r\n\t\t} else {\r\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\t\tmodel = points[i]._model;\r\n\t\t\t\tcontrolPoints = helpers$1.splineCurve(\r\n\t\t\t\t\thelpers$1.previousItem(points, i)._model,\r\n\t\t\t\t\tmodel,\r\n\t\t\t\t\thelpers$1.nextItem(points, i)._model,\r\n\t\t\t\t\tlineModel.tension\r\n\t\t\t\t);\r\n\t\t\t\tmodel.controlPointPreviousX = controlPoints.previous.x;\r\n\t\t\t\tmodel.controlPointPreviousY = controlPoints.previous.y;\r\n\t\t\t\tmodel.controlPointNextX = controlPoints.next.x;\r\n\t\t\t\tmodel.controlPointNextY = controlPoints.next.y;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (chart.options.elements.line.capBezierPoints) {\r\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\t\tmodel = points[i]._model;\r\n\t\t\t\tif (isPointInArea(model, area)) {\r\n\t\t\t\t\tif (i > 0 && isPointInArea(points[i - 1]._model, area)) {\r\n\t\t\t\t\t\tmodel.controlPointPreviousX = capControlPoint(model.controlPointPreviousX, area.left, area.right);\r\n\t\t\t\t\t\tmodel.controlPointPreviousY = capControlPoint(model.controlPointPreviousY, area.top, area.bottom);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (i < points.length - 1 && isPointInArea(points[i + 1]._model, area)) {\r\n\t\t\t\t\t\tmodel.controlPointNextX = capControlPoint(model.controlPointNextX, area.left, area.right);\r\n\t\t\t\t\t\tmodel.controlPointNextY = capControlPoint(model.controlPointNextY, area.top, area.bottom);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar points = meta.data || [];\r\n\t\tvar area = chart.chartArea;\r\n\t\tvar canvas = chart.canvas;\r\n\t\tvar i = 0;\r\n\t\tvar ilen = points.length;\r\n\t\tvar clip;\r\n\r\n\t\tif (me._showLine) {\r\n\t\t\tclip = meta.dataset._model.clip;\r\n\r\n\t\t\thelpers$1.canvas.clipArea(chart.ctx, {\r\n\t\t\t\tleft: clip.left === false ? 0 : area.left - clip.left,\r\n\t\t\t\tright: clip.right === false ? canvas.width : area.right + clip.right,\r\n\t\t\t\ttop: clip.top === false ? 0 : area.top - clip.top,\r\n\t\t\t\tbottom: clip.bottom === false ? canvas.height : area.bottom + clip.bottom\r\n\t\t\t});\r\n\r\n\t\t\tmeta.dataset.draw();\r\n\r\n\t\t\thelpers$1.canvas.unclipArea(chart.ctx);\r\n\t\t}\r\n\r\n\t\t// Draw the points\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tpoints[i].draw(area);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$6(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$6(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$6(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = valueOrDefault$6(options.hoverRadius, options.radius);\r\n\t},\r\n});\n\nvar resolve$3 = helpers$1.options.resolve;\r\n\r\ncore_defaults._set('polarArea', {\r\n\tscale: {\r\n\t\ttype: 'radialLinear',\r\n\t\tangleLines: {\r\n\t\t\tdisplay: false\r\n\t\t},\r\n\t\tgridLines: {\r\n\t\t\tcircular: true\r\n\t\t},\r\n\t\tpointLabels: {\r\n\t\t\tdisplay: false\r\n\t\t},\r\n\t\tticks: {\r\n\t\t\tbeginAtZero: true\r\n\t\t}\r\n\t},\r\n\r\n\t// Boolean - Whether to animate the rotation of the chart\r\n\tanimation: {\r\n\t\tanimateRotate: true,\r\n\t\tanimateScale: true\r\n\t},\r\n\r\n\tstartAngle: -0.5 * Math.PI,\r\n\tlegendCallback: function(chart) {\r\n\t\tvar list = document.createElement('ul');\r\n\t\tvar data = chart.data;\r\n\t\tvar datasets = data.datasets;\r\n\t\tvar labels = data.labels;\r\n\t\tvar i, ilen, listItem, listItemSpan;\r\n\r\n\t\tlist.setAttribute('class', chart.id + '-legend');\r\n\t\tif (datasets.length) {\r\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\r\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\r\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\r\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\r\n\t\t\t\tif (labels[i]) {\r\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn list.outerHTML;\r\n\t},\r\n\tlegend: {\r\n\t\tlabels: {\r\n\t\t\tgenerateLabels: function(chart) {\r\n\t\t\t\tvar data = chart.data;\r\n\t\t\t\tif (data.labels.length && data.datasets.length) {\r\n\t\t\t\t\treturn data.labels.map(function(label, i) {\r\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\r\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\ttext: label,\r\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\r\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\r\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\r\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\r\n\r\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\r\n\t\t\t\t\t\t\tindex: i\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tonClick: function(e, legendItem) {\r\n\t\t\tvar index = legendItem.index;\r\n\t\t\tvar chart = this.chart;\r\n\t\t\tvar i, ilen, meta;\r\n\r\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\r\n\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\r\n\t\t\t}\r\n\r\n\t\t\tchart.update();\r\n\t\t}\r\n\t},\r\n\r\n\t// Need to override these to give a nice default\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(item, data) {\r\n\t\t\t\treturn data.labels[item.index] + ': ' + item.yLabel;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_polarArea = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Arc,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'borderAlign',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar start = me.chart.options.startAngle || 0;\r\n\t\tvar starts = me._starts = [];\r\n\t\tvar angles = me._angles = [];\r\n\t\tvar arcs = meta.data;\r\n\t\tvar i, ilen, angle;\r\n\r\n\t\tme._updateRadius();\r\n\r\n\t\tmeta.count = me.countVisibleElements();\r\n\r\n\t\tfor (i = 0, ilen = dataset.data.length; i < ilen; i++) {\r\n\t\t\tstarts[i] = start;\r\n\t\t\tangle = me._computeAngle(i);\r\n\t\t\tangles[i] = angle;\r\n\t\t\tstart += angle;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\r\n\t\t\tme.updateElement(arcs[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_updateRadius: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\r\n\r\n\t\tchart.outerRadius = Math.max(minSize / 2, 0);\r\n\t\tchart.innerRadius = Math.max(opts.cutoutPercentage ? (chart.outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\r\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\r\n\r\n\t\tme.outerRadius = chart.outerRadius - (chart.radiusLength * me.index);\r\n\t\tme.innerRadius = me.outerRadius - chart.radiusLength;\r\n\t},\r\n\r\n\tupdateElement: function(arc, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar opts = chart.options;\r\n\t\tvar animationOpts = opts.animation;\r\n\t\tvar scale = chart.scale;\r\n\t\tvar labels = chart.data.labels;\r\n\r\n\t\tvar centerX = scale.xCenter;\r\n\t\tvar centerY = scale.yCenter;\r\n\r\n\t\t// var negHalfPI = -0.5 * Math.PI;\r\n\t\tvar datasetStartAngle = opts.startAngle;\r\n\t\tvar distance = arc.hidden ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\r\n\t\tvar startAngle = me._starts[index];\r\n\t\tvar endAngle = startAngle + (arc.hidden ? 0 : me._angles[index]);\r\n\r\n\t\tvar resetRadius = animationOpts.animateScale ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\r\n\t\tvar options = arc._options || {};\r\n\r\n\t\thelpers$1.extend(arc, {\r\n\t\t\t// Utility\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index,\r\n\t\t\t_scale: scale,\r\n\r\n\t\t\t// Desired view properties\r\n\t\t\t_model: {\r\n\t\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\t\tborderColor: options.borderColor,\r\n\t\t\t\tborderWidth: options.borderWidth,\r\n\t\t\t\tborderAlign: options.borderAlign,\r\n\t\t\t\tx: centerX,\r\n\t\t\t\ty: centerY,\r\n\t\t\t\tinnerRadius: 0,\r\n\t\t\t\touterRadius: reset ? resetRadius : distance,\r\n\t\t\t\tstartAngle: reset && animationOpts.animateRotate ? datasetStartAngle : startAngle,\r\n\t\t\t\tendAngle: reset && animationOpts.animateRotate ? datasetStartAngle : endAngle,\r\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(labels, index, labels[index])\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tarc.pivot();\r\n\t},\r\n\r\n\tcountVisibleElements: function() {\r\n\t\tvar dataset = this.getDataset();\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar count = 0;\r\n\r\n\t\thelpers$1.each(meta.data, function(element, index) {\r\n\t\t\tif (!isNaN(dataset.data[index]) && !element.hidden) {\r\n\t\t\t\tcount++;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn count;\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(arc) {\r\n\t\tvar model = arc._model;\r\n\t\tvar options = arc._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\t\tvar valueOrDefault = helpers$1.valueOrDefault;\r\n\r\n\t\tarc.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault(options.hoverBorderWidth, options.borderWidth);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_computeAngle: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar count = this.getMeta().count;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar meta = me.getMeta();\r\n\r\n\t\tif (isNaN(dataset.data[index]) || meta.data[index].hidden) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: me.chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: dataset,\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\treturn resolve$3([\r\n\t\t\tme.chart.options.elements.arc.angle,\r\n\t\t\t(2 * Math.PI) / count\r\n\t\t], context, index);\r\n\t}\r\n});\n\ncore_defaults._set('pie', helpers$1.clone(core_defaults.doughnut));\r\ncore_defaults._set('pie', {\r\n\tcutoutPercentage: 0\r\n});\r\n\r\n// Pie charts are Doughnut chart with different defaults\r\nvar controller_pie = controller_doughnut;\n\nvar valueOrDefault$7 = helpers$1.valueOrDefault;\r\n\r\ncore_defaults._set('radar', {\r\n\tspanGaps: false,\r\n\tscale: {\r\n\t\ttype: 'radialLinear'\r\n\t},\r\n\telements: {\r\n\t\tline: {\r\n\t\t\tfill: 'start',\r\n\t\t\ttension: 0 // no bezier in radar\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_radar = core_datasetController.extend({\r\n\tdatasetElementType: elements.Line,\r\n\r\n\tdataElementType: elements.Point,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderWidth',\r\n\t\t'borderColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'fill'\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: {\r\n\t\tbackgroundColor: 'pointBackgroundColor',\r\n\t\tborderColor: 'pointBorderColor',\r\n\t\tborderWidth: 'pointBorderWidth',\r\n\t\thitRadius: 'pointHitRadius',\r\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\r\n\t\thoverBorderColor: 'pointHoverBorderColor',\r\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\r\n\t\thoverRadius: 'pointHoverRadius',\r\n\t\tpointStyle: 'pointStyle',\r\n\t\tradius: 'pointRadius',\r\n\t\trotation: 'pointRotation'\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar line = meta.dataset;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar scale = me.chart.scale;\r\n\t\tvar config = me._config;\r\n\t\tvar i, ilen;\r\n\r\n\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\tif (config.tension !== undefined && config.lineTension === undefined) {\r\n\t\t\tconfig.lineTension = config.tension;\r\n\t\t}\r\n\r\n\t\t// Utility\r\n\t\tline._scale = scale;\r\n\t\tline._datasetIndex = me.index;\r\n\t\t// Data\r\n\t\tline._children = points;\r\n\t\tline._loop = true;\r\n\t\t// Model\r\n\t\tline._model = me._resolveDatasetElementOptions(line);\r\n\r\n\t\tline.pivot();\r\n\r\n\t\t// Update Points\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(points[i], i, reset);\r\n\t\t}\r\n\r\n\t\t// Update bezier control points\r\n\t\tme.updateBezierControlPoints();\r\n\r\n\t\t// Now pivot the point for animation\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tpoints[i].pivot();\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar scale = me.chart.scale;\r\n\t\tvar pointPosition = scale.getPointPositionForValue(index, dataset.data[index]);\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\t\tvar lineModel = me.getMeta().dataset._model;\r\n\t\tvar x = reset ? scale.xCenter : pointPosition.x;\r\n\t\tvar y = reset ? scale.yCenter : pointPosition.y;\r\n\r\n\t\t// Utility\r\n\t\tpoint._scale = scale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = me.index;\r\n\t\tpoint._index = index;\r\n\r\n\t\t// Desired view properties\r\n\t\tpoint._model = {\r\n\t\t\tx: x, // value not used in dataset scale, but we want a consistent API between scales\r\n\t\t\ty: y,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\t// Appearance\r\n\t\t\tradius: options.radius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\ttension: valueOrDefault$7(custom.tension, lineModel ? lineModel.tension : 0),\r\n\r\n\t\t\t// Tooltip\r\n\t\t\thitRadius: options.hitRadius\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function() {\r\n\t\tvar me = this;\r\n\t\tvar config = me._config;\r\n\t\tvar options = me.chart.options;\r\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\r\n\r\n\t\tvalues.spanGaps = valueOrDefault$7(config.spanGaps, options.spanGaps);\r\n\t\tvalues.tension = valueOrDefault$7(config.lineTension, options.elements.line.tension);\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tupdateBezierControlPoints: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar area = me.chart.chartArea;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar i, ilen, model, controlPoints;\r\n\r\n\t\t// Only consider points that are drawn in case the spanGaps option is used\r\n\t\tif (meta.dataset._model.spanGaps) {\r\n\t\t\tpoints = points.filter(function(pt) {\r\n\t\t\t\treturn !pt._model.skip;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction capControlPoint(pt, min, max) {\r\n\t\t\treturn Math.max(Math.min(pt, max), min);\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tmodel = points[i]._model;\r\n\t\t\tcontrolPoints = helpers$1.splineCurve(\r\n\t\t\t\thelpers$1.previousItem(points, i, true)._model,\r\n\t\t\t\tmodel,\r\n\t\t\t\thelpers$1.nextItem(points, i, true)._model,\r\n\t\t\t\tmodel.tension\r\n\t\t\t);\r\n\r\n\t\t\t// Prevent the bezier going outside of the bounds of the graph\r\n\t\t\tmodel.controlPointPreviousX = capControlPoint(controlPoints.previous.x, area.left, area.right);\r\n\t\t\tmodel.controlPointPreviousY = capControlPoint(controlPoints.previous.y, area.top, area.bottom);\r\n\t\t\tmodel.controlPointNextX = capControlPoint(controlPoints.next.x, area.left, area.right);\r\n\t\t\tmodel.controlPointNextY = capControlPoint(controlPoints.next.y, area.top, area.bottom);\r\n\t\t}\r\n\t},\r\n\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$7(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$7(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$7(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = valueOrDefault$7(options.hoverRadius, options.radius);\r\n\t}\r\n});\n\ncore_defaults._set('scatter', {\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\tid: 'x-axis-1', // need an ID so datasets can reference the scale\r\n\t\t\ttype: 'linear', // scatter should not use a category axis\r\n\t\t\tposition: 'bottom'\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\tid: 'y-axis-1',\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'left'\r\n\t\t}]\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn ''; // doesn't make sense for scatter since data are formatted as a point\r\n\t\t\t},\r\n\t\t\tlabel: function(item) {\r\n\t\t\t\treturn '(' + item.xLabel + ', ' + item.yLabel + ')';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\tscatter: {\r\n\t\t\tshowLine: false\r\n\t\t}\r\n\t}\r\n});\r\n\r\n// Scatter charts use line controllers\r\nvar controller_scatter = controller_line;\n\n// NOTE export a map in which the key represents the controller type, not\r\n// the class, and so must be CamelCase in order to be correctly retrieved\r\n// by the controller in core.controller.js (`controllers[meta.type]`).\r\n\r\nvar controllers = {\r\n\tbar: controller_bar,\r\n\tbubble: controller_bubble,\r\n\tdoughnut: controller_doughnut,\r\n\thorizontalBar: controller_horizontalBar,\r\n\tline: controller_line,\r\n\tpolarArea: controller_polarArea,\r\n\tpie: controller_pie,\r\n\tradar: controller_radar,\r\n\tscatter: controller_scatter\r\n};\n\n/**\r\n * Helper function to get relative position for an event\r\n * @param {Event|IEvent} event - The event to get the position for\r\n * @param {Chart} chart - The chart\r\n * @returns {object} the event position\r\n */\r\nfunction getRelativePosition(e, chart) {\r\n\tif (e.native) {\r\n\t\treturn {\r\n\t\t\tx: e.x,\r\n\t\t\ty: e.y\r\n\t\t};\r\n\t}\r\n\r\n\treturn helpers$1.getRelativePosition(e, chart);\r\n}\r\n\r\n/**\r\n * Helper function to traverse all of the visible elements in the chart\r\n * @param {Chart} chart - the chart\r\n * @param {function} handler - the callback to execute for each visible item\r\n */\r\nfunction parseVisibleItems(chart, handler) {\r\n\tvar metasets = chart._getSortedVisibleDatasetMetas();\r\n\tvar metadata, i, j, ilen, jlen, element;\r\n\r\n\tfor (i = 0, ilen = metasets.length; i < ilen; ++i) {\r\n\t\tmetadata = metasets[i].data;\r\n\t\tfor (j = 0, jlen = metadata.length; j < jlen; ++j) {\r\n\t\t\telement = metadata[j];\r\n\t\t\tif (!element._view.skip) {\r\n\t\t\t\thandler(element);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Helper function to get the items that intersect the event position\r\n * @param {ChartElement[]} items - elements to filter\r\n * @param {object} position - the point to be nearest to\r\n * @return {ChartElement[]} the nearest items\r\n */\r\nfunction getIntersectItems(chart, position) {\r\n\tvar elements = [];\r\n\r\n\tparseVisibleItems(chart, function(element) {\r\n\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\telements.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn elements;\r\n}\r\n\r\n/**\r\n * Helper function to get the items nearest to the event position considering all visible items in teh chart\r\n * @param {Chart} chart - the chart to look at elements from\r\n * @param {object} position - the point to be nearest to\r\n * @param {boolean} intersect - if true, only consider items that intersect the position\r\n * @param {function} distanceMetric - function to provide the distance between points\r\n * @return {ChartElement[]} the nearest items\r\n */\r\nfunction getNearestItems(chart, position, intersect, distanceMetric) {\r\n\tvar minDistance = Number.POSITIVE_INFINITY;\r\n\tvar nearestItems = [];\r\n\r\n\tparseVisibleItems(chart, function(element) {\r\n\t\tif (intersect && !element.inRange(position.x, position.y)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar center = element.getCenterPoint();\r\n\t\tvar distance = distanceMetric(position, center);\r\n\t\tif (distance < minDistance) {\r\n\t\t\tnearestItems = [element];\r\n\t\t\tminDistance = distance;\r\n\t\t} else if (distance === minDistance) {\r\n\t\t\t// Can have multiple items at the same distance in which case we sort by size\r\n\t\t\tnearestItems.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn nearestItems;\r\n}\r\n\r\n/**\r\n * Get a distance metric function for two points based on the\r\n * axis mode setting\r\n * @param {string} axis - the axis mode. x|y|xy\r\n */\r\nfunction getDistanceMetricForAxis(axis) {\r\n\tvar useX = axis.indexOf('x') !== -1;\r\n\tvar useY = axis.indexOf('y') !== -1;\r\n\r\n\treturn function(pt1, pt2) {\r\n\t\tvar deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\r\n\t\tvar deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\r\n\t\treturn Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\r\n\t};\r\n}\r\n\r\nfunction indexMode(chart, e, options) {\r\n\tvar position = getRelativePosition(e, chart);\r\n\t// Default axis for index mode is 'x' to match old behaviour\r\n\toptions.axis = options.axis || 'x';\r\n\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\r\n\tvar elements = [];\r\n\r\n\tif (!items.length) {\r\n\t\treturn [];\r\n\t}\r\n\r\n\tchart._getSortedVisibleDatasetMetas().forEach(function(meta) {\r\n\t\tvar element = meta.data[items[0]._index];\r\n\r\n\t\t// don't count items that are skipped (null data)\r\n\t\tif (element && !element._view.skip) {\r\n\t\t\telements.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn elements;\r\n}\r\n\r\n/**\r\n * @interface IInteractionOptions\r\n */\r\n/**\r\n * If true, only consider items that intersect the point\r\n * @name IInterfaceOptions#boolean\r\n * @type Boolean\r\n */\r\n\r\n/**\r\n * Contains interaction related functions\r\n * @namespace Chart.Interaction\r\n */\r\nvar core_interaction = {\r\n\t// Helper function for different modes\r\n\tmodes: {\r\n\t\tsingle: function(chart, e) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar elements = [];\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\telements.push(element);\r\n\t\t\t\t\treturn elements;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\treturn elements.slice(0, 1);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @function Chart.Interaction.modes.label\r\n\t\t * @deprecated since version 2.4.0\r\n\t\t * @todo remove at version 3\r\n\t\t * @private\r\n\t\t */\r\n\t\tlabel: indexMode,\r\n\r\n\t\t/**\r\n\t\t * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something\r\n\t\t * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item\r\n\t\t * @function Chart.Interaction.modes.index\r\n\t\t * @since v2.4.0\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use during interaction\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tindex: indexMode,\r\n\r\n\t\t/**\r\n\t\t * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something\r\n\t\t * If the options.intersect is false, we find the nearest item and return the items in that dataset\r\n\t\t * @function Chart.Interaction.modes.dataset\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use during interaction\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tdataset: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\toptions.axis = options.axis || 'xy';\r\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\t\t\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\r\n\r\n\t\t\tif (items.length > 0) {\r\n\t\t\t\titems = chart.getDatasetMeta(items[0]._datasetIndex).data;\r\n\t\t\t}\r\n\r\n\t\t\treturn items;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @function Chart.Interaction.modes.x-axis\r\n\t\t * @deprecated since version 2.4.0. Use index mode and intersect == true\r\n\t\t * @todo remove at version 3\r\n\t\t * @private\r\n\t\t */\r\n\t\t'x-axis': function(chart, e) {\r\n\t\t\treturn indexMode(chart, e, {intersect: false});\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Point mode returns all elements that hit test based on the event position\r\n\t\t * of the event\r\n\t\t * @function Chart.Interaction.modes.intersect\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tpoint: function(chart, e) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\treturn getIntersectItems(chart, position);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * nearest mode returns the element closest to the point\r\n\t\t * @function Chart.Interaction.modes.intersect\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tnearest: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\toptions.axis = options.axis || 'xy';\r\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\t\t\treturn getNearestItems(chart, position, options.intersect, distanceMetric);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * x mode returns the elements that hit-test at the current x coordinate\r\n\t\t * @function Chart.Interaction.modes.x\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tx: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar items = [];\r\n\t\t\tvar intersectsItem = false;\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inXRange(position.x)) {\r\n\t\t\t\t\titems.push(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\tintersectsItem = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// If we want to trigger on an intersect and we don't have any items\r\n\t\t\t// that intersect the position, return nothing\r\n\t\t\tif (options.intersect && !intersectsItem) {\r\n\t\t\t\titems = [];\r\n\t\t\t}\r\n\t\t\treturn items;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * y mode returns the elements that hit-test at the current y coordinate\r\n\t\t * @function Chart.Interaction.modes.y\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\ty: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar items = [];\r\n\t\t\tvar intersectsItem = false;\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inYRange(position.y)) {\r\n\t\t\t\t\titems.push(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\tintersectsItem = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// If we want to trigger on an intersect and we don't have any items\r\n\t\t\t// that intersect the position, return nothing\r\n\t\t\tif (options.intersect && !intersectsItem) {\r\n\t\t\t\titems = [];\r\n\t\t\t}\r\n\t\t\treturn items;\r\n\t\t}\r\n\t}\r\n};\n\nvar extend = helpers$1.extend;\r\n\r\nfunction filterByPosition(array, position) {\r\n\treturn helpers$1.where(array, function(v) {\r\n\t\treturn v.pos === position;\r\n\t});\r\n}\r\n\r\nfunction sortByWeight(array, reverse) {\r\n\treturn array.sort(function(a, b) {\r\n\t\tvar v0 = reverse ? b : a;\r\n\t\tvar v1 = reverse ? a : b;\r\n\t\treturn v0.weight === v1.weight ?\r\n\t\t\tv0.index - v1.index :\r\n\t\t\tv0.weight - v1.weight;\r\n\t});\r\n}\r\n\r\nfunction wrapBoxes(boxes) {\r\n\tvar layoutBoxes = [];\r\n\tvar i, ilen, box;\r\n\r\n\tfor (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\r\n\t\tbox = boxes[i];\r\n\t\tlayoutBoxes.push({\r\n\t\t\tindex: i,\r\n\t\t\tbox: box,\r\n\t\t\tpos: box.position,\r\n\t\t\thorizontal: box.isHorizontal(),\r\n\t\t\tweight: box.weight\r\n\t\t});\r\n\t}\r\n\treturn layoutBoxes;\r\n}\r\n\r\nfunction setLayoutDims(layouts, params) {\r\n\tvar i, ilen, layout;\r\n\tfor (i = 0, ilen = layouts.length; i < ilen; ++i) {\r\n\t\tlayout = layouts[i];\r\n\t\t// store width used instead of chartArea.w in fitBoxes\r\n\t\tlayout.width = layout.horizontal\r\n\t\t\t? layout.box.fullWidth && params.availableWidth\r\n\t\t\t: params.vBoxMaxWidth;\r\n\t\t// store height used instead of chartArea.h in fitBoxes\r\n\t\tlayout.height = layout.horizontal && params.hBoxMaxHeight;\r\n\t}\r\n}\r\n\r\nfunction buildLayoutBoxes(boxes) {\r\n\tvar layoutBoxes = wrapBoxes(boxes);\r\n\tvar left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\r\n\tvar right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\r\n\tvar top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\r\n\tvar bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\r\n\r\n\treturn {\r\n\t\tleftAndTop: left.concat(top),\r\n\t\trightAndBottom: right.concat(bottom),\r\n\t\tchartArea: filterByPosition(layoutBoxes, 'chartArea'),\r\n\t\tvertical: left.concat(right),\r\n\t\thorizontal: top.concat(bottom)\r\n\t};\r\n}\r\n\r\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\r\n\treturn Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\r\n}\r\n\r\nfunction updateDims(chartArea, params, layout) {\r\n\tvar box = layout.box;\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\tvar newWidth, newHeight;\r\n\r\n\tif (layout.size) {\r\n\t\t// this layout was already counted for, lets first reduce old size\r\n\t\tchartArea[layout.pos] -= layout.size;\r\n\t}\r\n\tlayout.size = layout.horizontal ? box.height : box.width;\r\n\tchartArea[layout.pos] += layout.size;\r\n\r\n\tif (box.getPadding) {\r\n\t\tvar boxPadding = box.getPadding();\r\n\t\tmaxPadding.top = Math.max(maxPadding.top, boxPadding.top);\r\n\t\tmaxPadding.left = Math.max(maxPadding.left, boxPadding.left);\r\n\t\tmaxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\r\n\t\tmaxPadding.right = Math.max(maxPadding.right, boxPadding.right);\r\n\t}\r\n\r\n\tnewWidth = params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right');\r\n\tnewHeight = params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom');\r\n\r\n\tif (newWidth !== chartArea.w || newHeight !== chartArea.h) {\r\n\t\tchartArea.w = newWidth;\r\n\t\tchartArea.h = newHeight;\r\n\r\n\t\t// return true if chart area changed in layout's direction\r\n\t\tvar sizes = layout.horizontal ? [newWidth, chartArea.w] : [newHeight, chartArea.h];\r\n\t\treturn sizes[0] !== sizes[1] && (!isNaN(sizes[0]) || !isNaN(sizes[1]));\r\n\t}\r\n}\r\n\r\nfunction handleMaxPadding(chartArea) {\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\r\n\tfunction updatePos(pos) {\r\n\t\tvar change = Math.max(maxPadding[pos] - chartArea[pos], 0);\r\n\t\tchartArea[pos] += change;\r\n\t\treturn change;\r\n\t}\r\n\tchartArea.y += updatePos('top');\r\n\tchartArea.x += updatePos('left');\r\n\tupdatePos('right');\r\n\tupdatePos('bottom');\r\n}\r\n\r\nfunction getMargins(horizontal, chartArea) {\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\r\n\tfunction marginForPositions(positions) {\r\n\t\tvar margin = {left: 0, top: 0, right: 0, bottom: 0};\r\n\t\tpositions.forEach(function(pos) {\r\n\t\t\tmargin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\r\n\t\t});\r\n\t\treturn margin;\r\n\t}\r\n\r\n\treturn horizontal\r\n\t\t? marginForPositions(['left', 'right'])\r\n\t\t: marginForPositions(['top', 'bottom']);\r\n}\r\n\r\nfunction fitBoxes(boxes, chartArea, params) {\r\n\tvar refitBoxes = [];\r\n\tvar i, ilen, layout, box, refit, changed;\r\n\r\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\r\n\t\tlayout = boxes[i];\r\n\t\tbox = layout.box;\r\n\r\n\t\tbox.update(\r\n\t\t\tlayout.width || chartArea.w,\r\n\t\t\tlayout.height || chartArea.h,\r\n\t\t\tgetMargins(layout.horizontal, chartArea)\r\n\t\t);\r\n\t\tif (updateDims(chartArea, params, layout)) {\r\n\t\t\tchanged = true;\r\n\t\t\tif (refitBoxes.length) {\r\n\t\t\t\t// Dimensions changed and there were non full width boxes before this\r\n\t\t\t\t// -> we have to refit those\r\n\t\t\t\trefit = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (!box.fullWidth) { // fullWidth boxes don't need to be re-fitted in any case\r\n\t\t\trefitBoxes.push(layout);\r\n\t\t}\r\n\t}\r\n\r\n\treturn refit ? fitBoxes(refitBoxes, chartArea, params) || changed : changed;\r\n}\r\n\r\nfunction placeBoxes(boxes, chartArea, params) {\r\n\tvar userPadding = params.padding;\r\n\tvar x = chartArea.x;\r\n\tvar y = chartArea.y;\r\n\tvar i, ilen, layout, box;\r\n\r\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\r\n\t\tlayout = boxes[i];\r\n\t\tbox = layout.box;\r\n\t\tif (layout.horizontal) {\r\n\t\t\tbox.left = box.fullWidth ? userPadding.left : chartArea.left;\r\n\t\t\tbox.right = box.fullWidth ? params.outerWidth - userPadding.right : chartArea.left + chartArea.w;\r\n\t\t\tbox.top = y;\r\n\t\t\tbox.bottom = y + box.height;\r\n\t\t\tbox.width = box.right - box.left;\r\n\t\t\ty = box.bottom;\r\n\t\t} else {\r\n\t\t\tbox.left = x;\r\n\t\t\tbox.right = x + box.width;\r\n\t\t\tbox.top = chartArea.top;\r\n\t\t\tbox.bottom = chartArea.top + chartArea.h;\r\n\t\t\tbox.height = box.bottom - box.top;\r\n\t\t\tx = box.right;\r\n\t\t}\r\n\t}\r\n\r\n\tchartArea.x = x;\r\n\tchartArea.y = y;\r\n}\r\n\r\ncore_defaults._set('global', {\r\n\tlayout: {\r\n\t\tpadding: {\r\n\t\t\ttop: 0,\r\n\t\t\tright: 0,\r\n\t\t\tbottom: 0,\r\n\t\t\tleft: 0\r\n\t\t}\r\n\t}\r\n});\r\n\r\n/**\r\n * @interface ILayoutItem\r\n * @prop {string} position - The position of the item in the chart layout. Possible values are\r\n * 'left', 'top', 'right', 'bottom', and 'chartArea'\r\n * @prop {number} weight - The weight used to sort the item. Higher weights are further away from the chart area\r\n * @prop {boolean} fullWidth - if true, and the item is horizontal, then push vertical boxes down\r\n * @prop {function} isHorizontal - returns true if the layout item is horizontal (ie. top or bottom)\r\n * @prop {function} update - Takes two parameters: width and height. Returns size of item\r\n * @prop {function} getPadding - Returns an object with padding on the edges\r\n * @prop {number} width - Width of item. Must be valid after update()\r\n * @prop {number} height - Height of item. Must be valid after update()\r\n * @prop {number} left - Left edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} top - Top edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} right - Right edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} bottom - Bottom edge of the item. Set by layout system and cannot be used in update\r\n */\r\n\r\n// The layout service is very self explanatory. It's responsible for the layout within a chart.\r\n// Scales, Legends and Plugins all rely on the layout service and can easily register to be placed anywhere they need\r\n// It is this service's responsibility of carrying out that layout.\r\nvar core_layouts = {\r\n\tdefaults: {},\r\n\r\n\t/**\r\n\t * Register a box to a chart.\r\n\t * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title.\r\n\t * @param {Chart} chart - the chart to use\r\n\t * @param {ILayoutItem} item - the item to add to be layed out\r\n\t */\r\n\taddBox: function(chart, item) {\r\n\t\tif (!chart.boxes) {\r\n\t\t\tchart.boxes = [];\r\n\t\t}\r\n\r\n\t\t// initialize item with default values\r\n\t\titem.fullWidth = item.fullWidth || false;\r\n\t\titem.position = item.position || 'top';\r\n\t\titem.weight = item.weight || 0;\r\n\t\titem._layers = item._layers || function() {\r\n\t\t\treturn [{\r\n\t\t\t\tz: 0,\r\n\t\t\t\tdraw: function() {\r\n\t\t\t\t\titem.draw.apply(item, arguments);\r\n\t\t\t\t}\r\n\t\t\t}];\r\n\t\t};\r\n\r\n\t\tchart.boxes.push(item);\r\n\t},\r\n\r\n\t/**\r\n\t * Remove a layoutItem from a chart\r\n\t * @param {Chart} chart - the chart to remove the box from\r\n\t * @param {ILayoutItem} layoutItem - the item to remove from the layout\r\n\t */\r\n\tremoveBox: function(chart, layoutItem) {\r\n\t\tvar index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\r\n\t\tif (index !== -1) {\r\n\t\t\tchart.boxes.splice(index, 1);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Sets (or updates) options on the given `item`.\r\n\t * @param {Chart} chart - the chart in which the item lives (or will be added to)\r\n\t * @param {ILayoutItem} item - the item to configure with the given options\r\n\t * @param {object} options - the new item options.\r\n\t */\r\n\tconfigure: function(chart, item, options) {\r\n\t\tvar props = ['fullWidth', 'position', 'weight'];\r\n\t\tvar ilen = props.length;\r\n\t\tvar i = 0;\r\n\t\tvar prop;\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tprop = props[i];\r\n\t\t\tif (options.hasOwnProperty(prop)) {\r\n\t\t\t\titem[prop] = options[prop];\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Fits boxes of the given chart into the given size by having each box measure itself\r\n\t * then running a fitting algorithm\r\n\t * @param {Chart} chart - the chart\r\n\t * @param {number} width - the width to fit into\r\n\t * @param {number} height - the height to fit into\r\n\t */\r\n\tupdate: function(chart, width, height) {\r\n\t\tif (!chart) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar layoutOptions = chart.options.layout || {};\r\n\t\tvar padding = helpers$1.options.toPadding(layoutOptions.padding);\r\n\r\n\t\tvar availableWidth = width - padding.width;\r\n\t\tvar availableHeight = height - padding.height;\r\n\t\tvar boxes = buildLayoutBoxes(chart.boxes);\r\n\t\tvar verticalBoxes = boxes.vertical;\r\n\t\tvar horizontalBoxes = boxes.horizontal;\r\n\r\n\t\t// Essentially we now have any number of boxes on each of the 4 sides.\r\n\t\t// Our canvas looks like the following.\r\n\t\t// The areas L1 and L2 are the left axes. R1 is the right axis, T1 is the top axis and\r\n\t\t// B1 is the bottom axis\r\n\t\t// There are also 4 quadrant-like locations (left to right instead of clockwise) reserved for chart overlays\r\n\t\t// These locations are single-box locations only, when trying to register a chartArea location that is already taken,\r\n\t\t// an error will be thrown.\r\n\t\t//\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | T1 (Full Width) |\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | | | T2 | |\r\n\t\t// | |----|-------------------------------------|----|\r\n\t\t// | | | C1 | | C2 | |\r\n\t\t// | | |----| |----| |\r\n\t\t// | | | | |\r\n\t\t// | L1 | L2 | ChartArea (C0) | R1 |\r\n\t\t// | | | | |\r\n\t\t// | | |----| |----| |\r\n\t\t// | | | C3 | | C4 | |\r\n\t\t// | |----|-------------------------------------|----|\r\n\t\t// | | | B1 | |\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | B2 (Full Width) |\r\n\t\t// |----------------------------------------------------|\r\n\t\t//\r\n\r\n\t\tvar params = Object.freeze({\r\n\t\t\touterWidth: width,\r\n\t\t\touterHeight: height,\r\n\t\t\tpadding: padding,\r\n\t\t\tavailableWidth: availableWidth,\r\n\t\t\tvBoxMaxWidth: availableWidth / 2 / verticalBoxes.length,\r\n\t\t\thBoxMaxHeight: availableHeight / 2\r\n\t\t});\r\n\t\tvar chartArea = extend({\r\n\t\t\tmaxPadding: extend({}, padding),\r\n\t\t\tw: availableWidth,\r\n\t\t\th: availableHeight,\r\n\t\t\tx: padding.left,\r\n\t\t\ty: padding.top\r\n\t\t}, padding);\r\n\r\n\t\tsetLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\r\n\r\n\t\t// First fit vertical boxes\r\n\t\tfitBoxes(verticalBoxes, chartArea, params);\r\n\r\n\t\t// Then fit horizontal boxes\r\n\t\tif (fitBoxes(horizontalBoxes, chartArea, params)) {\r\n\t\t\t// if the area changed, re-fit vertical boxes\r\n\t\t\tfitBoxes(verticalBoxes, chartArea, params);\r\n\t\t}\r\n\r\n\t\thandleMaxPadding(chartArea);\r\n\r\n\t\t// Finally place the boxes to correct coordinates\r\n\t\tplaceBoxes(boxes.leftAndTop, chartArea, params);\r\n\r\n\t\t// Move to opposite side of chart\r\n\t\tchartArea.x += chartArea.w;\r\n\t\tchartArea.y += chartArea.h;\r\n\r\n\t\tplaceBoxes(boxes.rightAndBottom, chartArea, params);\r\n\r\n\t\tchart.chartArea = {\r\n\t\t\tleft: chartArea.left,\r\n\t\t\ttop: chartArea.top,\r\n\t\t\tright: chartArea.left + chartArea.w,\r\n\t\t\tbottom: chartArea.top + chartArea.h\r\n\t\t};\r\n\r\n\t\t// Finally update boxes in chartArea (radial scale for example)\r\n\t\thelpers$1.each(boxes.chartArea, function(layout) {\r\n\t\t\tvar box = layout.box;\r\n\t\t\textend(box, chart.chartArea);\r\n\t\t\tbox.update(chartArea.w, chartArea.h);\r\n\t\t});\r\n\t}\r\n};\n\n/**\r\n * Platform fallback implementation (minimal).\r\n * @see https://github.com/chartjs/Chart.js/pull/4591#issuecomment-319575939\r\n */\r\n\r\nvar platform_basic = {\r\n\tacquireContext: function(item) {\r\n\t\tif (item && item.canvas) {\r\n\t\t\t// Support for any object associated to a canvas (including a context2d)\r\n\t\t\titem = item.canvas;\r\n\t\t}\r\n\r\n\t\treturn item && item.getContext('2d') || null;\r\n\t}\r\n};\n\nvar platform_dom = \"/*\\r\\n * DOM element rendering detection\\r\\n * https://davidwalsh.name/detect-node-insertion\\r\\n */\\r\\n@keyframes chartjs-render-animation {\\r\\n\\tfrom { opacity: 0.99; }\\r\\n\\tto { opacity: 1; }\\r\\n}\\r\\n\\r\\n.chartjs-render-monitor {\\r\\n\\tanimation: chartjs-render-animation 0.001s;\\r\\n}\\r\\n\\r\\n/*\\r\\n * DOM element resizing detection\\r\\n * https://github.com/marcj/css-element-queries\\r\\n */\\r\\n.chartjs-size-monitor,\\r\\n.chartjs-size-monitor-expand,\\r\\n.chartjs-size-monitor-shrink {\\r\\n\\tposition: absolute;\\r\\n\\tdirection: ltr;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n\\tright: 0;\\r\\n\\tbottom: 0;\\r\\n\\toverflow: hidden;\\r\\n\\tpointer-events: none;\\r\\n\\tvisibility: hidden;\\r\\n\\tz-index: -1;\\r\\n}\\r\\n\\r\\n.chartjs-size-monitor-expand > div {\\r\\n\\tposition: absolute;\\r\\n\\twidth: 1000000px;\\r\\n\\theight: 1000000px;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n}\\r\\n\\r\\n.chartjs-size-monitor-shrink > div {\\r\\n\\tposition: absolute;\\r\\n\\twidth: 200%;\\r\\n\\theight: 200%;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n}\\r\\n\";\n\nvar platform_dom$1 = /*#__PURE__*/Object.freeze({\n__proto__: null,\n'default': platform_dom\n});\n\nvar stylesheet = getCjsExportFromNamespace(platform_dom$1);\n\nvar EXPANDO_KEY = '$chartjs';\r\nvar CSS_PREFIX = 'chartjs-';\r\nvar CSS_SIZE_MONITOR = CSS_PREFIX + 'size-monitor';\r\nvar CSS_RENDER_MONITOR = CSS_PREFIX + 'render-monitor';\r\nvar CSS_RENDER_ANIMATION = CSS_PREFIX + 'render-animation';\r\nvar ANIMATION_START_EVENTS = ['animationstart', 'webkitAnimationStart'];\r\n\r\n/**\r\n * DOM event types -> Chart.js event types.\r\n * Note: only events with different types are mapped.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/Events\r\n */\r\nvar EVENT_TYPES = {\r\n\ttouchstart: 'mousedown',\r\n\ttouchmove: 'mousemove',\r\n\ttouchend: 'mouseup',\r\n\tpointerenter: 'mouseenter',\r\n\tpointerdown: 'mousedown',\r\n\tpointermove: 'mousemove',\r\n\tpointerup: 'mouseup',\r\n\tpointerleave: 'mouseout',\r\n\tpointerout: 'mouseout'\r\n};\r\n\r\n/**\r\n * The \"used\" size is the final value of a dimension property after all calculations have\r\n * been performed. This method uses the computed style of `element` but returns undefined\r\n * if the computed style is not expressed in pixels. That can happen in some cases where\r\n * `element` has a size relative to its parent and this last one is not yet displayed,\r\n * for example because of `display: none` on a parent node.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\r\n * @returns {number} Size in pixels or undefined if unknown.\r\n */\r\nfunction readUsedSize(element, property) {\r\n\tvar value = helpers$1.getStyle(element, property);\r\n\tvar matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\r\n\treturn matches ? Number(matches[1]) : undefined;\r\n}\r\n\r\n/**\r\n * Initializes the canvas style and render size without modifying the canvas display size,\r\n * since responsiveness is handled by the controller.resize() method. The config is used\r\n * to determine the aspect ratio to apply in case no explicit height has been specified.\r\n */\r\nfunction initCanvas(canvas, config) {\r\n\tvar style = canvas.style;\r\n\r\n\t// NOTE(SB) canvas.getAttribute('width') !== canvas.width: in the first case it\r\n\t// returns null or '' if no explicit value has been set to the canvas attribute.\r\n\tvar renderHeight = canvas.getAttribute('height');\r\n\tvar renderWidth = canvas.getAttribute('width');\r\n\r\n\t// Chart.js modifies some canvas values that we want to restore on destroy\r\n\tcanvas[EXPANDO_KEY] = {\r\n\t\tinitial: {\r\n\t\t\theight: renderHeight,\r\n\t\t\twidth: renderWidth,\r\n\t\t\tstyle: {\r\n\t\t\t\tdisplay: style.display,\r\n\t\t\t\theight: style.height,\r\n\t\t\t\twidth: style.width\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Force canvas to display as block to avoid extra space caused by inline\r\n\t// elements, which would interfere with the responsive resize process.\r\n\t// https://github.com/chartjs/Chart.js/issues/2538\r\n\tstyle.display = style.display || 'block';\r\n\r\n\tif (renderWidth === null || renderWidth === '') {\r\n\t\tvar displayWidth = readUsedSize(canvas, 'width');\r\n\t\tif (displayWidth !== undefined) {\r\n\t\t\tcanvas.width = displayWidth;\r\n\t\t}\r\n\t}\r\n\r\n\tif (renderHeight === null || renderHeight === '') {\r\n\t\tif (canvas.style.height === '') {\r\n\t\t\t// If no explicit render height and style height, let's apply the aspect ratio,\r\n\t\t\t// which one can be specified by the user but also by charts as default option\r\n\t\t\t// (i.e. options.aspectRatio). If not specified, use canvas aspect ratio of 2.\r\n\t\t\tcanvas.height = canvas.width / (config.options.aspectRatio || 2);\r\n\t\t} else {\r\n\t\t\tvar displayHeight = readUsedSize(canvas, 'height');\r\n\t\t\tif (displayWidth !== undefined) {\r\n\t\t\t\tcanvas.height = displayHeight;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn canvas;\r\n}\r\n\r\n/**\r\n * Detects support for options object argument in addEventListener.\r\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\r\n * @private\r\n */\r\nvar supportsEventListenerOptions = (function() {\r\n\tvar supports = false;\r\n\ttry {\r\n\t\tvar options = Object.defineProperty({}, 'passive', {\r\n\t\t\t// eslint-disable-next-line getter-return\r\n\t\t\tget: function() {\r\n\t\t\t\tsupports = true;\r\n\t\t\t}\r\n\t\t});\r\n\t\twindow.addEventListener('e', null, options);\r\n\t} catch (e) {\r\n\t\t// continue regardless of error\r\n\t}\r\n\treturn supports;\r\n}());\r\n\r\n// Default passive to true as expected by Chrome for 'touchstart' and 'touchend' events.\r\n// https://github.com/chartjs/Chart.js/issues/4287\r\nvar eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\r\n\r\nfunction addListener(node, type, listener) {\r\n\tnode.addEventListener(type, listener, eventListenerOptions);\r\n}\r\n\r\nfunction removeListener(node, type, listener) {\r\n\tnode.removeEventListener(type, listener, eventListenerOptions);\r\n}\r\n\r\nfunction createEvent(type, chart, x, y, nativeEvent) {\r\n\treturn {\r\n\t\ttype: type,\r\n\t\tchart: chart,\r\n\t\tnative: nativeEvent || null,\r\n\t\tx: x !== undefined ? x : null,\r\n\t\ty: y !== undefined ? y : null,\r\n\t};\r\n}\r\n\r\nfunction fromNativeEvent(event, chart) {\r\n\tvar type = EVENT_TYPES[event.type] || event.type;\r\n\tvar pos = helpers$1.getRelativePosition(event, chart);\r\n\treturn createEvent(type, chart, pos.x, pos.y, event);\r\n}\r\n\r\nfunction throttled(fn, thisArg) {\r\n\tvar ticking = false;\r\n\tvar args = [];\r\n\r\n\treturn function() {\r\n\t\targs = Array.prototype.slice.call(arguments);\r\n\t\tthisArg = thisArg || this;\r\n\r\n\t\tif (!ticking) {\r\n\t\t\tticking = true;\r\n\t\t\thelpers$1.requestAnimFrame.call(window, function() {\r\n\t\t\t\tticking = false;\r\n\t\t\t\tfn.apply(thisArg, args);\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction createDiv(cls) {\r\n\tvar el = document.createElement('div');\r\n\tel.className = cls || '';\r\n\treturn el;\r\n}\r\n\r\n// Implementation based on https://github.com/marcj/css-element-queries\r\nfunction createResizer(handler) {\r\n\tvar maxSize = 1000000;\r\n\r\n\t// NOTE(SB) Don't use innerHTML because it could be considered unsafe.\r\n\t// https://github.com/chartjs/Chart.js/issues/5902\r\n\tvar resizer = createDiv(CSS_SIZE_MONITOR);\r\n\tvar expand = createDiv(CSS_SIZE_MONITOR + '-expand');\r\n\tvar shrink = createDiv(CSS_SIZE_MONITOR + '-shrink');\r\n\r\n\texpand.appendChild(createDiv());\r\n\tshrink.appendChild(createDiv());\r\n\r\n\tresizer.appendChild(expand);\r\n\tresizer.appendChild(shrink);\r\n\tresizer._reset = function() {\r\n\t\texpand.scrollLeft = maxSize;\r\n\t\texpand.scrollTop = maxSize;\r\n\t\tshrink.scrollLeft = maxSize;\r\n\t\tshrink.scrollTop = maxSize;\r\n\t};\r\n\r\n\tvar onScroll = function() {\r\n\t\tresizer._reset();\r\n\t\thandler();\r\n\t};\r\n\r\n\taddListener(expand, 'scroll', onScroll.bind(expand, 'expand'));\r\n\taddListener(shrink, 'scroll', onScroll.bind(shrink, 'shrink'));\r\n\r\n\treturn resizer;\r\n}\r\n\r\n// https://davidwalsh.name/detect-node-insertion\r\nfunction watchForRender(node, handler) {\r\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\r\n\tvar proxy = expando.renderProxy = function(e) {\r\n\t\tif (e.animationName === CSS_RENDER_ANIMATION) {\r\n\t\t\thandler();\r\n\t\t}\r\n\t};\r\n\r\n\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\r\n\t\taddListener(node, type, proxy);\r\n\t});\r\n\r\n\t// #4737: Chrome might skip the CSS animation when the CSS_RENDER_MONITOR class\r\n\t// is removed then added back immediately (same animation frame?). Accessing the\r\n\t// `offsetParent` property will force a reflow and re-evaluate the CSS animation.\r\n\t// https://gist.github.com/paulirish/5d52fb081b3570c81e3a#box-metrics\r\n\t// https://github.com/chartjs/Chart.js/issues/4737\r\n\texpando.reflow = !!node.offsetParent;\r\n\r\n\tnode.classList.add(CSS_RENDER_MONITOR);\r\n}\r\n\r\nfunction unwatchForRender(node) {\r\n\tvar expando = node[EXPANDO_KEY] || {};\r\n\tvar proxy = expando.renderProxy;\r\n\r\n\tif (proxy) {\r\n\t\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\r\n\t\t\tremoveListener(node, type, proxy);\r\n\t\t});\r\n\r\n\t\tdelete expando.renderProxy;\r\n\t}\r\n\r\n\tnode.classList.remove(CSS_RENDER_MONITOR);\r\n}\r\n\r\nfunction addResizeListener(node, listener, chart) {\r\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\r\n\r\n\t// Let's keep track of this added resizer and thus avoid DOM query when removing it.\r\n\tvar resizer = expando.resizer = createResizer(throttled(function() {\r\n\t\tif (expando.resizer) {\r\n\t\t\tvar container = chart.options.maintainAspectRatio && node.parentNode;\r\n\t\t\tvar w = container ? container.clientWidth : 0;\r\n\t\t\tlistener(createEvent('resize', chart));\r\n\t\t\tif (container && container.clientWidth < w && chart.canvas) {\r\n\t\t\t\t// If the container size shrank during chart resize, let's assume\r\n\t\t\t\t// scrollbar appeared. So we resize again with the scrollbar visible -\r\n\t\t\t\t// effectively making chart smaller and the scrollbar hidden again.\r\n\t\t\t\t// Because we are inside `throttled`, and currently `ticking`, scroll\r\n\t\t\t\t// events are ignored during this whole 2 resize process.\r\n\t\t\t\t// If we assumed wrong and something else happened, we are resizing\r\n\t\t\t\t// twice in a frame (potential performance issue)\r\n\t\t\t\tlistener(createEvent('resize', chart));\r\n\t\t\t}\r\n\t\t}\r\n\t}));\r\n\r\n\t// The resizer needs to be attached to the node parent, so we first need to be\r\n\t// sure that `node` is attached to the DOM before injecting the resizer element.\r\n\twatchForRender(node, function() {\r\n\t\tif (expando.resizer) {\r\n\t\t\tvar container = node.parentNode;\r\n\t\t\tif (container && container !== resizer.parentNode) {\r\n\t\t\t\tcontainer.insertBefore(resizer, container.firstChild);\r\n\t\t\t}\r\n\r\n\t\t\t// The container size might have changed, let's reset the resizer state.\r\n\t\t\tresizer._reset();\r\n\t\t}\r\n\t});\r\n}\r\n\r\nfunction removeResizeListener(node) {\r\n\tvar expando = node[EXPANDO_KEY] || {};\r\n\tvar resizer = expando.resizer;\r\n\r\n\tdelete expando.resizer;\r\n\tunwatchForRender(node);\r\n\r\n\tif (resizer && resizer.parentNode) {\r\n\t\tresizer.parentNode.removeChild(resizer);\r\n\t}\r\n}\r\n\r\n/**\r\n * Injects CSS styles inline if the styles are not already present.\r\n * @param {HTMLDocument|ShadowRoot} rootNode - the node to contain the