{"version":3,"sources":["webpack:///./node_modules/vue-chartjs/es/mixins/index.js","webpack:///./node_modules/vue-chartjs/es/BaseCharts.js","webpack:///./node_modules/chart.js/dist/Chart.js"],"names":["dataHandler","newData","oldData","chart","this","$data","_chart","newDatasetLabels","datasets","map","dataset","label","oldDatasetLabels","oldLabels","JSON","stringify","newLabels","length","forEach","i","oldDatasetKeys","Object","keys","newDatasetKeys","deletionKeys","filter","key","indexOf","attribute","deletionKey","data","hasOwnProperty","labels","$emit","xLabels","yLabels","update","destroy","renderChart","chartData","options","reactiveData","watch","reactiveProp","props","type","required","default","generateChart","chartId","chartType","render","createElement","style","styles","class","cssClasses","attrs","id","width","height","ref","String","Number","plugins","Array","_plugins","methods","addPlugin","plugin","push","generateLegend","$refs","canvas","getContext","beforeDestroy","Bar","Line","global","factory","module","exports","e","moment","conversions","rgb2hsl","rgb2hsv","rgb2hwb","rgb2cmyk","rgb2keyword","rgb2xyz","rgb2lab","rgb2lch","hsl2rgb","hsl2hsv","hsl2hwb","hsl2cmyk","hsl2keyword","hsv2rgb","hsv2hsl","hsv2hwb","hsv2cmyk","hsv2keyword","hwb2rgb","hwb2hsl","hwb2hsv","hwb2cmyk","hwb2keyword","cmyk2rgb","cmyk2hsl","cmyk2hsv","cmyk2hwb","cmyk2keyword","keyword2rgb","keyword2hsl","keyword2hsv","keyword2hwb","keyword2cmyk","keyword2lab","keyword2xyz","xyz2rgb","xyz2lab","xyz2lch","lab2xyz","lab2rgb","lab2lch","lch2lab","lch2xyz","lch2rgb","rgb","h","s","l","r","g","b","min","Math","max","delta","v","w","c","m","y","k","reverseKeywords","pow","x","z","a","xyz","args","hsl","t1","t2","t3","val","sv","hsv","hi","floor","f","p","q","t","sl","hwb","n","wh","bl","ratio","cmyk","lab","y2","hr","atan2","PI","sqrt","lch","cos","sin","keyword","cssKeywords","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","convert","Converter","func","arg","prototype","slice","call","arguments","pair","exec","from","to","undefined","round","convs","routeSpace","space","values","getValues","setValues","vals","fspace","colorConvert","colorName","colorString","getRgba","getHsla","getRgb","getHsl","getHwb","getAlpha","hexString","rgbString","rgbaString","percentString","percentaString","hslString","hslaString","hwbString","string","abbr","hex","rgba","per","match","hexAlpha","parseInt","parseFloat","scale","alpha","isNaN","hsla","hexDouble","reverseNames","num","str","toString","toUpperCase","name","Color","obj","valid","lightness","value","whiteness","isValid","setSpace","rgbArray","hslArray","hsvArray","hwbArray","concat","cmykArray","rgbaArray","hslaArray","setChannel","hue","saturation","saturationv","blackness","rgbNumber","luminosity","lum","chan","contrast","color2","lum1","lum2","level","contrastRatio","dark","yiq","light","negate","lighten","darken","saturate","desaturate","whiten","blacken","greyscale","clearer","opaquer","rotate","degrees","mix","mixinColor","weight","color1","w1","w2","toJSON","clone","result","source","target","prop","console","error","spaces","maxes","charAt","capped","chans","sname","index","svalues","window","chartjsColor","helpers","noop","uid","isNullOrUndef","isArray","substr","isObject","isFinite","valueOrDefault","defaultValue","valueAtIndexOrDefault","callback","fn","thisArg","apply","each","loopable","reverse","len","arrayEquals","a0","a1","ilen","v0","v1","klen","_merger","tval","sval","merge","_mergerIf","mergeIf","sources","merger","extend","setFn","inherits","extensions","me","ChartElement","constructor","Surrogate","__super__","helpers_core","callCallback","array","item","fromIndex","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","clear","ctx","clearRect","roundedRect","radius","left","top","right","bottom","moveTo","arc","closePath","rect","drawPoint","rotation","xOffset","yOffset","size","cornerRadius","rad","drawImage","beginPath","lineTo","SQRT1_2","fill","stroke","_isPointInArea","point","area","epsilon","clipArea","save","clip","unclipArea","restore","previous","flip","stepped","steppedLine","midpoint","tension","bezierCurveTo","controlPointPreviousX","controlPointNextX","controlPointPreviousY","controlPointNextY","helpers_canvas","drawRoundedRectangle","defaults","_set","scope","defaultColor","defaultFontColor","defaultFontFamily","defaultFontSize","defaultFontStyle","defaultLineHeight","showLines","core_defaults","toFontString","font","family","helpers_options","toLineHeight","matches","toPadding","_parseFont","globalDefaults","fontSize","fontFamily","lineHeight","fontStyle","resolve","inputs","context","helpers$1","easing","interpolate","start","view","model","ease","actual","origin","c0","c1","Element","configuration","initialize","hidden","pivot","_view","_model","_start","transition","tooltipPosition","hasValue","isNumber","core_element","exports$2","currentStep","numSteps","onAnimationProgress","onAnimationComplete","core_animation","defineProperty","get","set","animation","duration","onProgress","onComplete","core_animations","animations","request","addAnimation","lazy","startTime","Date","now","animating","requestAnimationFrame","cancelAnimation","findIndex","splice","requestAnimFrame","startDigest","advance","nextStep","arrayEvents","listenArrayEvents","listener","_chartjs","listeners","configurable","enumerable","method","base","res","object","unlistenArrayEvents","stub","DatasetController","datasetIndex","datasetElementType","dataElementType","linkScales","addElements","updateIndex","meta","getMeta","getDataset","xAxisID","scales","xAxes","yAxisID","yAxes","getDatasetMeta","getScaleForId","scaleID","_getValueScaleId","_getIndexScaleId","_getValueScale","_getIndexScale","reset","_data","createMetaDataset","_datasetIndex","createMetaData","_index","metaData","addElementAndReset","element","updateElement","buildOrUpdateElements","isExtensible","resyncElements","easingValue","elements","draw","removeHoverStyle","$previousStyle","setHoverStyle","custom","getHoverColor","backgroundColor","borderColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","numMeta","numData","insertElements","count","onDataPush","onDataPop","pop","onDataShift","shift","onDataSplice","onDataUnshift","core_datasetController","borderAlign","element_arc","inLabelRange","mouseX","vm","hoverRadius","inRange","chartX","chartY","pointRelativePosition","getAngleFromPoint","angle","distance","startAngle","endAngle","betweenAngles","withinRadius","innerRadius","outerRadius","getCenterPoint","halfAngle","halfRadius","getArea","centreAngle","rangeFromCentre","angleMargin","sA","eA","pixelMargin","fillStyle","lineWidth","lineJoin","strokeStyle","valueOrDefault$1","line","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","capBezierPoints","element_line","current","currentVM","spanGaps","points","_children","globalOptionLineElements","lastDrawnIndex","_loop","lineCap","setLineDash","lineDashOffset","previousItem","skip","valueOrDefault$2","defaultColor$1","xRange","abs","hitRadius","yRange","mouseY","pointStyle","element_point","inXRange","inYRange","padding","chartArea","defaultColor$2","isVertical","getBarBounds","x1","x2","y1","half","swap","orig","v2","parseBorderSkipped","edge","borderSkipped","horizontal","parseBorderWidth","maxW","maxH","boundingRects","bounds","border","outer","inner","skipX","skipY","rectangle","element_rectangle","rects","fillRect","Arc","Point","Rectangle","resolve$1","computeMinSampleSize","pixels","prev","curr","isHorizontal","ticks","getTicks","getPixelForTick","computeFitCategoryTraits","ruler","thickness","barThickness","stackCount","categoryPercentage","barPercentage","chunk","computeFlexCategoryTraits","next","percent","end","hover","mode","offset","gridLines","offsetGridLines","controller_bar","stack","bar","_ruler","getRuler","_resolveElementOptions","_xScale","_yScale","datasetLabel","_updateElementGeometry","vscale","getBasePixel","vpixels","calculateBarValuePixels","ipixels","calculateBarIndexPixels","head","center","_getStacks","last","stacked","stacks","isDatasetVisible","getStackCount","getStackIndex","getPixelForValue","imeta","ivalue","getRightValue","minBarLength","controller","range","stackIndex","maxBarThickness","Infinity","dataIndex","valueOrDefault$3","resolve$2","position","tooltips","callbacks","title","dataPoint","xLabel","yLabel","controller_bubble","xScale","yScale","dsIndex","getPixelForDecimal","NaN","_options","resolve$3","valueOrDefault$4","animateRotate","animateScale","legendCallback","text","join","legend","generateLabels","ds","arcOpts","bw","onClick","legendItem","cutoutPercentage","circumference","tooltipItem","dataLabel","controller_doughnut","getRingIndex","ringIndex","j","opts","availableWidth","availableHeight","minSize","arcs","chartWeight","_getRingWeight","contains0","contains90","contains180","contains270","cutout","getMaxBorderWidth","radiusLength","_getVisibleDatasetWeightTotal","offsetX","offsetY","total","calculateTotal","_getRingWeightOffset","animationOpts","centerX","centerY","calculateCircumference","hoverWidth","ringWeightOffset","dataSetIndex","axis","controller_horizontalBar","valueOrDefault$5","resolve$4","isPointInArea","lineEnabled","showLine","controller_line","lineTension","_scale","_resolveLineOptions","updateBezierControlPoints","lineModel","_resolvePointOptions","calculatePointY","ELEMENT_OPTIONS","elementOptions","dsMeta","sumPos","sumNeg","stackedRightValue","rightValue","controlPoints","capControlPoint","pt","cubicInterpolationMode","splineCurveMonotone","splineCurve","nextItem","halfBorderWidth","resolve$5","angleLines","display","circular","pointLabels","beginAtZero","controller_polarArea","starts","_starts","angles","_angles","_updateRadius","countVisibleElements","_computeAngle","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getDistanceFromCenterForValue","resetRadius","doughnut","controller_pie","valueOrDefault$6","resolve$6","controller_radar","pointPosition","getPointPositionForValue","controller_scatter","controllers","bubble","horizontalBar","polarArea","pie","radar","scatter","getRelativePosition","native","parseVisibleItems","handler","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","_tmpIndex_","sort","findMaxPadding","boxes","box","getPadding","boxPadding","addSizeByPosition","layout","core_layouts","addBox","fullWidth","removeBox","layoutItem","configure","layoutOptions","leftPadding","rightPadding","topPadding","bottomPadding","leftBoxes","rightBoxes","topBoxes","bottomBoxes","chartAreaBoxes","maxPadding","verticalBoxes","horizontalBoxes","outerBoxes","chartWidth","chartHeight","chartAreaWidth","verticalBoxWidth","maxChartAreaWidth","maxChartAreaHeight","outerBoxSizes","minBoxSizes","getMinimumBoxSize","fitBox","finalFitVerticalBox","leftPaddingAddition","topPaddingAddition","newMaxChartAreaHeight","newMaxChartAreaWidth","placeBox","minBoxSize","findNextWhere","minBox","scaleMargin","platform_basic","acquireContext","platform_dom","platform_dom$1","freeze","getCjsExportFromNamespace","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","property","getStyle","initCanvas","config","renderHeight","getAttribute","renderWidth","initial","displayWidth","aspectRatio","displayHeight","supportsEventListenerOptions","supports","addEventListener","eventListenerOptions","passive","addListener","node","removeListener","removeEventListener","createEvent","nativeEvent","fromNativeEvent","event","pos","throttled","ticking","createDiv","cls","el","document","className","createResizer","maxSize","resizer","expand","shrink","appendChild","_reset","scrollLeft","scrollTop","onScroll","bind","watchForRender","expando","proxy","renderProxy","animationName","reflow","offsetParent","classList","add","unwatchForRender","remove","addResizeListener","container","maintainAspectRatio","parentNode","clientWidth","insertBefore","firstChild","removeResizeListener","removeChild","injectCSS","platform","css","_style","setAttribute","getElementsByTagName","createTextNode","platform_dom$2","disableCSSInjection","_enabled","_ensureLoaded","_loaded","getElementById","releaseContext","removeAttribute","proxies","addEvent","removeEvent","implementation","core_plugins","_cacheId","register","unregister","idx","getAll","notify","hook","descriptor","params","descriptors","cache","$plugins","_invalidate","core_scaleService","constructors","registerScaleType","scaleConstructor","scaleDefaults","getScaleConstructor","getScaleDefaults","updateScaleDefaults","additions","addScalesToLayout","valueOrDefault$7","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","activeElement","labelTextColor","afterLabel","afterBody","beforeFooter","footer","afterFooter","positioners","average","eventPosition","nearestElement","d","distanceBetweenPoints","tp","pushOrConcat","toPush","splitNewlines","split","createTooltipItem","indexScale","valueScale","getLabelForIndex","getBaseModel","tooltipOpts","xAlign","yAlign","_bodyFontFamily","bodyFontFamily","_bodyFontStyle","bodyFontStyle","_bodyAlign","bodyFontSize","_titleFontFamily","titleFontFamily","_titleFontStyle","titleFontSize","_titleAlign","_footerFontFamily","footerFontFamily","_footerFontStyle","footerFontSize","_footerAlign","opacity","legendColorBackground","getTooltipSize","tooltip","body","combinedBodyLength","reduce","bodyItem","before","lines","after","titleLineCount","footerLineCount","widthPadding","maxLineWidth","measureText","fontString","determineAlignment","lf","rf","olf","orf","yf","midX","midY","getBackgroundPoint","alignment","paddingAndSize","radiusAndPadding","getAlignedX","align","getBeforeAfterBodyLines","exports$3","_lastActive","getTitle","getBeforeBody","getBody","bodyItems","getAfterBody","getFooter","changed","existingModel","active","_active","backgroundPoint","tooltipSize","caretX","caretY","labelColors","labelTextColors","_eventPosition","itemSort","dataPoints","drawCaret","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","tmp","drawTitle","textAlign","textBaseline","fillText","drawBody","textColor","drawColorBoxes","xLinePadding","colorX","fillLineOfText","strokeRect","drawFooter","drawBackground","quadraticCurveTo","hasTooltipContent","globalAlpha","handleEvent","getElementsAtEventForMode","positioners_1","core_tooltip","valueOrDefault$8","mergeScaleConfig","slen","mergeConfig","initConfig","updateConfig","newOptions","ensureScalesHaveIDs","buildOrUpdateScales","positionIsHorizontal","events","onHover","animationDuration","responsive","responsiveAnimationDuration","Chart","construct","_bufferedRender","instances","retinaScale","devicePixelRatio","bindEvents","resize","initToolTip","stop","silent","newWidth","getMaximumWidth","newHeight","getMaximumHeight","newSize","onResize","scalesOptions","scaleOptions","xAxisOptions","yAxisOptions","updated","dtype","dposition","isDefault","scaleType","scaleClass","mergeTicksOptions","hasUpdated","buildOrUpdateControllers","newControllers","destroyDatasetMeta","ControllerClass","Error","resetElements","updateLayout","updateDatasets","lastActive","_bufferedRequest","updateDataset","animationOptions","animationObject","easingFunction","stepDecimal","drawDatasets","_drawTooltip","drawDataset","getElementAtEvent","getElementsAtEvent","getElementsAtXAxis","getDatasetAtEvent","_meta","unbindEvents","toBase64Image","toDataURL","_chartInstance","_listeners","eventHandler","updateHoverStyle","bufferedRequest","hoverOptions","core_controller","Controller","types","configMerge","scaleMerge","core_helpers","parseMaxStyle","styleValue","parentProperty","valueInPixels","isConstrainedValue","getConstraintDimension","domNode","maxStyle","percentageProperty","defaultView","_getParentNode","constrainedNode","getComputedStyle","constrainedContainer","hasCNode","hasCContainer","infinity","collection","filterCallback","filtered","arrayToSearch","startIndex","currentItem","findPreviousWhere","almostEquals","almostWhole","rounded","NEGATIVE_INFINITY","sign","log10","exponent","log","LOG10E","powerOf10","isPowerOf10","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","niceFraction","fraction","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","setTimeout","evt","originalEvent","srcElement","boundingRect","getBoundingClientRect","touches","clientX","clientY","paddingLeft","paddingTop","paddingRight","paddingBottom","getConstraintWidth","getConstraintHeight","_calculatePadding","parentDimension","parent","host","cw","clientHeight","ch","currentStyle","getPropertyValue","forceRatio","pixelRatio","pixelSize","longestText","arrayOfThings","gc","garbageCollect","longest","thing","nestedThing","gcLen","textWidth","numberOfLabelLines","numberOfLines","color","CanvasGradient","colorValue","CanvasPattern","abstract","DateAdapter","formats","parse","format","diff","startOf","endOf","_create","override","members","_date","core_adapters","core_ticks","formatters","tickValue","logDelta","tickString","maxTick","logTick","toExponential","numDecimal","toFixed","logarithmic","remain","valueOrDefault$9","labelsFromTicks","getPixelForGridLine","lineValue","computeTextSize","tick","drawBorder","drawOnChartArea","drawTicks","tickMarkLength","zeroLineWidth","zeroLineColor","zeroLineBorderDash","zeroLineBorderDashOffset","scaleLabel","labelString","minRotation","maxRotation","mirror","autoSkip","autoSkipPadding","labelOffset","minor","major","core_scale","_ticks","beforeUpdate","maxWidth","maxHeight","margins","_maxLabelLines","longestLabelWidth","longestTextCache","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","beforeBuildTicks","buildTicks","afterBuildTicks","beforeTickToLabelConversion","convertTicksToLabels","afterTickToLabelConversion","beforeCalculateTickRotation","calculateTickRotation","afterCalculateTickRotation","beforeFit","fit","afterFit","afterUpdate","tickOpts","userCallback","tickFont","labelRotation","cosRotation","sinRotation","originalLabelWidth","labelWidth","tickWidth","angleRadians","scaleLabelOpts","gridLineOpts","_isVisible","parseFont","isFullWidth","scaleLabelFont","scaleLabelPadding","deltaHeight","largestTextWidth","tallestLabelHeightInLines","lineSpace","tickPadding","labelHeight","firstLabelWidth","lastLabelWidth","offsetLeft","offsetRight","handleMargins","rawValue","getValueForPixel","innerWidth","finalVal","innerHeight","decimal","valueOffset","getBaseValue","_autoSkip","optionTicks","tickCount","skipRatio","maxTicks","maxTicksLimit","ticksLength","_tickSize","axisLength","PaddingBottom","rot","borderValue","tickStart","tickEnd","optionMajorTicks","isRotated","isMirrored","tickFontColor","fontColor","majorTickFontColor","majorTickFont","tl","scaleLabelFontColor","labelRotationRadians","itemsToDraw","axisWidth","alignPixel","lineColor","tx1","ty1","tx2","ty2","labelX","labelY","textOffset","zeroLineIndex","labelYOffset","labelXOffset","glWidth","glColor","glBorderDash","glBorderDashOffset","itemToDraw","translate","scaleLabelX","scaleLabelY","halfLineHeight","isLeft","firstLineWidth","lastLineWidth","defaultConfig","scale_category","getLabels","minIndex","maxIndex","valueCategory","offsetAmt","valueWidth","widthOffset","valueHeight","heightOffset","horz","valueDimension","_defaults","generateTicks","generationOptions","dataRange","factor","niceMin","niceMax","numSpaces","MIN_SPACING","stepSize","unit","maxNumSpaces","precision","rmin","rmax","spacing","ceil","scale_linearbase","handleTickRangeOptions","minSign","maxSign","setMin","suggestedMin","setMax","suggestedMax","getTickLimit","_computeTickLimit","handleDirectionalChanges","numericGeneratorOptions","fixedStepSize","ticksAsNumbers","defaultConfig$1","scale_linear","DEFAULT_MIN","DEFAULT_MAX","IDMatches","hasStacks","valuesPerStack","positiveValues","negativeValues","relativePoints","valuesForType","minVal","maxVal","innerDimension","_defaults$1","valueOrDefault$a","generateTicks$1","exp","significand","tickVal","endExp","endSignificand","minNotZero","lastTick","defaultConfig$2","nonNegativeOrDefault","scale_logarithmic","tickValues","_getFirstTickValue","firstTickValue","_defaults$2","valueOrDefault$b","valueAtIndexOrDefault$1","resolve$7","defaultConfig$3","animate","showLabelBackdrop","backdropColor","backdropPaddingY","backdropPaddingX","getValueCount","getTickBackdropHeight","measureLabelSize","determineLimits","fitWithPointLabels","textSize","plFont","furthestLimits","furthestAngles","_pointLabelSizes","valueCount","getPointPosition","drawingArea","getIndexAngle","hLimits","vLimits","setReductions","getTextAlignForAngle","adjustPointPositionForLabelHeight","drawPointLabels","angleLineOpts","pointLabelOpts","tickBackdropHeight","outerDistance","outerPosition","extra","pointLabelPosition","pointLabelFontColor","drawRadiusLine","numberOrZero","param","scale_radialLinear","setCenterPoint","largestPossibleRadius","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxRight","maxLeft","maxTop","maxBottom","angleMultiplier","startAngleRadians","scalingFactor","distanceFromCenter","thisAngle","getBasePosition","yCenterOffset","_defaults$3","valueOrDefault$c","MIN_INTEGER","MIN_SAFE_INTEGER","MAX_INTEGER","MAX_SAFE_INTEGER","INTERVALS","millisecond","common","steps","second","minute","hour","day","week","month","quarter","year","UNITS","sorter","arrayUnique","hash","out","buildLookupTable","timestamps","distribution","time","table","lookup","mid","i0","i1","lo","interpolate$1","skey","tkey","span","toTimestamp","input","adapter","_adapter","parser","determineStepSize","capacity","interval","milliseconds","determineUnitForAutoTicks","minUnit","determineUnitForFormatting","determineMajorUnit","generate","timeOpts","unitStepSize","weekday","isoWeekday","majorTicksEnabled","first","computeOffsets","ticksFromTimestamps","majorUnit","defaultConfig$4","adapters","displayFormat","displayFormats","scale_time","date","warn","timestamp","dataLabels","_horizontal","_table","_timestamps","getLabelCapacity","_unit","_majorUnit","_offsets","tooltipFormat","datetime","tickFormatFunction","minorFormat","majorFormat","majorTime","majorTickOpts","formatter","getPixelForOffset","isReverse","getLabelWidth","ticksOpts","tickLabelWidth","tickFontSize","exampleTime","exampleLabel","_defaults$4","category","radialLinear","FORMATS","_id","valueOf","amount","as","filler","propagate","mappers","visible","boundary","decodeFill","computeBoundary","scaleBottom","scaleTop","scaleZero","resolveTarget","visited","createMapper","isDrawable","drawArea","curve0","curve1","len0","len1","doFill","mapper","p0","p1","d0","d1","plugin_filler","afterDatasetsUpdate","$filler","beforeDatasetDraw","noop$1","valueOrDefault$d","getBoxWidth","labelOpts","usePointStyle","boxWidth","ci","onLeave","lineDash","Legend","legendHitBoxes","_hoveredItem","doughnutMode","beforeBuildLabels","buildLabels","afterBuildLabels","legendItems","labelFont","hitboxes","lineWidths","totalHeight","vPadding","columnWidths","totalWidth","currentColWidth","currentColHeight","itemHeight","itemWidth","lineDefault","legendWidth","cursor","drawLegendBox","SQRT2","halfFontSize","xLeft","yMiddle","_getLegendItemAt","hitBox","lh","hoveredItem","createNewLegendAndAttach","legendOpts","plugin_legend","_element","beforeInit","afterEvent","noop$2","Title","lineCount","fontOpts","titleX","titleY","createNewTitleBlockAndAttach","titleOpts","titleBlock","plugin_title","_adapters","Animation","animationService","Interaction","layouts","Scale","scaleService","Ticks","Tooltip","src","pluginService","PluginBase","canvasHelpers","layoutService","LinearScaleBase","klass","cfg","toLowerCase"],"mappings":"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","file":"js/chunk-fa696058.195f17bd.js","sourcesContent":["function dataHandler(newData, oldData) {\n if (oldData) {\n var chart = this.$data._chart;\n var newDatasetLabels = newData.datasets.map(function (dataset) {\n return dataset.label;\n });\n var oldDatasetLabels = oldData.datasets.map(function (dataset) {\n return dataset.label;\n });\n var oldLabels = JSON.stringify(oldDatasetLabels);\n var newLabels = JSON.stringify(newDatasetLabels);\n\n if (newLabels === oldLabels && oldData.datasets.length === newData.datasets.length) {\n newData.datasets.forEach(function (dataset, i) {\n var oldDatasetKeys = Object.keys(oldData.datasets[i]);\n var newDatasetKeys = Object.keys(dataset);\n var deletionKeys = oldDatasetKeys.filter(function (key) {\n return key !== '_meta' && newDatasetKeys.indexOf(key) === -1;\n });\n deletionKeys.forEach(function (deletionKey) {\n delete chart.data.datasets[i][deletionKey];\n });\n\n for (var attribute in dataset) {\n if (dataset.hasOwnProperty(attribute)) {\n chart.data.datasets[i][attribute] = dataset[attribute];\n }\n }\n });\n\n if (newData.hasOwnProperty('labels')) {\n chart.data.labels = newData.labels;\n this.$emit('labels:update');\n }\n\n if (newData.hasOwnProperty('xLabels')) {\n chart.data.xLabels = newData.xLabels;\n this.$emit('xlabels:update');\n }\n\n if (newData.hasOwnProperty('yLabels')) {\n chart.data.yLabels = newData.yLabels;\n this.$emit('ylabels:update');\n }\n\n chart.update();\n this.$emit('chart:update');\n } else {\n if (chart) {\n chart.destroy();\n this.$emit('chart:destroy');\n }\n\n this.renderChart(this.chartData, this.options);\n this.$emit('chart:render');\n }\n } else {\n if (this.$data._chart) {\n this.$data._chart.destroy();\n\n this.$emit('chart:destroy');\n }\n\n this.renderChart(this.chartData, this.options);\n this.$emit('chart:render');\n }\n}\n\nexport var reactiveData = {\n data: function data() {\n return {\n chartData: null\n };\n },\n watch: {\n 'chartData': dataHandler\n }\n};\nexport var reactiveProp = {\n props: {\n chartData: {\n type: Object,\n required: true,\n default: function _default() {}\n }\n },\n watch: {\n 'chartData': dataHandler\n }\n};\nexport default {\n reactiveData: reactiveData,\n reactiveProp: reactiveProp\n};","import Chart from 'chart.js';\nexport function generateChart(chartId, chartType) {\n return {\n render: function render(createElement) {\n return createElement('div', {\n style: this.styles,\n class: this.cssClasses\n }, [createElement('canvas', {\n attrs: {\n id: this.chartId,\n width: this.width,\n height: this.height\n },\n ref: 'canvas'\n })]);\n },\n props: {\n chartId: {\n default: chartId,\n type: String\n },\n width: {\n default: 400,\n type: Number\n },\n height: {\n default: 400,\n type: Number\n },\n cssClasses: {\n type: String,\n default: ''\n },\n styles: {\n type: Object\n },\n plugins: {\n type: Array,\n default: function _default() {\n return [];\n }\n }\n },\n data: function data() {\n return {\n _chart: null,\n _plugins: this.plugins\n };\n },\n methods: {\n addPlugin: function addPlugin(plugin) {\n this.$data._plugins.push(plugin);\n },\n generateLegend: function generateLegend() {\n if (this.$data._chart) {\n return this.$data._chart.generateLegend();\n }\n },\n renderChart: function renderChart(data, options) {\n if (this.$data._chart) this.$data._chart.destroy();\n this.$data._chart = new Chart(this.$refs.canvas.getContext('2d'), {\n type: chartType,\n data: data,\n options: options,\n plugins: this.$data._plugins\n });\n }\n },\n beforeDestroy: function beforeDestroy() {\n if (this.$data._chart) {\n this.$data._chart.destroy();\n }\n }\n };\n}\nexport var Bar = generateChart('bar-chart', 'bar');\nexport var HorizontalBar = generateChart('horizontalbar-chart', 'horizontalBar');\nexport var Doughnut = generateChart('doughnut-chart', 'doughnut');\nexport var Line = generateChart('line-chart', 'line');\nexport var Pie = generateChart('pie-chart', 'pie');\nexport var PolarArea = generateChart('polar-chart', 'polarArea');\nexport var Radar = generateChart('radar-chart', 'radar');\nexport var Bubble = generateChart('bubble-chart', 'bubble');\nexport var Scatter = generateChart('scatter-chart', 'scatter');\nexport default {\n Bar: Bar,\n HorizontalBar: HorizontalBar,\n Doughnut: Doughnut,\n Line: Line,\n Pie: Pie,\n PolarArea: PolarArea,\n Radar: Radar,\n Bubble: Bubble,\n Scatter: Scatter\n};","/*!\n * Chart.js v2.8.0\n * https://www.chartjs.org\n * (c) 2019 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.Chart = factory(global.moment));\n}(this, (function (moment) { 'use strict';\n\nmoment = moment && moment.hasOwnProperty('default') ? moment['default'] : moment;\n\n/* MIT license */\n\nvar conversions = {\n rgb2hsl: rgb2hsl,\n rgb2hsv: rgb2hsv,\n rgb2hwb: rgb2hwb,\n rgb2cmyk: rgb2cmyk,\n rgb2keyword: rgb2keyword,\n rgb2xyz: rgb2xyz,\n rgb2lab: rgb2lab,\n rgb2lch: rgb2lch,\n\n hsl2rgb: hsl2rgb,\n hsl2hsv: hsl2hsv,\n hsl2hwb: hsl2hwb,\n hsl2cmyk: hsl2cmyk,\n hsl2keyword: hsl2keyword,\n\n hsv2rgb: hsv2rgb,\n hsv2hsl: hsv2hsl,\n hsv2hwb: hsv2hwb,\n hsv2cmyk: hsv2cmyk,\n hsv2keyword: hsv2keyword,\n\n hwb2rgb: hwb2rgb,\n hwb2hsl: hwb2hsl,\n hwb2hsv: hwb2hsv,\n hwb2cmyk: hwb2cmyk,\n hwb2keyword: hwb2keyword,\n\n cmyk2rgb: cmyk2rgb,\n cmyk2hsl: cmyk2hsl,\n cmyk2hsv: cmyk2hsv,\n cmyk2hwb: cmyk2hwb,\n cmyk2keyword: cmyk2keyword,\n\n keyword2rgb: keyword2rgb,\n keyword2hsl: keyword2hsl,\n keyword2hsv: keyword2hsv,\n keyword2hwb: keyword2hwb,\n keyword2cmyk: keyword2cmyk,\n keyword2lab: keyword2lab,\n keyword2xyz: keyword2xyz,\n\n xyz2rgb: xyz2rgb,\n xyz2lab: xyz2lab,\n xyz2lch: xyz2lch,\n\n lab2xyz: lab2xyz,\n lab2rgb: lab2rgb,\n lab2lch: lab2lch,\n\n lch2lab: lch2lab,\n lch2xyz: lch2xyz,\n lch2rgb: lch2rgb\n};\n\n\nfunction rgb2hsl(rgb) {\n var r = rgb[0]/255,\n g = rgb[1]/255,\n b = rgb[2]/255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n delta = max - min,\n h, s, l;\n\n if (max == min)\n h = 0;\n else if (r == max)\n h = (g - b) / delta;\n else if (g == max)\n h = 2 + (b - r) / delta;\n else if (b == max)\n h = 4 + (r - g)/ delta;\n\n h = Math.min(h * 60, 360);\n\n if (h < 0)\n h += 360;\n\n l = (min + max) / 2;\n\n if (max == min)\n s = 0;\n else if (l <= 0.5)\n s = delta / (max + min);\n else\n s = delta / (2 - max - min);\n\n return [h, s * 100, l * 100];\n}\n\nfunction rgb2hsv(rgb) {\n var r = rgb[0],\n g = rgb[1],\n b = rgb[2],\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n delta = max - min,\n h, s, v;\n\n if (max == 0)\n s = 0;\n else\n s = (delta/max * 1000)/10;\n\n if (max == min)\n h = 0;\n else if (r == max)\n h = (g - b) / delta;\n else if (g == max)\n h = 2 + (b - r) / delta;\n else if (b == max)\n h = 4 + (r - g) / delta;\n\n h = Math.min(h * 60, 360);\n\n if (h < 0)\n h += 360;\n\n v = ((max / 255) * 1000) / 10;\n\n return [h, s, v];\n}\n\nfunction rgb2hwb(rgb) {\n var r = rgb[0],\n g = rgb[1],\n b = rgb[2],\n h = rgb2hsl(rgb)[0],\n w = 1/255 * Math.min(r, Math.min(g, b)),\n b = 1 - 1/255 * Math.max(r, Math.max(g, b));\n\n return [h, w * 100, b * 100];\n}\n\nfunction rgb2cmyk(rgb) {\n var r = rgb[0] / 255,\n g = rgb[1] / 255,\n b = rgb[2] / 255,\n c, m, y, k;\n\n k = Math.min(1 - r, 1 - g, 1 - b);\n c = (1 - r - k) / (1 - k) || 0;\n m = (1 - g - k) / (1 - k) || 0;\n y = (1 - b - k) / (1 - k) || 0;\n return [c * 100, m * 100, y * 100, k * 100];\n}\n\nfunction rgb2keyword(rgb) {\n return reverseKeywords[JSON.stringify(rgb)];\n}\n\nfunction rgb2xyz(rgb) {\n var r = rgb[0] / 255,\n g = rgb[1] / 255,\n b = rgb[2] / 255;\n\n // assume sRGB\n r = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n g = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n b = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n var x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n var y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n var z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n return [x * 100, y *100, z * 100];\n}\n\nfunction rgb2lab(rgb) {\n var xyz = rgb2xyz(rgb),\n x = xyz[0],\n y = xyz[1],\n z = xyz[2],\n l, a, b;\n\n x /= 95.047;\n y /= 100;\n z /= 108.883;\n\n x = x > 0.008856 ? Math.pow(x, 1/3) : (7.787 * x) + (16 / 116);\n y = y > 0.008856 ? Math.pow(y, 1/3) : (7.787 * y) + (16 / 116);\n z = z > 0.008856 ? Math.pow(z, 1/3) : (7.787 * z) + (16 / 116);\n\n l = (116 * y) - 16;\n a = 500 * (x - y);\n b = 200 * (y - z);\n\n return [l, a, b];\n}\n\nfunction rgb2lch(args) {\n return lab2lch(rgb2lab(args));\n}\n\nfunction hsl2rgb(hsl) {\n var h = hsl[0] / 360,\n s = hsl[1] / 100,\n l = hsl[2] / 100,\n t1, t2, t3, rgb, val;\n\n if (s == 0) {\n val = l * 255;\n return [val, val, val];\n }\n\n if (l < 0.5)\n t2 = l * (1 + s);\n else\n t2 = l + s - l * s;\n t1 = 2 * l - t2;\n\n rgb = [0, 0, 0];\n for (var i = 0; i < 3; i++) {\n t3 = h + 1 / 3 * - (i - 1);\n t3 < 0 && t3++;\n t3 > 1 && t3--;\n\n if (6 * t3 < 1)\n val = t1 + (t2 - t1) * 6 * t3;\n else if (2 * t3 < 1)\n val = t2;\n else if (3 * t3 < 2)\n val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n else\n val = t1;\n\n rgb[i] = val * 255;\n }\n\n return rgb;\n}\n\nfunction hsl2hsv(hsl) {\n var h = hsl[0],\n s = hsl[1] / 100,\n l = hsl[2] / 100,\n sv, v;\n\n if(l === 0) {\n // no need to do calc on black\n // also avoids divide by 0 error\n return [0, 0, 0];\n }\n\n l *= 2;\n s *= (l <= 1) ? l : 2 - l;\n v = (l + s) / 2;\n sv = (2 * s) / (l + s);\n return [h, sv * 100, v * 100];\n}\n\nfunction hsl2hwb(args) {\n return rgb2hwb(hsl2rgb(args));\n}\n\nfunction hsl2cmyk(args) {\n return rgb2cmyk(hsl2rgb(args));\n}\n\nfunction hsl2keyword(args) {\n return rgb2keyword(hsl2rgb(args));\n}\n\n\nfunction hsv2rgb(hsv) {\n var h = hsv[0] / 60,\n s = hsv[1] / 100,\n v = hsv[2] / 100,\n hi = Math.floor(h) % 6;\n\n var f = h - Math.floor(h),\n p = 255 * v * (1 - s),\n q = 255 * v * (1 - (s * f)),\n t = 255 * v * (1 - (s * (1 - f))),\n v = 255 * v;\n\n switch(hi) {\n case 0:\n return [v, t, p];\n case 1:\n return [q, v, p];\n case 2:\n return [p, v, t];\n case 3:\n return [p, q, v];\n case 4:\n return [t, p, v];\n case 5:\n return [v, p, q];\n }\n}\n\nfunction hsv2hsl(hsv) {\n var h = hsv[0],\n s = hsv[1] / 100,\n v = hsv[2] / 100,\n sl, l;\n\n l = (2 - s) * v;\n sl = s * v;\n sl /= (l <= 1) ? l : 2 - l;\n sl = sl || 0;\n l /= 2;\n return [h, sl * 100, l * 100];\n}\n\nfunction hsv2hwb(args) {\n return rgb2hwb(hsv2rgb(args))\n}\n\nfunction hsv2cmyk(args) {\n return rgb2cmyk(hsv2rgb(args));\n}\n\nfunction hsv2keyword(args) {\n return rgb2keyword(hsv2rgb(args));\n}\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nfunction hwb2rgb(hwb) {\n var h = hwb[0] / 360,\n wh = hwb[1] / 100,\n bl = hwb[2] / 100,\n ratio = wh + bl,\n i, v, f, n;\n\n // wh + bl cant be > 1\n if (ratio > 1) {\n wh /= ratio;\n bl /= ratio;\n }\n\n i = Math.floor(6 * h);\n v = 1 - bl;\n f = 6 * h - i;\n if ((i & 0x01) != 0) {\n f = 1 - f;\n }\n n = wh + f * (v - wh); // linear interpolation\n\n switch (i) {\n default:\n case 6:\n case 0: r = v; g = n; b = wh; break;\n case 1: r = n; g = v; b = wh; break;\n case 2: r = wh; g = v; b = n; break;\n case 3: r = wh; g = n; b = v; break;\n case 4: r = n; g = wh; b = v; break;\n case 5: r = v; g = wh; b = n; break;\n }\n\n return [r * 255, g * 255, b * 255];\n}\n\nfunction hwb2hsl(args) {\n return rgb2hsl(hwb2rgb(args));\n}\n\nfunction hwb2hsv(args) {\n return rgb2hsv(hwb2rgb(args));\n}\n\nfunction hwb2cmyk(args) {\n return rgb2cmyk(hwb2rgb(args));\n}\n\nfunction hwb2keyword(args) {\n return rgb2keyword(hwb2rgb(args));\n}\n\nfunction cmyk2rgb(cmyk) {\n var c = cmyk[0] / 100,\n m = cmyk[1] / 100,\n y = cmyk[2] / 100,\n k = cmyk[3] / 100,\n r, g, b;\n\n r = 1 - Math.min(1, c * (1 - k) + k);\n g = 1 - Math.min(1, m * (1 - k) + k);\n b = 1 - Math.min(1, y * (1 - k) + k);\n return [r * 255, g * 255, b * 255];\n}\n\nfunction cmyk2hsl(args) {\n return rgb2hsl(cmyk2rgb(args));\n}\n\nfunction cmyk2hsv(args) {\n return rgb2hsv(cmyk2rgb(args));\n}\n\nfunction cmyk2hwb(args) {\n return rgb2hwb(cmyk2rgb(args));\n}\n\nfunction cmyk2keyword(args) {\n return rgb2keyword(cmyk2rgb(args));\n}\n\n\nfunction xyz2rgb(xyz) {\n var x = xyz[0] / 100,\n y = xyz[1] / 100,\n z = xyz[2] / 100,\n r, g, b;\n\n r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n // assume sRGB\n r = r > 0.0031308 ? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n : r = (r * 12.92);\n\n g = g > 0.0031308 ? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n : g = (g * 12.92);\n\n b = b > 0.0031308 ? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n : b = (b * 12.92);\n\n r = Math.min(Math.max(0, r), 1);\n g = Math.min(Math.max(0, g), 1);\n b = Math.min(Math.max(0, b), 1);\n\n return [r * 255, g * 255, b * 255];\n}\n\nfunction xyz2lab(xyz) {\n var x = xyz[0],\n y = xyz[1],\n z = xyz[2],\n l, a, b;\n\n x /= 95.047;\n y /= 100;\n z /= 108.883;\n\n x = x > 0.008856 ? Math.pow(x, 1/3) : (7.787 * x) + (16 / 116);\n y = y > 0.008856 ? Math.pow(y, 1/3) : (7.787 * y) + (16 / 116);\n z = z > 0.008856 ? Math.pow(z, 1/3) : (7.787 * z) + (16 / 116);\n\n l = (116 * y) - 16;\n a = 500 * (x - y);\n b = 200 * (y - z);\n\n return [l, a, b];\n}\n\nfunction xyz2lch(args) {\n return lab2lch(xyz2lab(args));\n}\n\nfunction lab2xyz(lab) {\n var l = lab[0],\n a = lab[1],\n b = lab[2],\n x, y, z, y2;\n\n if (l <= 8) {\n y = (l * 100) / 903.3;\n y2 = (7.787 * (y / 100)) + (16 / 116);\n } else {\n y = 100 * Math.pow((l + 16) / 116, 3);\n y2 = Math.pow(y / 100, 1/3);\n }\n\n x = x / 95.047 <= 0.008856 ? x = (95.047 * ((a / 500) + y2 - (16 / 116))) / 7.787 : 95.047 * Math.pow((a / 500) + y2, 3);\n\n z = z / 108.883 <= 0.008859 ? z = (108.883 * (y2 - (b / 200) - (16 / 116))) / 7.787 : 108.883 * Math.pow(y2 - (b / 200), 3);\n\n return [x, y, z];\n}\n\nfunction lab2lch(lab) {\n var l = lab[0],\n a = lab[1],\n b = lab[2],\n hr, h, c;\n\n hr = Math.atan2(b, a);\n h = hr * 360 / 2 / Math.PI;\n if (h < 0) {\n h += 360;\n }\n c = Math.sqrt(a * a + b * b);\n return [l, c, h];\n}\n\nfunction lab2rgb(args) {\n return xyz2rgb(lab2xyz(args));\n}\n\nfunction lch2lab(lch) {\n var l = lch[0],\n c = lch[1],\n h = lch[2],\n a, b, hr;\n\n hr = h / 360 * 2 * Math.PI;\n a = c * Math.cos(hr);\n b = c * Math.sin(hr);\n return [l, a, b];\n}\n\nfunction lch2xyz(args) {\n return lab2xyz(lch2lab(args));\n}\n\nfunction lch2rgb(args) {\n return lab2rgb(lch2lab(args));\n}\n\nfunction keyword2rgb(keyword) {\n return cssKeywords[keyword];\n}\n\nfunction keyword2hsl(args) {\n return rgb2hsl(keyword2rgb(args));\n}\n\nfunction keyword2hsv(args) {\n return rgb2hsv(keyword2rgb(args));\n}\n\nfunction keyword2hwb(args) {\n return rgb2hwb(keyword2rgb(args));\n}\n\nfunction keyword2cmyk(args) {\n return rgb2cmyk(keyword2rgb(args));\n}\n\nfunction keyword2lab(args) {\n return rgb2lab(keyword2rgb(args));\n}\n\nfunction keyword2xyz(args) {\n return rgb2xyz(keyword2rgb(args));\n}\n\nvar cssKeywords = {\n aliceblue: [240,248,255],\n antiquewhite: [250,235,215],\n aqua: [0,255,255],\n aquamarine: [127,255,212],\n azure: [240,255,255],\n beige: [245,245,220],\n bisque: [255,228,196],\n black: [0,0,0],\n blanchedalmond: [255,235,205],\n blue: [0,0,255],\n blueviolet: [138,43,226],\n brown: [165,42,42],\n burlywood: [222,184,135],\n cadetblue: [95,158,160],\n chartreuse: [127,255,0],\n chocolate: [210,105,30],\n coral: [255,127,80],\n cornflowerblue: [100,149,237],\n cornsilk: [255,248,220],\n crimson: [220,20,60],\n cyan: [0,255,255],\n darkblue: [0,0,139],\n darkcyan: [0,139,139],\n darkgoldenrod: [184,134,11],\n darkgray: [169,169,169],\n darkgreen: [0,100,0],\n darkgrey: [169,169,169],\n darkkhaki: [189,183,107],\n darkmagenta: [139,0,139],\n darkolivegreen: [85,107,47],\n darkorange: [255,140,0],\n darkorchid: [153,50,204],\n darkred: [139,0,0],\n darksalmon: [233,150,122],\n darkseagreen: [143,188,143],\n darkslateblue: [72,61,139],\n darkslategray: [47,79,79],\n darkslategrey: [47,79,79],\n darkturquoise: [0,206,209],\n darkviolet: [148,0,211],\n deeppink: [255,20,147],\n deepskyblue: [0,191,255],\n dimgray: [105,105,105],\n dimgrey: [105,105,105],\n dodgerblue: [30,144,255],\n firebrick: [178,34,34],\n floralwhite: [255,250,240],\n forestgreen: [34,139,34],\n fuchsia: [255,0,255],\n gainsboro: [220,220,220],\n ghostwhite: [248,248,255],\n gold: [255,215,0],\n goldenrod: [218,165,32],\n gray: [128,128,128],\n green: [0,128,0],\n greenyellow: [173,255,47],\n grey: [128,128,128],\n honeydew: [240,255,240],\n hotpink: [255,105,180],\n indianred: [205,92,92],\n indigo: [75,0,130],\n ivory: [255,255,240],\n khaki: [240,230,140],\n lavender: [230,230,250],\n lavenderblush: [255,240,245],\n lawngreen: [124,252,0],\n lemonchiffon: [255,250,205],\n lightblue: [173,216,230],\n lightcoral: [240,128,128],\n lightcyan: [224,255,255],\n lightgoldenrodyellow: [250,250,210],\n lightgray: [211,211,211],\n lightgreen: [144,238,144],\n lightgrey: [211,211,211],\n lightpink: [255,182,193],\n lightsalmon: [255,160,122],\n lightseagreen: [32,178,170],\n lightskyblue: [135,206,250],\n lightslategray: [119,136,153],\n lightslategrey: [119,136,153],\n lightsteelblue: [176,196,222],\n lightyellow: [255,255,224],\n lime: [0,255,0],\n limegreen: [50,205,50],\n linen: [250,240,230],\n magenta: [255,0,255],\n maroon: [128,0,0],\n mediumaquamarine: [102,205,170],\n mediumblue: [0,0,205],\n mediumorchid: [186,85,211],\n mediumpurple: [147,112,219],\n mediumseagreen: [60,179,113],\n mediumslateblue: [123,104,238],\n mediumspringgreen: [0,250,154],\n mediumturquoise: [72,209,204],\n mediumvioletred: [199,21,133],\n midnightblue: [25,25,112],\n mintcream: [245,255,250],\n mistyrose: [255,228,225],\n moccasin: [255,228,181],\n navajowhite: [255,222,173],\n navy: [0,0,128],\n oldlace: [253,245,230],\n olive: [128,128,0],\n olivedrab: [107,142,35],\n orange: [255,165,0],\n orangered: [255,69,0],\n orchid: [218,112,214],\n palegoldenrod: [238,232,170],\n palegreen: [152,251,152],\n paleturquoise: [175,238,238],\n palevioletred: [219,112,147],\n papayawhip: [255,239,213],\n peachpuff: [255,218,185],\n peru: [205,133,63],\n pink: [255,192,203],\n plum: [221,160,221],\n powderblue: [176,224,230],\n purple: [128,0,128],\n rebeccapurple: [102, 51, 153],\n red: [255,0,0],\n rosybrown: [188,143,143],\n royalblue: [65,105,225],\n saddlebrown: [139,69,19],\n salmon: [250,128,114],\n sandybrown: [244,164,96],\n seagreen: [46,139,87],\n seashell: [255,245,238],\n sienna: [160,82,45],\n silver: [192,192,192],\n skyblue: [135,206,235],\n slateblue: [106,90,205],\n slategray: [112,128,144],\n slategrey: [112,128,144],\n snow: [255,250,250],\n springgreen: [0,255,127],\n steelblue: [70,130,180],\n tan: [210,180,140],\n teal: [0,128,128],\n thistle: [216,191,216],\n tomato: [255,99,71],\n turquoise: [64,224,208],\n violet: [238,130,238],\n wheat: [245,222,179],\n white: [255,255,255],\n whitesmoke: [245,245,245],\n yellow: [255,255,0],\n yellowgreen: [154,205,50]\n};\n\nvar reverseKeywords = {};\nfor (var key in cssKeywords) {\n reverseKeywords[JSON.stringify(cssKeywords[key])] = key;\n}\n\nvar convert = function() {\n return new Converter();\n};\n\nfor (var func in conversions) {\n // export Raw versions\n convert[func + \"Raw\"] = (function(func) {\n // accept array or plain args\n return function(arg) {\n if (typeof arg == \"number\")\n arg = Array.prototype.slice.call(arguments);\n return conversions[func](arg);\n }\n })(func);\n\n var pair = /(\\w+)2(\\w+)/.exec(func),\n from = pair[1],\n to = pair[2];\n\n // export rgb2hsl and [\"rgb\"][\"hsl\"]\n convert[from] = convert[from] || {};\n\n convert[from][to] = convert[func] = (function(func) { \n return function(arg) {\n if (typeof arg == \"number\")\n arg = Array.prototype.slice.call(arguments);\n \n var val = conversions[func](arg);\n if (typeof val == \"string\" || val === undefined)\n return val; // keyword\n\n for (var i = 0; i < val.length; i++)\n val[i] = Math.round(val[i]);\n return val;\n }\n })(func);\n}\n\n\n/* Converter does lazy conversion and caching */\nvar Converter = function() {\n this.convs = {};\n};\n\n/* Either get the values for a space or\n set the values for a space, depending on args */\nConverter.prototype.routeSpace = function(space, args) {\n var values = args[0];\n if (values === undefined) {\n // color.rgb()\n return this.getValues(space);\n }\n // color.rgb(10, 10, 10)\n if (typeof values == \"number\") {\n values = Array.prototype.slice.call(args); \n }\n\n return this.setValues(space, values);\n};\n \n/* Set the values for a space, invalidating cache */\nConverter.prototype.setValues = function(space, values) {\n this.space = space;\n this.convs = {};\n this.convs[space] = values;\n return this;\n};\n\n/* Get the values for a space. If there's already\n a conversion for the space, fetch it, otherwise\n compute it */\nConverter.prototype.getValues = function(space) {\n var vals = this.convs[space];\n if (!vals) {\n var fspace = this.space,\n from = this.convs[fspace];\n vals = convert[fspace][space](from);\n\n this.convs[space] = vals;\n }\n return vals;\n};\n\n[\"rgb\", \"hsl\", \"hsv\", \"cmyk\", \"keyword\"].forEach(function(space) {\n Converter.prototype[space] = function(vals) {\n return this.routeSpace(space, arguments);\n };\n});\n\nvar colorConvert = convert;\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\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[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) {\n reverseNames[colorName[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\n/**\n * @namespace Chart.helpers\n */\nvar helpers = {\n\t/**\n\t * An empty function that can be used, for example, for optional callback.\n\t */\n\tnoop: function() {},\n\n\t/**\n\t * Returns a unique id, sequentially generated from a global variable.\n\t * @returns {number}\n\t * @function\n\t */\n\tuid: (function() {\n\t\tvar id = 0;\n\t\treturn function() {\n\t\t\treturn id++;\n\t\t};\n\t}()),\n\n\t/**\n\t * Returns true if `value` is neither null nor undefined, else returns false.\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t * @since 2.7.0\n\t */\n\tisNullOrUndef: function(value) {\n\t\treturn value === null || typeof value === 'undefined';\n\t},\n\n\t/**\n\t * Returns true if `value` is an array (including typed arrays), else returns false.\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t * @function\n\t */\n\tisArray: function(value) {\n\t\tif (Array.isArray && Array.isArray(value)) {\n\t\t\treturn true;\n\t\t}\n\t\tvar type = Object.prototype.toString.call(value);\n\t\tif (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},\n\n\t/**\n\t * Returns true if `value` is an object (excluding null), else returns false.\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t * @since 2.7.0\n\t */\n\tisObject: function(value) {\n\t\treturn value !== null && Object.prototype.toString.call(value) === '[object Object]';\n\t},\n\n\t/**\n\t * Returns true if `value` is a finite number, else returns false\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t */\n\tisFinite: function(value) {\n\t\treturn (typeof value === 'number' || value instanceof Number) && isFinite(value);\n\t},\n\n\t/**\n\t * Returns `value` if defined, else returns `defaultValue`.\n\t * @param {*} value - The value to return if defined.\n\t * @param {*} defaultValue - The value to return if `value` is undefined.\n\t * @returns {*}\n\t */\n\tvalueOrDefault: function(value, defaultValue) {\n\t\treturn typeof value === 'undefined' ? defaultValue : value;\n\t},\n\n\t/**\n\t * Returns value at the given `index` in array if defined, else returns `defaultValue`.\n\t * @param {Array} value - The array to lookup for value at `index`.\n\t * @param {number} index - The index in `value` to lookup for value.\n\t * @param {*} defaultValue - The value to return if `value[index]` is undefined.\n\t * @returns {*}\n\t */\n\tvalueAtIndexOrDefault: function(value, index, defaultValue) {\n\t\treturn helpers.valueOrDefault(helpers.isArray(value) ? value[index] : value, defaultValue);\n\t},\n\n\t/**\n\t * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\n\t * value returned by `fn`. If `fn` is not a function, this method returns undefined.\n\t * @param {function} fn - The function to call.\n\t * @param {Array|undefined|null} args - The arguments with which `fn` should be called.\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\n\t * @returns {*}\n\t */\n\tcallback: function(fn, args, thisArg) {\n\t\tif (fn && typeof fn.call === 'function') {\n\t\t\treturn fn.apply(thisArg, args);\n\t\t}\n\t},\n\n\t/**\n\t * Note(SB) for performance sake, this method should only be used when loopable type\n\t * is unknown or in none intensive code (not called often and small loopable). Else\n\t * it's preferable to use a regular for() loop and save extra function calls.\n\t * @param {object|Array} loopable - The object or array to be iterated.\n\t * @param {function} fn - The function to call for each item.\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\n\t * @param {boolean} [reverse] - If true, iterates backward on the loopable.\n\t */\n\teach: function(loopable, fn, thisArg, reverse) {\n\t\tvar i, len, keys;\n\t\tif (helpers.isArray(loopable)) {\n\t\t\tlen = loopable.length;\n\t\t\tif (reverse) {\n\t\t\t\tfor (i = len - 1; i >= 0; i--) {\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (helpers.isObject(loopable)) {\n\t\t\tkeys = Object.keys(loopable);\n\t\t\tlen = keys.length;\n\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\tfn.call(thisArg, loopable[keys[i]], keys[i]);\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\n\t * @see https://stackoverflow.com/a/14853974\n\t * @param {Array} a0 - The array to compare\n\t * @param {Array} a1 - The array to compare\n\t * @returns {boolean}\n\t */\n\tarrayEquals: function(a0, a1) {\n\t\tvar i, ilen, v0, v1;\n\n\t\tif (!a0 || !a1 || a0.length !== a1.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tfor (i = 0, ilen = a0.length; i < ilen; ++i) {\n\t\t\tv0 = a0[i];\n\t\t\tv1 = a1[i];\n\n\t\t\tif (v0 instanceof Array && v1 instanceof Array) {\n\t\t\t\tif (!helpers.arrayEquals(v0, v1)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} else if (v0 !== v1) {\n\t\t\t\t// NOTE: two different object instances will never be equal: {x:20} != {x:20}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t/**\n\t * Returns a deep copy of `source` without keeping references on objects and arrays.\n\t * @param {*} source - The value to clone.\n\t * @returns {*}\n\t */\n\tclone: function(source) {\n\t\tif (helpers.isArray(source)) {\n\t\t\treturn source.map(helpers.clone);\n\t\t}\n\n\t\tif (helpers.isObject(source)) {\n\t\t\tvar target = {};\n\t\t\tvar keys = Object.keys(source);\n\t\t\tvar klen = keys.length;\n\t\t\tvar k = 0;\n\n\t\t\tfor (; k < klen; ++k) {\n\t\t\t\ttarget[keys[k]] = helpers.clone(source[keys[k]]);\n\t\t\t}\n\n\t\t\treturn target;\n\t\t}\n\n\t\treturn source;\n\t},\n\n\t/**\n\t * The default merger when Chart.helpers.merge is called without merger option.\n\t * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\n\t * @private\n\t */\n\t_merger: function(key, target, source, options) {\n\t\tvar tval = target[key];\n\t\tvar sval = source[key];\n\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\n\t\t\thelpers.merge(tval, sval, options);\n\t\t} else {\n\t\t\ttarget[key] = helpers.clone(sval);\n\t\t}\n\t},\n\n\t/**\n\t * Merges source[key] in target[key] only if target[key] is undefined.\n\t * @private\n\t */\n\t_mergerIf: function(key, target, source) {\n\t\tvar tval = target[key];\n\t\tvar sval = source[key];\n\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\n\t\t\thelpers.mergeIf(tval, sval);\n\t\t} else if (!target.hasOwnProperty(key)) {\n\t\t\ttarget[key] = helpers.clone(sval);\n\t\t}\n\t},\n\n\t/**\n\t * Recursively deep copies `source` properties into `target` with the given `options`.\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n\t * @param {object} target - The target object in which all sources are merged into.\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\n\t * @param {object} [options] - Merging options:\n\t * @param {function} [options.merger] - The merge method (key, target, source, options)\n\t * @returns {object} The `target` object.\n\t */\n\tmerge: function(target, source, options) {\n\t\tvar sources = helpers.isArray(source) ? source : [source];\n\t\tvar ilen = sources.length;\n\t\tvar merge, i, keys, klen, k;\n\n\t\tif (!helpers.isObject(target)) {\n\t\t\treturn target;\n\t\t}\n\n\t\toptions = options || {};\n\t\tmerge = options.merger || helpers._merger;\n\n\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\tsource = sources[i];\n\t\t\tif (!helpers.isObject(source)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tkeys = Object.keys(source);\n\t\t\tfor (k = 0, klen = keys.length; k < klen; ++k) {\n\t\t\t\tmerge(keys[k], target, source, options);\n\t\t\t}\n\t\t}\n\n\t\treturn target;\n\t},\n\n\t/**\n\t * Recursively deep copies `source` properties into `target` *only* if not defined in target.\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n\t * @param {object} target - The target object in which all sources are merged into.\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\n\t * @returns {object} The `target` object.\n\t */\n\tmergeIf: function(target, source) {\n\t\treturn helpers.merge(target, source, {merger: helpers._mergerIf});\n\t},\n\n\t/**\n\t * Applies the contents of two or more objects together into the first object.\n\t * @param {object} target - The target object in which all objects are merged into.\n\t * @param {object} arg1 - Object containing additional properties to merge in target.\n\t * @param {object} argN - Additional objects containing properties to merge in target.\n\t * @returns {object} The `target` object.\n\t */\n\textend: function(target) {\n\t\tvar setFn = function(value, key) {\n\t\t\ttarget[key] = value;\n\t\t};\n\t\tfor (var i = 1, ilen = arguments.length; i < ilen; ++i) {\n\t\t\thelpers.each(arguments[i], setFn);\n\t\t}\n\t\treturn target;\n\t},\n\n\t/**\n\t * Basic javascript inheritance based on the model created in Backbone.js\n\t */\n\tinherits: function(extensions) {\n\t\tvar me = this;\n\t\tvar ChartElement = (extensions && extensions.hasOwnProperty('constructor')) ? extensions.constructor : function() {\n\t\t\treturn me.apply(this, arguments);\n\t\t};\n\n\t\tvar Surrogate = function() {\n\t\t\tthis.constructor = ChartElement;\n\t\t};\n\n\t\tSurrogate.prototype = me.prototype;\n\t\tChartElement.prototype = new Surrogate();\n\t\tChartElement.extend = helpers.inherits;\n\n\t\tif (extensions) {\n\t\t\thelpers.extend(ChartElement.prototype, extensions);\n\t\t}\n\n\t\tChartElement.__super__ = me.prototype;\n\t\treturn ChartElement;\n\t}\n};\n\nvar helpers_core = helpers;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.callback instead.\n * @function Chart.helpers.callCallback\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n * @private\n */\nhelpers.callCallback = helpers.callback;\n\n/**\n * Provided for backward compatibility, use Array.prototype.indexOf instead.\n * Array.prototype.indexOf compatibility: Chrome, Opera, Safari, FF1.5+, IE9+\n * @function Chart.helpers.indexOf\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.indexOf = function(array, item, fromIndex) {\n\treturn Array.prototype.indexOf.call(array, item, fromIndex);\n};\n\n/**\n * Provided for backward compatibility, use Chart.helpers.valueOrDefault instead.\n * @function Chart.helpers.getValueOrDefault\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.getValueOrDefault = helpers.valueOrDefault;\n\n/**\n * Provided for backward compatibility, use Chart.helpers.valueAtIndexOrDefault instead.\n * @function Chart.helpers.getValueAtIndexOrDefault\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.getValueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n\n/**\n * Easing functions adapted from Robert Penner's easing equations.\n * @namespace Chart.helpers.easingEffects\n * @see http://www.robertpenner.com/easing/\n */\nvar effects = {\n\tlinear: function(t) {\n\t\treturn t;\n\t},\n\n\teaseInQuad: function(t) {\n\t\treturn t * t;\n\t},\n\n\teaseOutQuad: function(t) {\n\t\treturn -t * (t - 2);\n\t},\n\n\teaseInOutQuad: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t;\n\t\t}\n\t\treturn -0.5 * ((--t) * (t - 2) - 1);\n\t},\n\n\teaseInCubic: function(t) {\n\t\treturn t * t * t;\n\t},\n\n\teaseOutCubic: function(t) {\n\t\treturn (t = t - 1) * t * t + 1;\n\t},\n\n\teaseInOutCubic: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t * t;\n\t\t}\n\t\treturn 0.5 * ((t -= 2) * t * t + 2);\n\t},\n\n\teaseInQuart: function(t) {\n\t\treturn t * t * t * t;\n\t},\n\n\teaseOutQuart: function(t) {\n\t\treturn -((t = t - 1) * t * t * t - 1);\n\t},\n\n\teaseInOutQuart: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t * t * t;\n\t\t}\n\t\treturn -0.5 * ((t -= 2) * t * t * t - 2);\n\t},\n\n\teaseInQuint: function(t) {\n\t\treturn t * t * t * t * t;\n\t},\n\n\teaseOutQuint: function(t) {\n\t\treturn (t = t - 1) * t * t * t * t + 1;\n\t},\n\n\teaseInOutQuint: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t * t * t * t;\n\t\t}\n\t\treturn 0.5 * ((t -= 2) * t * t * t * t + 2);\n\t},\n\n\teaseInSine: function(t) {\n\t\treturn -Math.cos(t * (Math.PI / 2)) + 1;\n\t},\n\n\teaseOutSine: function(t) {\n\t\treturn Math.sin(t * (Math.PI / 2));\n\t},\n\n\teaseInOutSine: function(t) {\n\t\treturn -0.5 * (Math.cos(Math.PI * t) - 1);\n\t},\n\n\teaseInExpo: function(t) {\n\t\treturn (t === 0) ? 0 : Math.pow(2, 10 * (t - 1));\n\t},\n\n\teaseOutExpo: function(t) {\n\t\treturn (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1;\n\t},\n\n\teaseInOutExpo: function(t) {\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (t === 1) {\n\t\t\treturn 1;\n\t\t}\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * Math.pow(2, 10 * (t - 1));\n\t\t}\n\t\treturn 0.5 * (-Math.pow(2, -10 * --t) + 2);\n\t},\n\n\teaseInCirc: function(t) {\n\t\tif (t >= 1) {\n\t\t\treturn t;\n\t\t}\n\t\treturn -(Math.sqrt(1 - t * t) - 1);\n\t},\n\n\teaseOutCirc: function(t) {\n\t\treturn Math.sqrt(1 - (t = t - 1) * t);\n\t},\n\n\teaseInOutCirc: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn -0.5 * (Math.sqrt(1 - t * t) - 1);\n\t\t}\n\t\treturn 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n\t},\n\n\teaseInElastic: function(t) {\n\t\tvar s = 1.70158;\n\t\tvar p = 0;\n\t\tvar a = 1;\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (t === 1) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (!p) {\n\t\t\tp = 0.3;\n\t\t}\n\t\tif (a < 1) {\n\t\t\ta = 1;\n\t\t\ts = p / 4;\n\t\t} else {\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\n\t\t}\n\t\treturn -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\n\t},\n\n\teaseOutElastic: function(t) {\n\t\tvar s = 1.70158;\n\t\tvar p = 0;\n\t\tvar a = 1;\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (t === 1) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (!p) {\n\t\t\tp = 0.3;\n\t\t}\n\t\tif (a < 1) {\n\t\t\ta = 1;\n\t\t\ts = p / 4;\n\t\t} else {\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\n\t\t}\n\t\treturn a * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / p) + 1;\n\t},\n\n\teaseInOutElastic: function(t) {\n\t\tvar s = 1.70158;\n\t\tvar p = 0;\n\t\tvar a = 1;\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif ((t /= 0.5) === 2) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (!p) {\n\t\t\tp = 0.45;\n\t\t}\n\t\tif (a < 1) {\n\t\t\ta = 1;\n\t\t\ts = p / 4;\n\t\t} else {\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\n\t\t}\n\t\tif (t < 1) {\n\t\t\treturn -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\n\t\t}\n\t\treturn a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p) * 0.5 + 1;\n\t},\n\teaseInBack: function(t) {\n\t\tvar s = 1.70158;\n\t\treturn t * t * ((s + 1) * t - s);\n\t},\n\n\teaseOutBack: function(t) {\n\t\tvar s = 1.70158;\n\t\treturn (t = t - 1) * t * ((s + 1) * t + s) + 1;\n\t},\n\n\teaseInOutBack: function(t) {\n\t\tvar s = 1.70158;\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\n\t\t}\n\t\treturn 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\n\t},\n\n\teaseInBounce: function(t) {\n\t\treturn 1 - effects.easeOutBounce(1 - t);\n\t},\n\n\teaseOutBounce: function(t) {\n\t\tif (t < (1 / 2.75)) {\n\t\t\treturn 7.5625 * t * t;\n\t\t}\n\t\tif (t < (2 / 2.75)) {\n\t\t\treturn 7.5625 * (t -= (1.5 / 2.75)) * t + 0.75;\n\t\t}\n\t\tif (t < (2.5 / 2.75)) {\n\t\t\treturn 7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375;\n\t\t}\n\t\treturn 7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375;\n\t},\n\n\teaseInOutBounce: function(t) {\n\t\tif (t < 0.5) {\n\t\t\treturn effects.easeInBounce(t * 2) * 0.5;\n\t\t}\n\t\treturn effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5;\n\t}\n};\n\nvar helpers_easing = {\n\teffects: effects\n};\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.easing.effects instead.\n * @function Chart.helpers.easingEffects\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers_core.easingEffects = effects;\n\nvar PI = Math.PI;\nvar RAD_PER_DEG = PI / 180;\nvar DOUBLE_PI = PI * 2;\nvar HALF_PI = PI / 2;\nvar QUARTER_PI = PI / 4;\nvar TWO_THIRDS_PI = PI * 2 / 3;\n\n/**\n * @namespace Chart.helpers.canvas\n */\nvar exports$1 = {\n\t/**\n\t * Clears the entire canvas associated to the given `chart`.\n\t * @param {Chart} chart - The chart for which to clear the canvas.\n\t */\n\tclear: function(chart) {\n\t\tchart.ctx.clearRect(0, 0, chart.width, chart.height);\n\t},\n\n\t/**\n\t * Creates a \"path\" for a rectangle with rounded corners at position (x, y) with a\n\t * given size (width, height) and the same `radius` for all corners.\n\t * @param {CanvasRenderingContext2D} ctx - The canvas 2D Context.\n\t * @param {number} x - The x axis of the coordinate for the rectangle starting point.\n\t * @param {number} y - The y axis of the coordinate for the rectangle starting point.\n\t * @param {number} width - The rectangle's width.\n\t * @param {number} height - The rectangle's height.\n\t * @param {number} radius - The rounded amount (in pixels) for the four corners.\n\t * @todo handle `radius` as top-left, top-right, bottom-right, bottom-left array/object?\n\t */\n\troundedRect: function(ctx, x, y, width, height, radius) {\n\t\tif (radius) {\n\t\t\tvar r = Math.min(radius, height / 2, width / 2);\n\t\t\tvar left = x + r;\n\t\t\tvar top = y + r;\n\t\t\tvar right = x + width - r;\n\t\t\tvar bottom = y + height - r;\n\n\t\t\tctx.moveTo(x, top);\n\t\t\tif (left < right && top < bottom) {\n\t\t\t\tctx.arc(left, top, r, -PI, -HALF_PI);\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, 0);\n\t\t\t\tctx.arc(right, bottom, r, 0, HALF_PI);\n\t\t\t\tctx.arc(left, bottom, r, HALF_PI, PI);\n\t\t\t} else if (left < right) {\n\t\t\t\tctx.moveTo(left, y);\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, HALF_PI);\n\t\t\t\tctx.arc(left, top, r, HALF_PI, PI + HALF_PI);\n\t\t\t} else if (top < bottom) {\n\t\t\t\tctx.arc(left, top, r, -PI, 0);\n\t\t\t\tctx.arc(left, bottom, r, 0, PI);\n\t\t\t} else {\n\t\t\t\tctx.arc(left, top, r, -PI, PI);\n\t\t\t}\n\t\t\tctx.closePath();\n\t\t\tctx.moveTo(x, y);\n\t\t} else {\n\t\t\tctx.rect(x, y, width, height);\n\t\t}\n\t},\n\n\tdrawPoint: function(ctx, style, radius, x, y, rotation) {\n\t\tvar type, xOffset, yOffset, size, cornerRadius;\n\t\tvar rad = (rotation || 0) * RAD_PER_DEG;\n\n\t\tif (style && typeof style === 'object') {\n\t\t\ttype = style.toString();\n\t\t\tif (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n\t\t\t\tctx.drawImage(style, x - style.width / 2, y - style.height / 2, style.width, style.height);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (isNaN(radius) || radius <= 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tctx.beginPath();\n\n\t\tswitch (style) {\n\t\t// Default includes circle\n\t\tdefault:\n\t\t\tctx.arc(x, y, radius, 0, DOUBLE_PI);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'triangle':\n\t\t\tctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n\t\t\trad += TWO_THIRDS_PI;\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n\t\t\trad += TWO_THIRDS_PI;\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'rectRounded':\n\t\t\t// NOTE: the rounded rect implementation changed to use `arc` instead of\n\t\t\t// `quadraticCurveTo` since it generates better results when rect is\n\t\t\t// almost a circle. 0.516 (instead of 0.5) produces results with visually\n\t\t\t// closer proportion to the previous impl and it is inscribed in the\n\t\t\t// circle with `radius`. For more details, see the following PRs:\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5597\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5858\n\t\t\tcornerRadius = radius * 0.516;\n\t\t\tsize = radius - cornerRadius;\n\t\t\txOffset = Math.cos(rad + QUARTER_PI) * size;\n\t\t\tyOffset = Math.sin(rad + QUARTER_PI) * size;\n\t\t\tctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n\t\t\tctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n\t\t\tctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n\t\t\tctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'rect':\n\t\t\tif (!rotation) {\n\t\t\t\tsize = Math.SQRT1_2 * radius;\n\t\t\t\tctx.rect(x - size, y - size, 2 * size, 2 * size);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\trad += QUARTER_PI;\n\t\t\t/* falls through */\n\t\tcase 'rectRot':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'crossRot':\n\t\t\trad += QUARTER_PI;\n\t\t\t/* falls through */\n\t\tcase 'cross':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\tbreak;\n\t\tcase 'star':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\trad += QUARTER_PI;\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\tbreak;\n\t\tcase 'line':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tbreak;\n\t\tcase 'dash':\n\t\t\tctx.moveTo(x, y);\n\t\t\tctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\n\t\t\tbreak;\n\t\t}\n\n\t\tctx.fill();\n\t\tctx.stroke();\n\t},\n\n\t/**\n\t * Returns true if the point is inside the rectangle\n\t * @param {object} point - The point to test\n\t * @param {object} area - The rectangle\n\t * @returns {boolean}\n\t * @private\n\t */\n\t_isPointInArea: function(point, area) {\n\t\tvar epsilon = 1e-6; // 1e-6 is margin in pixels for accumulated error.\n\n\t\treturn point.x > area.left - epsilon && point.x < area.right + epsilon &&\n\t\t\tpoint.y > area.top - epsilon && point.y < area.bottom + epsilon;\n\t},\n\n\tclipArea: function(ctx, area) {\n\t\tctx.save();\n\t\tctx.beginPath();\n\t\tctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n\t\tctx.clip();\n\t},\n\n\tunclipArea: function(ctx) {\n\t\tctx.restore();\n\t},\n\n\tlineTo: function(ctx, previous, target, flip) {\n\t\tvar stepped = target.steppedLine;\n\t\tif (stepped) {\n\t\t\tif (stepped === 'middle') {\n\t\t\t\tvar midpoint = (previous.x + target.x) / 2.0;\n\t\t\t\tctx.lineTo(midpoint, flip ? target.y : previous.y);\n\t\t\t\tctx.lineTo(midpoint, flip ? previous.y : target.y);\n\t\t\t} else if ((stepped === 'after' && !flip) || (stepped !== 'after' && flip)) {\n\t\t\t\tctx.lineTo(previous.x, target.y);\n\t\t\t} else {\n\t\t\t\tctx.lineTo(target.x, previous.y);\n\t\t\t}\n\t\t\tctx.lineTo(target.x, target.y);\n\t\t\treturn;\n\t\t}\n\n\t\tif (!target.tension) {\n\t\t\tctx.lineTo(target.x, target.y);\n\t\t\treturn;\n\t\t}\n\n\t\tctx.bezierCurveTo(\n\t\t\tflip ? previous.controlPointPreviousX : previous.controlPointNextX,\n\t\t\tflip ? previous.controlPointPreviousY : previous.controlPointNextY,\n\t\t\tflip ? target.controlPointNextX : target.controlPointPreviousX,\n\t\t\tflip ? target.controlPointNextY : target.controlPointPreviousY,\n\t\t\ttarget.x,\n\t\t\ttarget.y);\n\t}\n};\n\nvar helpers_canvas = exports$1;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.canvas.clear instead.\n * @namespace Chart.helpers.clear\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers_core.clear = exports$1.clear;\n\n/**\n * Provided for backward compatibility, use Chart.helpers.canvas.roundedRect instead.\n * @namespace Chart.helpers.drawRoundedRectangle\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers_core.drawRoundedRectangle = function(ctx) {\n\tctx.beginPath();\n\texports$1.roundedRect.apply(exports$1, arguments);\n};\n\nvar defaults = {\n\t/**\n\t * @private\n\t */\n\t_set: function(scope, values) {\n\t\treturn helpers_core.merge(this[scope] || (this[scope] = {}), values);\n\t}\n};\n\ndefaults._set('global', {\n\tdefaultColor: 'rgba(0,0,0,0.1)',\n\tdefaultFontColor: '#666',\n\tdefaultFontFamily: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n\tdefaultFontSize: 12,\n\tdefaultFontStyle: 'normal',\n\tdefaultLineHeight: 1.2,\n\tshowLines: true\n});\n\nvar core_defaults = defaults;\n\nvar valueOrDefault = helpers_core.valueOrDefault;\n\n/**\n * Converts the given font object into a CSS font string.\n * @param {object} font - A font object.\n * @return {string} The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\n * @private\n */\nfunction toFontString(font) {\n\tif (!font || helpers_core.isNullOrUndef(font.size) || helpers_core.isNullOrUndef(font.family)) {\n\t\treturn null;\n\t}\n\n\treturn (font.style ? font.style + ' ' : '')\n\t\t+ (font.weight ? font.weight + ' ' : '')\n\t\t+ font.size + 'px '\n\t\t+ font.family;\n}\n\n/**\n * @alias Chart.helpers.options\n * @namespace\n */\nvar helpers_options = {\n\t/**\n\t * Converts the given line height `value` in pixels for a specific font `size`.\n\t * @param {number|string} value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\n\t * @param {number} size - The font size (in pixels) used to resolve relative `value`.\n\t * @returns {number} The effective line height in pixels (size * 1.2 if value is invalid).\n\t * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\n\t * @since 2.7.0\n\t */\n\ttoLineHeight: function(value, size) {\n\t\tvar matches = ('' + value).match(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\n\t\tif (!matches || matches[1] === 'normal') {\n\t\t\treturn size * 1.2;\n\t\t}\n\n\t\tvalue = +matches[2];\n\n\t\tswitch (matches[3]) {\n\t\tcase 'px':\n\t\t\treturn value;\n\t\tcase '%':\n\t\t\tvalue /= 100;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tbreak;\n\t\t}\n\n\t\treturn size * value;\n\t},\n\n\t/**\n\t * Converts the given value into a padding object with pre-computed width/height.\n\t * @param {number|object} value - If a number, set the value to all TRBL component,\n\t * else, if and object, use defined properties and sets undefined ones to 0.\n\t * @returns {object} The padding values (top, right, bottom, left, width, height)\n\t * @since 2.7.0\n\t */\n\ttoPadding: function(value) {\n\t\tvar t, r, b, l;\n\n\t\tif (helpers_core.isObject(value)) {\n\t\t\tt = +value.top || 0;\n\t\t\tr = +value.right || 0;\n\t\t\tb = +value.bottom || 0;\n\t\t\tl = +value.left || 0;\n\t\t} else {\n\t\t\tt = r = b = l = +value || 0;\n\t\t}\n\n\t\treturn {\n\t\t\ttop: t,\n\t\t\tright: r,\n\t\t\tbottom: b,\n\t\t\tleft: l,\n\t\t\theight: t + b,\n\t\t\twidth: l + r\n\t\t};\n\t},\n\n\t/**\n\t * Parses font options and returns the font object.\n\t * @param {object} options - A object that contains font options to be parsed.\n\t * @return {object} The font object.\n\t * @todo Support font.* options and renamed to toFont().\n\t * @private\n\t */\n\t_parseFont: function(options) {\n\t\tvar globalDefaults = core_defaults.global;\n\t\tvar size = valueOrDefault(options.fontSize, globalDefaults.defaultFontSize);\n\t\tvar font = {\n\t\t\tfamily: valueOrDefault(options.fontFamily, globalDefaults.defaultFontFamily),\n\t\t\tlineHeight: helpers_core.options.toLineHeight(valueOrDefault(options.lineHeight, globalDefaults.defaultLineHeight), size),\n\t\t\tsize: size,\n\t\t\tstyle: valueOrDefault(options.fontStyle, globalDefaults.defaultFontStyle),\n\t\t\tweight: null,\n\t\t\tstring: ''\n\t\t};\n\n\t\tfont.string = toFontString(font);\n\t\treturn font;\n\t},\n\n\t/**\n\t * Evaluates the given `inputs` sequentially and returns the first defined value.\n\t * @param {Array} inputs - An array of values, falling back to the last value.\n\t * @param {object} [context] - If defined and the current value is a function, the value\n\t * is called with `context` as first argument and the result becomes the new input.\n\t * @param {number} [index] - If defined and the current value is an array, the value\n\t * at `index` become the new input.\n\t * @since 2.7.0\n\t */\n\tresolve: function(inputs, context, index) {\n\t\tvar i, ilen, value;\n\n\t\tfor (i = 0, ilen = inputs.length; i < ilen; ++i) {\n\t\t\tvalue = inputs[i];\n\t\t\tif (value === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (context !== undefined && typeof value === 'function') {\n\t\t\t\tvalue = value(context);\n\t\t\t}\n\t\t\tif (index !== undefined && helpers_core.isArray(value)) {\n\t\t\t\tvalue = value[index];\n\t\t\t}\n\t\t\tif (value !== undefined) {\n\t\t\t\treturn value;\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar helpers$1 = helpers_core;\nvar easing = helpers_easing;\nvar canvas = helpers_canvas;\nvar options = helpers_options;\nhelpers$1.easing = easing;\nhelpers$1.canvas = canvas;\nhelpers$1.options = options;\n\nfunction interpolate(start, view, model, ease) {\n\tvar keys = Object.keys(model);\n\tvar i, ilen, key, actual, origin, target, type, c0, c1;\n\n\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\tkey = keys[i];\n\n\t\ttarget = model[key];\n\n\t\t// if a value is added to the model after pivot() has been called, the view\n\t\t// doesn't contain it, so let's initialize the view to the target value.\n\t\tif (!view.hasOwnProperty(key)) {\n\t\t\tview[key] = target;\n\t\t}\n\n\t\tactual = view[key];\n\n\t\tif (actual === target || key[0] === '_') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!start.hasOwnProperty(key)) {\n\t\t\tstart[key] = actual;\n\t\t}\n\n\t\torigin = start[key];\n\n\t\ttype = typeof target;\n\n\t\tif (type === typeof origin) {\n\t\t\tif (type === 'string') {\n\t\t\t\tc0 = chartjsColor(origin);\n\t\t\t\tif (c0.valid) {\n\t\t\t\t\tc1 = chartjsColor(target);\n\t\t\t\t\tif (c1.valid) {\n\t\t\t\t\t\tview[key] = c1.mix(c0, ease).rgbString();\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (helpers$1.isFinite(origin) && helpers$1.isFinite(target)) {\n\t\t\t\tview[key] = origin + (target - origin) * ease;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tview[key] = target;\n\t}\n}\n\nvar Element = function(configuration) {\n\thelpers$1.extend(this, configuration);\n\tthis.initialize.apply(this, arguments);\n};\n\nhelpers$1.extend(Element.prototype, {\n\n\tinitialize: function() {\n\t\tthis.hidden = false;\n\t},\n\n\tpivot: function() {\n\t\tvar me = this;\n\t\tif (!me._view) {\n\t\t\tme._view = helpers$1.clone(me._model);\n\t\t}\n\t\tme._start = {};\n\t\treturn me;\n\t},\n\n\ttransition: function(ease) {\n\t\tvar me = this;\n\t\tvar model = me._model;\n\t\tvar start = me._start;\n\t\tvar view = me._view;\n\n\t\t// No animation -> No Transition\n\t\tif (!model || ease === 1) {\n\t\t\tme._view = model;\n\t\t\tme._start = null;\n\t\t\treturn me;\n\t\t}\n\n\t\tif (!view) {\n\t\t\tview = me._view = {};\n\t\t}\n\n\t\tif (!start) {\n\t\t\tstart = me._start = {};\n\t\t}\n\n\t\tinterpolate(start, view, model, ease);\n\n\t\treturn me;\n\t},\n\n\ttooltipPosition: function() {\n\t\treturn {\n\t\t\tx: this._model.x,\n\t\t\ty: this._model.y\n\t\t};\n\t},\n\n\thasValue: function() {\n\t\treturn helpers$1.isNumber(this._model.x) && helpers$1.isNumber(this._model.y);\n\t}\n});\n\nElement.extend = helpers$1.inherits;\n\nvar core_element = Element;\n\nvar exports$2 = core_element.extend({\n\tchart: null, // the animation associated chart instance\n\tcurrentStep: 0, // the current animation step\n\tnumSteps: 60, // default number of steps\n\teasing: '', // the easing to use for this animation\n\trender: null, // render function used by the animation service\n\n\tonAnimationProgress: null, // user specified callback to fire on each step of the animation\n\tonAnimationComplete: null, // user specified callback to fire when the animation finishes\n});\n\nvar core_animation = exports$2;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.Animation instead\n * @prop Chart.Animation#animationObject\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n */\nObject.defineProperty(exports$2.prototype, 'animationObject', {\n\tget: function() {\n\t\treturn this;\n\t}\n});\n\n/**\n * Provided for backward compatibility, use Chart.Animation#chart instead\n * @prop Chart.Animation#chartInstance\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n */\nObject.defineProperty(exports$2.prototype, 'chartInstance', {\n\tget: function() {\n\t\treturn this.chart;\n\t},\n\tset: function(value) {\n\t\tthis.chart = value;\n\t}\n});\n\ncore_defaults._set('global', {\n\tanimation: {\n\t\tduration: 1000,\n\t\teasing: 'easeOutQuart',\n\t\tonProgress: helpers$1.noop,\n\t\tonComplete: helpers$1.noop\n\t}\n});\n\nvar core_animations = {\n\tanimations: [],\n\trequest: null,\n\n\t/**\n\t * @param {Chart} chart - The chart to animate.\n\t * @param {Chart.Animation} animation - The animation that we will animate.\n\t * @param {number} duration - The animation duration in ms.\n\t * @param {boolean} lazy - if true, the chart is not marked as animating to enable more responsive interactions\n\t */\n\taddAnimation: function(chart, animation, duration, lazy) {\n\t\tvar animations = this.animations;\n\t\tvar i, ilen;\n\n\t\tanimation.chart = chart;\n\t\tanimation.startTime = Date.now();\n\t\tanimation.duration = duration;\n\n\t\tif (!lazy) {\n\t\t\tchart.animating = true;\n\t\t}\n\n\t\tfor (i = 0, ilen = animations.length; i < ilen; ++i) {\n\t\t\tif (animations[i].chart === chart) {\n\t\t\t\tanimations[i] = animation;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tanimations.push(animation);\n\n\t\t// If there are no animations queued, manually kickstart a digest, for lack of a better word\n\t\tif (animations.length === 1) {\n\t\t\tthis.requestAnimationFrame();\n\t\t}\n\t},\n\n\tcancelAnimation: function(chart) {\n\t\tvar index = helpers$1.findIndex(this.animations, function(animation) {\n\t\t\treturn animation.chart === chart;\n\t\t});\n\n\t\tif (index !== -1) {\n\t\t\tthis.animations.splice(index, 1);\n\t\t\tchart.animating = false;\n\t\t}\n\t},\n\n\trequestAnimationFrame: function() {\n\t\tvar me = this;\n\t\tif (me.request === null) {\n\t\t\t// Skip animation frame requests until the active one is executed.\n\t\t\t// This can happen when processing mouse events, e.g. 'mousemove'\n\t\t\t// and 'mouseout' events will trigger multiple renders.\n\t\t\tme.request = helpers$1.requestAnimFrame.call(window, function() {\n\t\t\t\tme.request = null;\n\t\t\t\tme.startDigest();\n\t\t\t});\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tstartDigest: function() {\n\t\tvar me = this;\n\n\t\tme.advance();\n\n\t\t// Do we have more stuff to animate?\n\t\tif (me.animations.length > 0) {\n\t\t\tme.requestAnimationFrame();\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tadvance: function() {\n\t\tvar animations = this.animations;\n\t\tvar animation, chart, numSteps, nextStep;\n\t\tvar i = 0;\n\n\t\t// 1 animation per chart, so we are looping charts here\n\t\twhile (i < animations.length) {\n\t\t\tanimation = animations[i];\n\t\t\tchart = animation.chart;\n\t\t\tnumSteps = animation.numSteps;\n\n\t\t\t// Make sure that currentStep starts at 1\n\t\t\t// https://github.com/chartjs/Chart.js/issues/6104\n\t\t\tnextStep = Math.floor((Date.now() - animation.startTime) / animation.duration * numSteps) + 1;\n\t\t\tanimation.currentStep = Math.min(nextStep, numSteps);\n\n\t\t\thelpers$1.callback(animation.render, [chart, animation], chart);\n\t\t\thelpers$1.callback(animation.onAnimationProgress, [animation], chart);\n\n\t\t\tif (animation.currentStep >= numSteps) {\n\t\t\t\thelpers$1.callback(animation.onAnimationComplete, [animation], chart);\n\t\t\t\tchart.animating = false;\n\t\t\t\tanimations.splice(i, 1);\n\t\t\t} else {\n\t\t\t\t++i;\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar resolve = helpers$1.options.resolve;\n\nvar arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\n\n/**\n * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\n * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\n * called on the 'onData*' callbacks (e.g. onDataPush, etc.) with same arguments.\n */\nfunction listenArrayEvents(array, listener) {\n\tif (array._chartjs) {\n\t\tarray._chartjs.listeners.push(listener);\n\t\treturn;\n\t}\n\n\tObject.defineProperty(array, '_chartjs', {\n\t\tconfigurable: true,\n\t\tenumerable: false,\n\t\tvalue: {\n\t\t\tlisteners: [listener]\n\t\t}\n\t});\n\n\tarrayEvents.forEach(function(key) {\n\t\tvar method = 'onData' + key.charAt(0).toUpperCase() + key.slice(1);\n\t\tvar base = array[key];\n\n\t\tObject.defineProperty(array, key, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: function() {\n\t\t\t\tvar args = Array.prototype.slice.call(arguments);\n\t\t\t\tvar res = base.apply(this, args);\n\n\t\t\t\thelpers$1.each(array._chartjs.listeners, function(object) {\n\t\t\t\t\tif (typeof object[method] === 'function') {\n\t\t\t\t\t\tobject[method].apply(object, args);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn res;\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Removes the given array event listener and cleanup extra attached properties (such as\n * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\n */\nfunction unlistenArrayEvents(array, listener) {\n\tvar stub = array._chartjs;\n\tif (!stub) {\n\t\treturn;\n\t}\n\n\tvar listeners = stub.listeners;\n\tvar index = listeners.indexOf(listener);\n\tif (index !== -1) {\n\t\tlisteners.splice(index, 1);\n\t}\n\n\tif (listeners.length > 0) {\n\t\treturn;\n\t}\n\n\tarrayEvents.forEach(function(key) {\n\t\tdelete array[key];\n\t});\n\n\tdelete array._chartjs;\n}\n\n// Base class for all dataset controllers (line, bar, etc)\nvar DatasetController = function(chart, datasetIndex) {\n\tthis.initialize(chart, datasetIndex);\n};\n\nhelpers$1.extend(DatasetController.prototype, {\n\n\t/**\n\t * Element type used to generate a meta dataset (e.g. Chart.element.Line).\n\t * @type {Chart.core.element}\n\t */\n\tdatasetElementType: null,\n\n\t/**\n\t * Element type used to generate a meta data (e.g. Chart.element.Point).\n\t * @type {Chart.core.element}\n\t */\n\tdataElementType: null,\n\n\tinitialize: function(chart, datasetIndex) {\n\t\tvar me = this;\n\t\tme.chart = chart;\n\t\tme.index = datasetIndex;\n\t\tme.linkScales();\n\t\tme.addElements();\n\t},\n\n\tupdateIndex: function(datasetIndex) {\n\t\tthis.index = datasetIndex;\n\t},\n\n\tlinkScales: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar dataset = me.getDataset();\n\n\t\tif (meta.xAxisID === null || !(meta.xAxisID in me.chart.scales)) {\n\t\t\tmeta.xAxisID = dataset.xAxisID || me.chart.options.scales.xAxes[0].id;\n\t\t}\n\t\tif (meta.yAxisID === null || !(meta.yAxisID in me.chart.scales)) {\n\t\t\tmeta.yAxisID = dataset.yAxisID || me.chart.options.scales.yAxes[0].id;\n\t\t}\n\t},\n\n\tgetDataset: function() {\n\t\treturn this.chart.data.datasets[this.index];\n\t},\n\n\tgetMeta: function() {\n\t\treturn this.chart.getDatasetMeta(this.index);\n\t},\n\n\tgetScaleForId: function(scaleID) {\n\t\treturn this.chart.scales[scaleID];\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getValueScaleId: function() {\n\t\treturn this.getMeta().yAxisID;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScaleId: function() {\n\t\treturn this.getMeta().xAxisID;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getValueScale: function() {\n\t\treturn this.getScaleForId(this._getValueScaleId());\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScale: function() {\n\t\treturn this.getScaleForId(this._getIndexScaleId());\n\t},\n\n\treset: function() {\n\t\tthis.update(true);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tdestroy: function() {\n\t\tif (this._data) {\n\t\t\tunlistenArrayEvents(this._data, this);\n\t\t}\n\t},\n\n\tcreateMetaDataset: function() {\n\t\tvar me = this;\n\t\tvar type = me.datasetElementType;\n\t\treturn type && new type({\n\t\t\t_chart: me.chart,\n\t\t\t_datasetIndex: me.index\n\t\t});\n\t},\n\n\tcreateMetaData: function(index) {\n\t\tvar me = this;\n\t\tvar type = me.dataElementType;\n\t\treturn type && new type({\n\t\t\t_chart: me.chart,\n\t\t\t_datasetIndex: me.index,\n\t\t\t_index: index\n\t\t});\n\t},\n\n\taddElements: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar data = me.getDataset().data || [];\n\t\tvar metaData = meta.data;\n\t\tvar i, ilen;\n\n\t\tfor (i = 0, ilen = data.length; i < ilen; ++i) {\n\t\t\tmetaData[i] = metaData[i] || me.createMetaData(i);\n\t\t}\n\n\t\tmeta.dataset = meta.dataset || me.createMetaDataset();\n\t},\n\n\taddElementAndReset: function(index) {\n\t\tvar element = this.createMetaData(index);\n\t\tthis.getMeta().data.splice(index, 0, element);\n\t\tthis.updateElement(element, index, true);\n\t},\n\n\tbuildOrUpdateElements: function() {\n\t\tvar me = this;\n\t\tvar dataset = me.getDataset();\n\t\tvar data = dataset.data || (dataset.data = []);\n\n\t\t// In order to correctly handle data addition/deletion animation (an thus simulate\n\t\t// real-time charts), we need to monitor these data modifications and synchronize\n\t\t// the internal meta data accordingly.\n\t\tif (me._data !== data) {\n\t\t\tif (me._data) {\n\t\t\t\t// This case happens when the user replaced the data array instance.\n\t\t\t\tunlistenArrayEvents(me._data, me);\n\t\t\t}\n\n\t\t\tif (data && Object.isExtensible(data)) {\n\t\t\t\tlistenArrayEvents(data, me);\n\t\t\t}\n\t\t\tme._data = data;\n\t\t}\n\n\t\t// Re-sync meta data in case the user replaced the data array or if we missed\n\t\t// any updates and so make sure that we handle number of datapoints changing.\n\t\tme.resyncElements();\n\t},\n\n\tupdate: helpers$1.noop,\n\n\ttransition: function(easingValue) {\n\t\tvar meta = this.getMeta();\n\t\tvar elements = meta.data || [];\n\t\tvar ilen = elements.length;\n\t\tvar i = 0;\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\telements[i].transition(easingValue);\n\t\t}\n\n\t\tif (meta.dataset) {\n\t\t\tmeta.dataset.transition(easingValue);\n\t\t}\n\t},\n\n\tdraw: function() {\n\t\tvar meta = this.getMeta();\n\t\tvar elements = meta.data || [];\n\t\tvar ilen = elements.length;\n\t\tvar i = 0;\n\n\t\tif (meta.dataset) {\n\t\t\tmeta.dataset.draw();\n\t\t}\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\telements[i].draw();\n\t\t}\n\t},\n\n\tremoveHoverStyle: function(element) {\n\t\thelpers$1.merge(element._model, element.$previousStyle || {});\n\t\tdelete element.$previousStyle;\n\t},\n\n\tsetHoverStyle: function(element) {\n\t\tvar dataset = this.chart.data.datasets[element._datasetIndex];\n\t\tvar index = element._index;\n\t\tvar custom = element.custom || {};\n\t\tvar model = element._model;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\telement.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth\n\t\t};\n\n\t\tmodel.backgroundColor = resolve([custom.hoverBackgroundColor, dataset.hoverBackgroundColor, getHoverColor(model.backgroundColor)], undefined, index);\n\t\tmodel.borderColor = resolve([custom.hoverBorderColor, dataset.hoverBorderColor, getHoverColor(model.borderColor)], undefined, index);\n\t\tmodel.borderWidth = resolve([custom.hoverBorderWidth, dataset.hoverBorderWidth, model.borderWidth], undefined, index);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tresyncElements: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar data = me.getDataset().data;\n\t\tvar numMeta = meta.data.length;\n\t\tvar numData = data.length;\n\n\t\tif (numData < numMeta) {\n\t\t\tmeta.data.splice(numData, numMeta - numData);\n\t\t} else if (numData > numMeta) {\n\t\t\tme.insertElements(numMeta, numData - numMeta);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tinsertElements: function(start, count) {\n\t\tfor (var i = 0; i < count; ++i) {\n\t\t\tthis.addElementAndReset(start + i);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataPush: function() {\n\t\tvar count = arguments.length;\n\t\tthis.insertElements(this.getDataset().data.length - count, count);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataPop: function() {\n\t\tthis.getMeta().data.pop();\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataShift: function() {\n\t\tthis.getMeta().data.shift();\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataSplice: function(start, count) {\n\t\tthis.getMeta().data.splice(start, count);\n\t\tthis.insertElements(start, arguments.length - 2);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataUnshift: function() {\n\t\tthis.insertElements(0, arguments.length);\n\t}\n});\n\nDatasetController.extend = helpers$1.inherits;\n\nvar core_datasetController = DatasetController;\n\ncore_defaults._set('global', {\n\telements: {\n\t\tarc: {\n\t\t\tbackgroundColor: core_defaults.global.defaultColor,\n\t\t\tborderColor: '#fff',\n\t\t\tborderWidth: 2,\n\t\t\tborderAlign: 'center'\n\t\t}\n\t}\n});\n\nvar element_arc = core_element.extend({\n\tinLabelRange: function(mouseX) {\n\t\tvar vm = this._view;\n\n\t\tif (vm) {\n\t\t\treturn (Math.pow(mouseX - vm.x, 2) < Math.pow(vm.radius + vm.hoverRadius, 2));\n\t\t}\n\t\treturn false;\n\t},\n\n\tinRange: function(chartX, chartY) {\n\t\tvar vm = this._view;\n\n\t\tif (vm) {\n\t\t\tvar pointRelativePosition = helpers$1.getAngleFromPoint(vm, {x: chartX, y: chartY});\n\t\t\tvar\tangle = pointRelativePosition.angle;\n\t\t\tvar distance = pointRelativePosition.distance;\n\n\t\t\t// Sanitise angle range\n\t\t\tvar startAngle = vm.startAngle;\n\t\t\tvar endAngle = vm.endAngle;\n\t\t\twhile (endAngle < startAngle) {\n\t\t\t\tendAngle += 2.0 * Math.PI;\n\t\t\t}\n\t\t\twhile (angle > endAngle) {\n\t\t\t\tangle -= 2.0 * Math.PI;\n\t\t\t}\n\t\t\twhile (angle < startAngle) {\n\t\t\t\tangle += 2.0 * Math.PI;\n\t\t\t}\n\n\t\t\t// Check if within the range of the open/close angle\n\t\t\tvar betweenAngles = (angle >= startAngle && angle <= endAngle);\n\t\t\tvar withinRadius = (distance >= vm.innerRadius && distance <= vm.outerRadius);\n\n\t\t\treturn (betweenAngles && withinRadius);\n\t\t}\n\t\treturn false;\n\t},\n\n\tgetCenterPoint: function() {\n\t\tvar vm = this._view;\n\t\tvar halfAngle = (vm.startAngle + vm.endAngle) / 2;\n\t\tvar halfRadius = (vm.innerRadius + vm.outerRadius) / 2;\n\t\treturn {\n\t\t\tx: vm.x + Math.cos(halfAngle) * halfRadius,\n\t\t\ty: vm.y + Math.sin(halfAngle) * halfRadius\n\t\t};\n\t},\n\n\tgetArea: function() {\n\t\tvar vm = this._view;\n\t\treturn Math.PI * ((vm.endAngle - vm.startAngle) / (2 * Math.PI)) * (Math.pow(vm.outerRadius, 2) - Math.pow(vm.innerRadius, 2));\n\t},\n\n\ttooltipPosition: function() {\n\t\tvar vm = this._view;\n\t\tvar centreAngle = vm.startAngle + ((vm.endAngle - vm.startAngle) / 2);\n\t\tvar rangeFromCentre = (vm.outerRadius - vm.innerRadius) / 2 + vm.innerRadius;\n\n\t\treturn {\n\t\t\tx: vm.x + (Math.cos(centreAngle) * rangeFromCentre),\n\t\t\ty: vm.y + (Math.sin(centreAngle) * rangeFromCentre)\n\t\t};\n\t},\n\n\tdraw: function() {\n\t\tvar ctx = this._chart.ctx;\n\t\tvar vm = this._view;\n\t\tvar sA = vm.startAngle;\n\t\tvar eA = vm.endAngle;\n\t\tvar pixelMargin = (vm.borderAlign === 'inner') ? 0.33 : 0;\n\t\tvar angleMargin;\n\n\t\tctx.save();\n\n\t\tctx.beginPath();\n\t\tctx.arc(vm.x, vm.y, Math.max(vm.outerRadius - pixelMargin, 0), sA, eA);\n\t\tctx.arc(vm.x, vm.y, vm.innerRadius, eA, sA, true);\n\t\tctx.closePath();\n\n\t\tctx.fillStyle = vm.backgroundColor;\n\t\tctx.fill();\n\n\t\tif (vm.borderWidth) {\n\t\t\tif (vm.borderAlign === 'inner') {\n\t\t\t\t// Draw an inner border by cliping the arc and drawing a double-width border\n\t\t\t\t// Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\n\t\t\t\tctx.beginPath();\n\t\t\t\tangleMargin = pixelMargin / vm.outerRadius;\n\t\t\t\tctx.arc(vm.x, vm.y, vm.outerRadius, sA - angleMargin, eA + angleMargin);\n\t\t\t\tif (vm.innerRadius > pixelMargin) {\n\t\t\t\t\tangleMargin = pixelMargin / vm.innerRadius;\n\t\t\t\t\tctx.arc(vm.x, vm.y, vm.innerRadius - pixelMargin, eA + angleMargin, sA - angleMargin, true);\n\t\t\t\t} else {\n\t\t\t\t\tctx.arc(vm.x, vm.y, pixelMargin, eA + Math.PI / 2, sA - Math.PI / 2);\n\t\t\t\t}\n\t\t\t\tctx.closePath();\n\t\t\t\tctx.clip();\n\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.arc(vm.x, vm.y, vm.outerRadius, sA, eA);\n\t\t\t\tctx.arc(vm.x, vm.y, vm.innerRadius, eA, sA, true);\n\t\t\t\tctx.closePath();\n\n\t\t\t\tctx.lineWidth = vm.borderWidth * 2;\n\t\t\t\tctx.lineJoin = 'round';\n\t\t\t} else {\n\t\t\t\tctx.lineWidth = vm.borderWidth;\n\t\t\t\tctx.lineJoin = 'bevel';\n\t\t\t}\n\n\t\t\tctx.strokeStyle = vm.borderColor;\n\t\t\tctx.stroke();\n\t\t}\n\n\t\tctx.restore();\n\t}\n});\n\nvar valueOrDefault$1 = helpers$1.valueOrDefault;\n\nvar defaultColor = core_defaults.global.defaultColor;\n\ncore_defaults._set('global', {\n\telements: {\n\t\tline: {\n\t\t\ttension: 0.4,\n\t\t\tbackgroundColor: defaultColor,\n\t\t\tborderWidth: 3,\n\t\t\tborderColor: defaultColor,\n\t\t\tborderCapStyle: 'butt',\n\t\t\tborderDash: [],\n\t\t\tborderDashOffset: 0.0,\n\t\t\tborderJoinStyle: 'miter',\n\t\t\tcapBezierPoints: true,\n\t\t\tfill: true, // do we fill in the area between the line and its base axis\n\t\t}\n\t}\n});\n\nvar element_line = core_element.extend({\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar vm = me._view;\n\t\tvar ctx = me._chart.ctx;\n\t\tvar spanGaps = vm.spanGaps;\n\t\tvar points = me._children.slice(); // clone array\n\t\tvar globalDefaults = core_defaults.global;\n\t\tvar globalOptionLineElements = globalDefaults.elements.line;\n\t\tvar lastDrawnIndex = -1;\n\t\tvar index, current, previous, currentVM;\n\n\t\t// If we are looping, adding the first point again\n\t\tif (me._loop && points.length) {\n\t\t\tpoints.push(points[0]);\n\t\t}\n\n\t\tctx.save();\n\n\t\t// Stroke Line Options\n\t\tctx.lineCap = vm.borderCapStyle || globalOptionLineElements.borderCapStyle;\n\n\t\t// IE 9 and 10 do not support line dash\n\t\tif (ctx.setLineDash) {\n\t\t\tctx.setLineDash(vm.borderDash || globalOptionLineElements.borderDash);\n\t\t}\n\n\t\tctx.lineDashOffset = valueOrDefault$1(vm.borderDashOffset, globalOptionLineElements.borderDashOffset);\n\t\tctx.lineJoin = vm.borderJoinStyle || globalOptionLineElements.borderJoinStyle;\n\t\tctx.lineWidth = valueOrDefault$1(vm.borderWidth, globalOptionLineElements.borderWidth);\n\t\tctx.strokeStyle = vm.borderColor || globalDefaults.defaultColor;\n\n\t\t// Stroke Line\n\t\tctx.beginPath();\n\t\tlastDrawnIndex = -1;\n\n\t\tfor (index = 0; index < points.length; ++index) {\n\t\t\tcurrent = points[index];\n\t\t\tprevious = helpers$1.previousItem(points, index);\n\t\t\tcurrentVM = current._view;\n\n\t\t\t// First point moves to it's starting position no matter what\n\t\t\tif (index === 0) {\n\t\t\t\tif (!currentVM.skip) {\n\t\t\t\t\tctx.moveTo(currentVM.x, currentVM.y);\n\t\t\t\t\tlastDrawnIndex = index;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tprevious = lastDrawnIndex === -1 ? previous : points[lastDrawnIndex];\n\n\t\t\t\tif (!currentVM.skip) {\n\t\t\t\t\tif ((lastDrawnIndex !== (index - 1) && !spanGaps) || lastDrawnIndex === -1) {\n\t\t\t\t\t\t// There was a gap and this is the first point after the gap\n\t\t\t\t\t\tctx.moveTo(currentVM.x, currentVM.y);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Line to next point\n\t\t\t\t\t\thelpers$1.canvas.lineTo(ctx, previous._view, current._view);\n\t\t\t\t\t}\n\t\t\t\t\tlastDrawnIndex = index;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tctx.stroke();\n\t\tctx.restore();\n\t}\n});\n\nvar valueOrDefault$2 = helpers$1.valueOrDefault;\n\nvar defaultColor$1 = core_defaults.global.defaultColor;\n\ncore_defaults._set('global', {\n\telements: {\n\t\tpoint: {\n\t\t\tradius: 3,\n\t\t\tpointStyle: 'circle',\n\t\t\tbackgroundColor: defaultColor$1,\n\t\t\tborderColor: defaultColor$1,\n\t\t\tborderWidth: 1,\n\t\t\t// Hover\n\t\t\thitRadius: 1,\n\t\t\thoverRadius: 4,\n\t\t\thoverBorderWidth: 1\n\t\t}\n\t}\n});\n\nfunction xRange(mouseX) {\n\tvar vm = this._view;\n\treturn vm ? (Math.abs(mouseX - vm.x) < vm.radius + vm.hitRadius) : false;\n}\n\nfunction yRange(mouseY) {\n\tvar vm = this._view;\n\treturn vm ? (Math.abs(mouseY - vm.y) < vm.radius + vm.hitRadius) : false;\n}\n\nvar element_point = core_element.extend({\n\tinRange: function(mouseX, mouseY) {\n\t\tvar vm = this._view;\n\t\treturn vm ? ((Math.pow(mouseX - vm.x, 2) + Math.pow(mouseY - vm.y, 2)) < Math.pow(vm.hitRadius + vm.radius, 2)) : false;\n\t},\n\n\tinLabelRange: xRange,\n\tinXRange: xRange,\n\tinYRange: yRange,\n\n\tgetCenterPoint: function() {\n\t\tvar vm = this._view;\n\t\treturn {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y\n\t\t};\n\t},\n\n\tgetArea: function() {\n\t\treturn Math.PI * Math.pow(this._view.radius, 2);\n\t},\n\n\ttooltipPosition: function() {\n\t\tvar vm = this._view;\n\t\treturn {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y,\n\t\t\tpadding: vm.radius + vm.borderWidth\n\t\t};\n\t},\n\n\tdraw: function(chartArea) {\n\t\tvar vm = this._view;\n\t\tvar ctx = this._chart.ctx;\n\t\tvar pointStyle = vm.pointStyle;\n\t\tvar rotation = vm.rotation;\n\t\tvar radius = vm.radius;\n\t\tvar x = vm.x;\n\t\tvar y = vm.y;\n\t\tvar globalDefaults = core_defaults.global;\n\t\tvar defaultColor = globalDefaults.defaultColor; // eslint-disable-line no-shadow\n\n\t\tif (vm.skip) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Clipping for Points.\n\t\tif (chartArea === undefined || helpers$1.canvas._isPointInArea(vm, chartArea)) {\n\t\t\tctx.strokeStyle = vm.borderColor || defaultColor;\n\t\t\tctx.lineWidth = valueOrDefault$2(vm.borderWidth, globalDefaults.elements.point.borderWidth);\n\t\t\tctx.fillStyle = vm.backgroundColor || defaultColor;\n\t\t\thelpers$1.canvas.drawPoint(ctx, pointStyle, radius, x, y, rotation);\n\t\t}\n\t}\n});\n\nvar defaultColor$2 = core_defaults.global.defaultColor;\n\ncore_defaults._set('global', {\n\telements: {\n\t\trectangle: {\n\t\t\tbackgroundColor: defaultColor$2,\n\t\t\tborderColor: defaultColor$2,\n\t\t\tborderSkipped: 'bottom',\n\t\t\tborderWidth: 0\n\t\t}\n\t}\n});\n\nfunction isVertical(vm) {\n\treturn vm && vm.width !== undefined;\n}\n\n/**\n * Helper function to get the bounds of the bar regardless of the orientation\n * @param bar {Chart.Element.Rectangle} the bar\n * @return {Bounds} bounds of the bar\n * @private\n */\nfunction getBarBounds(vm) {\n\tvar x1, x2, y1, y2, half;\n\n\tif (isVertical(vm)) {\n\t\thalf = vm.width / 2;\n\t\tx1 = vm.x - half;\n\t\tx2 = vm.x + half;\n\t\ty1 = Math.min(vm.y, vm.base);\n\t\ty2 = Math.max(vm.y, vm.base);\n\t} else {\n\t\thalf = vm.height / 2;\n\t\tx1 = Math.min(vm.x, vm.base);\n\t\tx2 = Math.max(vm.x, vm.base);\n\t\ty1 = vm.y - half;\n\t\ty2 = vm.y + half;\n\t}\n\n\treturn {\n\t\tleft: x1,\n\t\ttop: y1,\n\t\tright: x2,\n\t\tbottom: y2\n\t};\n}\n\nfunction swap(orig, v1, v2) {\n\treturn orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\n\nfunction parseBorderSkipped(vm) {\n\tvar edge = vm.borderSkipped;\n\tvar res = {};\n\n\tif (!edge) {\n\t\treturn res;\n\t}\n\n\tif (vm.horizontal) {\n\t\tif (vm.base > vm.x) {\n\t\t\tedge = swap(edge, 'left', 'right');\n\t\t}\n\t} else if (vm.base < vm.y) {\n\t\tedge = swap(edge, 'bottom', 'top');\n\t}\n\n\tres[edge] = true;\n\treturn res;\n}\n\nfunction parseBorderWidth(vm, maxW, maxH) {\n\tvar value = vm.borderWidth;\n\tvar skip = parseBorderSkipped(vm);\n\tvar t, r, b, l;\n\n\tif (helpers$1.isObject(value)) {\n\t\tt = +value.top || 0;\n\t\tr = +value.right || 0;\n\t\tb = +value.bottom || 0;\n\t\tl = +value.left || 0;\n\t} else {\n\t\tt = r = b = l = +value || 0;\n\t}\n\n\treturn {\n\t\tt: skip.top || (t < 0) ? 0 : t > maxH ? maxH : t,\n\t\tr: skip.right || (r < 0) ? 0 : r > maxW ? maxW : r,\n\t\tb: skip.bottom || (b < 0) ? 0 : b > maxH ? maxH : b,\n\t\tl: skip.left || (l < 0) ? 0 : l > maxW ? maxW : l\n\t};\n}\n\nfunction boundingRects(vm) {\n\tvar bounds = getBarBounds(vm);\n\tvar width = bounds.right - bounds.left;\n\tvar height = bounds.bottom - bounds.top;\n\tvar border = parseBorderWidth(vm, width / 2, height / 2);\n\n\treturn {\n\t\touter: {\n\t\t\tx: bounds.left,\n\t\t\ty: bounds.top,\n\t\t\tw: width,\n\t\t\th: height\n\t\t},\n\t\tinner: {\n\t\t\tx: bounds.left + border.l,\n\t\t\ty: bounds.top + border.t,\n\t\t\tw: width - border.l - border.r,\n\t\t\th: height - border.t - border.b\n\t\t}\n\t};\n}\n\nfunction inRange(vm, x, y) {\n\tvar skipX = x === null;\n\tvar skipY = y === null;\n\tvar bounds = !vm || (skipX && skipY) ? false : getBarBounds(vm);\n\n\treturn bounds\n\t\t&& (skipX || x >= bounds.left && x <= bounds.right)\n\t\t&& (skipY || y >= bounds.top && y <= bounds.bottom);\n}\n\nvar element_rectangle = core_element.extend({\n\tdraw: function() {\n\t\tvar ctx = this._chart.ctx;\n\t\tvar vm = this._view;\n\t\tvar rects = boundingRects(vm);\n\t\tvar outer = rects.outer;\n\t\tvar inner = rects.inner;\n\n\t\tctx.fillStyle = vm.backgroundColor;\n\t\tctx.fillRect(outer.x, outer.y, outer.w, outer.h);\n\n\t\tif (outer.w === inner.w && outer.h === inner.h) {\n\t\t\treturn;\n\t\t}\n\n\t\tctx.save();\n\t\tctx.beginPath();\n\t\tctx.rect(outer.x, outer.y, outer.w, outer.h);\n\t\tctx.clip();\n\t\tctx.fillStyle = vm.borderColor;\n\t\tctx.rect(inner.x, inner.y, inner.w, inner.h);\n\t\tctx.fill('evenodd');\n\t\tctx.restore();\n\t},\n\n\theight: function() {\n\t\tvar vm = this._view;\n\t\treturn vm.base - vm.y;\n\t},\n\n\tinRange: function(mouseX, mouseY) {\n\t\treturn inRange(this._view, mouseX, mouseY);\n\t},\n\n\tinLabelRange: function(mouseX, mouseY) {\n\t\tvar vm = this._view;\n\t\treturn isVertical(vm)\n\t\t\t? inRange(vm, mouseX, null)\n\t\t\t: inRange(vm, null, mouseY);\n\t},\n\n\tinXRange: function(mouseX) {\n\t\treturn inRange(this._view, mouseX, null);\n\t},\n\n\tinYRange: function(mouseY) {\n\t\treturn inRange(this._view, null, mouseY);\n\t},\n\n\tgetCenterPoint: function() {\n\t\tvar vm = this._view;\n\t\tvar x, y;\n\t\tif (isVertical(vm)) {\n\t\t\tx = vm.x;\n\t\t\ty = (vm.y + vm.base) / 2;\n\t\t} else {\n\t\t\tx = (vm.x + vm.base) / 2;\n\t\t\ty = vm.y;\n\t\t}\n\n\t\treturn {x: x, y: y};\n\t},\n\n\tgetArea: function() {\n\t\tvar vm = this._view;\n\n\t\treturn isVertical(vm)\n\t\t\t? vm.width * Math.abs(vm.y - vm.base)\n\t\t\t: vm.height * Math.abs(vm.x - vm.base);\n\t},\n\n\ttooltipPosition: function() {\n\t\tvar vm = this._view;\n\t\treturn {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y\n\t\t};\n\t}\n});\n\nvar elements = {};\nvar Arc = element_arc;\nvar Line = element_line;\nvar Point = element_point;\nvar Rectangle = element_rectangle;\nelements.Arc = Arc;\nelements.Line = Line;\nelements.Point = Point;\nelements.Rectangle = Rectangle;\n\nvar resolve$1 = helpers$1.options.resolve;\n\ncore_defaults._set('bar', {\n\thover: {\n\t\tmode: 'label'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'category',\n\t\t\tcategoryPercentage: 0.8,\n\t\t\tbarPercentage: 0.9,\n\t\t\toffset: true,\n\t\t\tgridLines: {\n\t\t\t\toffsetGridLines: true\n\t\t\t}\n\t\t}],\n\n\t\tyAxes: [{\n\t\t\ttype: 'linear'\n\t\t}]\n\t}\n});\n\n/**\n * Computes the \"optimal\" sample size to maintain bars equally sized while preventing overlap.\n * @private\n */\nfunction computeMinSampleSize(scale, pixels) {\n\tvar min = scale.isHorizontal() ? scale.width : scale.height;\n\tvar ticks = scale.getTicks();\n\tvar prev, curr, i, ilen;\n\n\tfor (i = 1, ilen = pixels.length; i < ilen; ++i) {\n\t\tmin = Math.min(min, Math.abs(pixels[i] - pixels[i - 1]));\n\t}\n\n\tfor (i = 0, ilen = ticks.length; i < ilen; ++i) {\n\t\tcurr = scale.getPixelForTick(i);\n\t\tmin = i > 0 ? Math.min(min, curr - prev) : min;\n\t\tprev = curr;\n\t}\n\n\treturn min;\n}\n\n/**\n * Computes an \"ideal\" category based on the absolute bar thickness or, if undefined or null,\n * uses the smallest interval (see computeMinSampleSize) that prevents bar overlapping. This\n * mode currently always generates bars equally sized (until we introduce scriptable options?).\n * @private\n */\nfunction computeFitCategoryTraits(index, ruler, options) {\n\tvar thickness = options.barThickness;\n\tvar count = ruler.stackCount;\n\tvar curr = ruler.pixels[index];\n\tvar size, ratio;\n\n\tif (helpers$1.isNullOrUndef(thickness)) {\n\t\tsize = ruler.min * options.categoryPercentage;\n\t\tratio = options.barPercentage;\n\t} else {\n\t\t// When bar thickness is enforced, category and bar percentages are ignored.\n\t\t// Note(SB): we could add support for relative bar thickness (e.g. barThickness: '50%')\n\t\t// and deprecate barPercentage since this value is ignored when thickness is absolute.\n\t\tsize = thickness * count;\n\t\tratio = 1;\n\t}\n\n\treturn {\n\t\tchunk: size / count,\n\t\tratio: ratio,\n\t\tstart: curr - (size / 2)\n\t};\n}\n\n/**\n * Computes an \"optimal\" category that globally arranges bars side by side (no gap when\n * percentage options are 1), based on the previous and following categories. This mode\n * generates bars with different widths when data are not evenly spaced.\n * @private\n */\nfunction computeFlexCategoryTraits(index, ruler, options) {\n\tvar pixels = ruler.pixels;\n\tvar curr = pixels[index];\n\tvar prev = index > 0 ? pixels[index - 1] : null;\n\tvar next = index < pixels.length - 1 ? pixels[index + 1] : null;\n\tvar percent = options.categoryPercentage;\n\tvar start, size;\n\n\tif (prev === null) {\n\t\t// first data: its size is double based on the next point or,\n\t\t// if it's also the last data, we use the scale size.\n\t\tprev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n\t}\n\n\tif (next === null) {\n\t\t// last data: its size is also double based on the previous point.\n\t\tnext = curr + curr - prev;\n\t}\n\n\tstart = curr - (curr - Math.min(prev, next)) / 2 * percent;\n\tsize = Math.abs(next - prev) / 2 * percent;\n\n\treturn {\n\t\tchunk: size / ruler.stackCount,\n\t\tratio: options.barPercentage,\n\t\tstart: start\n\t};\n}\n\nvar controller_bar = core_datasetController.extend({\n\n\tdataElementType: elements.Rectangle,\n\n\tinitialize: function() {\n\t\tvar me = this;\n\t\tvar meta;\n\n\t\tcore_datasetController.prototype.initialize.apply(me, arguments);\n\n\t\tmeta = me.getMeta();\n\t\tmeta.stack = me.getDataset().stack;\n\t\tmeta.bar = true;\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar rects = me.getMeta().data;\n\t\tvar i, ilen;\n\n\t\tme._ruler = me.getRuler();\n\n\t\tfor (i = 0, ilen = rects.length; i < ilen; ++i) {\n\t\t\tme.updateElement(rects[i], i, reset);\n\t\t}\n\t},\n\n\tupdateElement: function(rectangle, index, reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar dataset = me.getDataset();\n\t\tvar options = me._resolveElementOptions(rectangle, index);\n\n\t\trectangle._xScale = me.getScaleForId(meta.xAxisID);\n\t\trectangle._yScale = me.getScaleForId(meta.yAxisID);\n\t\trectangle._datasetIndex = me.index;\n\t\trectangle._index = index;\n\t\trectangle._model = {\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderSkipped: options.borderSkipped,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\tdatasetLabel: dataset.label,\n\t\t\tlabel: me.chart.data.labels[index]\n\t\t};\n\n\t\tme._updateElementGeometry(rectangle, index, reset);\n\n\t\trectangle.pivot();\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_updateElementGeometry: function(rectangle, index, reset) {\n\t\tvar me = this;\n\t\tvar model = rectangle._model;\n\t\tvar vscale = me._getValueScale();\n\t\tvar base = vscale.getBasePixel();\n\t\tvar horizontal = vscale.isHorizontal();\n\t\tvar ruler = me._ruler || me.getRuler();\n\t\tvar vpixels = me.calculateBarValuePixels(me.index, index);\n\t\tvar ipixels = me.calculateBarIndexPixels(me.index, index, ruler);\n\n\t\tmodel.horizontal = horizontal;\n\t\tmodel.base = reset ? base : vpixels.base;\n\t\tmodel.x = horizontal ? reset ? base : vpixels.head : ipixels.center;\n\t\tmodel.y = horizontal ? ipixels.center : reset ? base : vpixels.head;\n\t\tmodel.height = horizontal ? ipixels.size : undefined;\n\t\tmodel.width = horizontal ? undefined : ipixels.size;\n\t},\n\n\t/**\n\t * Returns the stacks based on groups and bar visibility.\n\t * @param {number} [last] - The dataset index\n\t * @returns {string[]} The list of stack IDs\n\t * @private\n\t */\n\t_getStacks: function(last) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar scale = me._getIndexScale();\n\t\tvar stacked = scale.options.stacked;\n\t\tvar ilen = last === undefined ? chart.data.datasets.length : last + 1;\n\t\tvar stacks = [];\n\t\tvar i, meta;\n\n\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\tif (meta.bar && chart.isDatasetVisible(i) &&\n\t\t\t\t(stacked === false ||\n\t\t\t\t(stacked === true && stacks.indexOf(meta.stack) === -1) ||\n\t\t\t\t(stacked === undefined && (meta.stack === undefined || stacks.indexOf(meta.stack) === -1)))) {\n\t\t\t\tstacks.push(meta.stack);\n\t\t\t}\n\t\t}\n\n\t\treturn stacks;\n\t},\n\n\t/**\n\t * Returns the effective number of stacks based on groups and bar visibility.\n\t * @private\n\t */\n\tgetStackCount: function() {\n\t\treturn this._getStacks().length;\n\t},\n\n\t/**\n\t * Returns the stack index for the given dataset based on groups and bar visibility.\n\t * @param {number} [datasetIndex] - The dataset index\n\t * @param {string} [name] - The stack name to find\n\t * @returns {number} The stack index\n\t * @private\n\t */\n\tgetStackIndex: function(datasetIndex, name) {\n\t\tvar stacks = this._getStacks(datasetIndex);\n\t\tvar index = (name !== undefined)\n\t\t\t? stacks.indexOf(name)\n\t\t\t: -1; // indexOf returns -1 if element is not present\n\n\t\treturn (index === -1)\n\t\t\t? stacks.length - 1\n\t\t\t: index;\n\t},\n\n\t/**\n\t * @private\n\t */\n\tgetRuler: function() {\n\t\tvar me = this;\n\t\tvar scale = me._getIndexScale();\n\t\tvar stackCount = me.getStackCount();\n\t\tvar datasetIndex = me.index;\n\t\tvar isHorizontal = scale.isHorizontal();\n\t\tvar start = isHorizontal ? scale.left : scale.top;\n\t\tvar end = start + (isHorizontal ? scale.width : scale.height);\n\t\tvar pixels = [];\n\t\tvar i, ilen, min;\n\n\t\tfor (i = 0, ilen = me.getMeta().data.length; i < ilen; ++i) {\n\t\t\tpixels.push(scale.getPixelForValue(null, i, datasetIndex));\n\t\t}\n\n\t\tmin = helpers$1.isNullOrUndef(scale.options.barThickness)\n\t\t\t? computeMinSampleSize(scale, pixels)\n\t\t\t: -1;\n\n\t\treturn {\n\t\t\tmin: min,\n\t\t\tpixels: pixels,\n\t\t\tstart: start,\n\t\t\tend: end,\n\t\t\tstackCount: stackCount,\n\t\t\tscale: scale\n\t\t};\n\t},\n\n\t/**\n\t * Note: pixel values are not clamped to the scale area.\n\t * @private\n\t */\n\tcalculateBarValuePixels: function(datasetIndex, index) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar meta = me.getMeta();\n\t\tvar scale = me._getValueScale();\n\t\tvar isHorizontal = scale.isHorizontal();\n\t\tvar datasets = chart.data.datasets;\n\t\tvar value = +scale.getRightValue(datasets[datasetIndex].data[index]);\n\t\tvar minBarLength = scale.options.minBarLength;\n\t\tvar stacked = scale.options.stacked;\n\t\tvar stack = meta.stack;\n\t\tvar start = 0;\n\t\tvar i, imeta, ivalue, base, head, size;\n\n\t\tif (stacked || (stacked === undefined && stack !== undefined)) {\n\t\t\tfor (i = 0; i < datasetIndex; ++i) {\n\t\t\t\timeta = chart.getDatasetMeta(i);\n\n\t\t\t\tif (imeta.bar &&\n\t\t\t\t\timeta.stack === stack &&\n\t\t\t\t\timeta.controller._getValueScaleId() === scale.id &&\n\t\t\t\t\tchart.isDatasetVisible(i)) {\n\n\t\t\t\t\tivalue = +scale.getRightValue(datasets[i].data[index]);\n\t\t\t\t\tif ((value < 0 && ivalue < 0) || (value >= 0 && ivalue > 0)) {\n\t\t\t\t\t\tstart += ivalue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tbase = scale.getPixelForValue(start);\n\t\thead = scale.getPixelForValue(start + value);\n\t\tsize = head - base;\n\n\t\tif (minBarLength !== undefined && Math.abs(size) < minBarLength) {\n\t\t\tsize = minBarLength;\n\t\t\tif (value >= 0 && !isHorizontal || value < 0 && isHorizontal) {\n\t\t\t\thead = base - minBarLength;\n\t\t\t} else {\n\t\t\t\thead = base + minBarLength;\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tsize: size,\n\t\t\tbase: base,\n\t\t\thead: head,\n\t\t\tcenter: head + size / 2\n\t\t};\n\t},\n\n\t/**\n\t * @private\n\t */\n\tcalculateBarIndexPixels: function(datasetIndex, index, ruler) {\n\t\tvar me = this;\n\t\tvar options = ruler.scale.options;\n\t\tvar range = options.barThickness === 'flex'\n\t\t\t? computeFlexCategoryTraits(index, ruler, options)\n\t\t\t: computeFitCategoryTraits(index, ruler, options);\n\n\t\tvar stackIndex = me.getStackIndex(datasetIndex, me.getMeta().stack);\n\t\tvar center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\n\t\tvar size = Math.min(\n\t\t\thelpers$1.valueOrDefault(options.maxBarThickness, Infinity),\n\t\t\trange.chunk * range.ratio);\n\n\t\treturn {\n\t\t\tbase: center - size / 2,\n\t\t\thead: center + size / 2,\n\t\t\tcenter: center,\n\t\t\tsize: size\n\t\t};\n\t},\n\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar scale = me._getValueScale();\n\t\tvar rects = me.getMeta().data;\n\t\tvar dataset = me.getDataset();\n\t\tvar ilen = rects.length;\n\t\tvar i = 0;\n\n\t\thelpers$1.canvas.clipArea(chart.ctx, chart.chartArea);\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\tif (!isNaN(scale.getRightValue(dataset.data[i]))) {\n\t\t\t\trects[i].draw();\n\t\t\t}\n\t\t}\n\n\t\thelpers$1.canvas.unclipArea(chart.ctx);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveElementOptions: function(rectangle, index) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar datasets = chart.data.datasets;\n\t\tvar dataset = datasets[me.index];\n\t\tvar custom = rectangle.custom || {};\n\t\tvar options = chart.options.elements.rectangle;\n\t\tvar values = {};\n\t\tvar i, ilen, key;\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: chart,\n\t\t\tdataIndex: index,\n\t\t\tdataset: dataset,\n\t\t\tdatasetIndex: me.index\n\t\t};\n\n\t\tvar keys = [\n\t\t\t'backgroundColor',\n\t\t\t'borderColor',\n\t\t\t'borderSkipped',\n\t\t\t'borderWidth'\n\t\t];\n\n\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\t\tkey = keys[i];\n\t\t\tvalues[key] = resolve$1([\n\t\t\t\tcustom[key],\n\t\t\t\tdataset[key],\n\t\t\t\toptions[key]\n\t\t\t], context, index);\n\t\t}\n\n\t\treturn values;\n\t}\n});\n\nvar valueOrDefault$3 = helpers$1.valueOrDefault;\nvar resolve$2 = helpers$1.options.resolve;\n\ncore_defaults._set('bubble', {\n\thover: {\n\t\tmode: 'single'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'linear', // bubble should probably use a linear scale by default\n\t\t\tposition: 'bottom',\n\t\t\tid: 'x-axis-0' // need an ID so datasets can reference the scale\n\t\t}],\n\t\tyAxes: [{\n\t\t\ttype: 'linear',\n\t\t\tposition: 'left',\n\t\t\tid: 'y-axis-0'\n\t\t}]\n\t},\n\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\t// Title doesn't make sense for scatter since we format the data as a point\n\t\t\t\treturn '';\n\t\t\t},\n\t\t\tlabel: function(item, data) {\n\t\t\t\tvar datasetLabel = data.datasets[item.datasetIndex].label || '';\n\t\t\t\tvar dataPoint = data.datasets[item.datasetIndex].data[item.index];\n\t\t\t\treturn datasetLabel + ': (' + item.xLabel + ', ' + item.yLabel + ', ' + dataPoint.r + ')';\n\t\t\t}\n\t\t}\n\t}\n});\n\nvar controller_bubble = core_datasetController.extend({\n\t/**\n\t * @protected\n\t */\n\tdataElementType: elements.Point,\n\n\t/**\n\t * @protected\n\t */\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar points = meta.data;\n\n\t\t// Update Points\n\t\thelpers$1.each(points, function(point, index) {\n\t\t\tme.updateElement(point, index, reset);\n\t\t});\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tupdateElement: function(point, index, reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar custom = point.custom || {};\n\t\tvar xScale = me.getScaleForId(meta.xAxisID);\n\t\tvar yScale = me.getScaleForId(meta.yAxisID);\n\t\tvar options = me._resolveElementOptions(point, index);\n\t\tvar data = me.getDataset().data[index];\n\t\tvar dsIndex = me.index;\n\n\t\tvar x = reset ? xScale.getPixelForDecimal(0.5) : xScale.getPixelForValue(typeof data === 'object' ? data : NaN, index, dsIndex);\n\t\tvar y = reset ? yScale.getBasePixel() : yScale.getPixelForValue(data, index, dsIndex);\n\n\t\tpoint._xScale = xScale;\n\t\tpoint._yScale = yScale;\n\t\tpoint._options = options;\n\t\tpoint._datasetIndex = dsIndex;\n\t\tpoint._index = index;\n\t\tpoint._model = {\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\thitRadius: options.hitRadius,\n\t\t\tpointStyle: options.pointStyle,\n\t\t\trotation: options.rotation,\n\t\t\tradius: reset ? 0 : options.radius,\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\n\t\t\tx: x,\n\t\t\ty: y,\n\t\t};\n\n\t\tpoint.pivot();\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tsetHoverStyle: function(point) {\n\t\tvar model = point._model;\n\t\tvar options = point._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\tpoint.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t\tradius: model.radius\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault$3(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault$3(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault$3(options.hoverBorderWidth, options.borderWidth);\n\t\tmodel.radius = options.radius + options.hoverRadius;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveElementOptions: function(point, index) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar datasets = chart.data.datasets;\n\t\tvar dataset = datasets[me.index];\n\t\tvar custom = point.custom || {};\n\t\tvar options = chart.options.elements.point;\n\t\tvar data = dataset.data[index];\n\t\tvar values = {};\n\t\tvar i, ilen, key;\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: chart,\n\t\t\tdataIndex: index,\n\t\t\tdataset: dataset,\n\t\t\tdatasetIndex: me.index\n\t\t};\n\n\t\tvar keys = [\n\t\t\t'backgroundColor',\n\t\t\t'borderColor',\n\t\t\t'borderWidth',\n\t\t\t'hoverBackgroundColor',\n\t\t\t'hoverBorderColor',\n\t\t\t'hoverBorderWidth',\n\t\t\t'hoverRadius',\n\t\t\t'hitRadius',\n\t\t\t'pointStyle',\n\t\t\t'rotation'\n\t\t];\n\n\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\t\tkey = keys[i];\n\t\t\tvalues[key] = resolve$2([\n\t\t\t\tcustom[key],\n\t\t\t\tdataset[key],\n\t\t\t\toptions[key]\n\t\t\t], context, index);\n\t\t}\n\n\t\t// Custom radius resolution\n\t\tvalues.radius = resolve$2([\n\t\t\tcustom.radius,\n\t\t\tdata ? data.r : undefined,\n\t\t\tdataset.radius,\n\t\t\toptions.radius\n\t\t], context, index);\n\n\t\treturn values;\n\t}\n});\n\nvar resolve$3 = helpers$1.options.resolve;\nvar valueOrDefault$4 = helpers$1.valueOrDefault;\n\ncore_defaults._set('doughnut', {\n\tanimation: {\n\t\t// Boolean - Whether we animate the rotation of the Doughnut\n\t\tanimateRotate: true,\n\t\t// Boolean - Whether we animate scaling the Doughnut from the centre\n\t\tanimateScale: false\n\t},\n\thover: {\n\t\tmode: 'single'\n\t},\n\tlegendCallback: function(chart) {\n\t\tvar text = [];\n\t\ttext.push('