{"version":3,"sources":["webpack:///./node_modules/chart.js/dist/Chart.js"],"names":["module","exports","moment","hasOwnProperty","conversions","rgb2hsl","rgb2hsv","rgb2hwb","rgb2cmyk","rgb2keyword","rgb2xyz","rgb2lab","rgb2lch","args","lab2lch","hsl2rgb","hsl2hsv","hsl","h","s","l","hsl2hwb","hsl2cmyk","hsl2keyword","hsv2rgb","hsv2hsl","hsv","sl","v","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","lch2lab","lch2xyz","lch2rgb","rgb","r","g","b","min","Math","max","delta","k","reverseKeywords","JSON","stringify","pow","xyz","x","y","z","t1","t2","t3","val","i","hi","floor","f","p","q","t","hwb","n","wh","bl","ratio","cmyk","c","m","lab","y2","a","atan2","PI","sqrt","lch","hr","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","key","convert","Converter","func","arg","Array","prototype","slice","call","arguments","pair","exec","from","to","undefined","length","round","this","convs","routeSpace","space","values","getValues","setValues","vals","fspace","forEach","colorConvert","colorName","colorString","getRgba","getHsla","getRgb","string","rgba","getHsl","hsla","getHwb","getAlpha","hexString","hexDouble","rgbString","alpha","rgbaString","percentString","percentaString","hslString","hslaString","hwbString","reverseNames","match","hexAlpha","parseInt","parseFloat","scale","isNaN","num","str","toString","toUpperCase","name","Color","obj","valid","lightness","value","w","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","light","negate","lighten","darken","saturate","desaturate","whiten","blacken","greyscale","clearer","opaquer","rotate","degrees","mix","mixinColor","weight","w1","w2","toJSON","clone","type","result","source","target","prop","console","error","spaces","maxes","charAt","capped","chans","sname","index","svalues","window","id","chartjsColor","helpers","noop","uid","isNullOrUndef","isArray","Object","substr","isObject","isFinite","Number","valueOrDefault","defaultValue","valueAtIndexOrDefault","callback","fn","thisArg","apply","each","loopable","reverse","len","keys","arrayEquals","a0","a1","ilen","v0","v1","map","klen","_merger","options","tval","sval","merge","_mergerIf","mergeIf","sources","merger","extend","setFn","inherits","extensions","me","ChartElement","constructor","Surrogate","__super__","helpers_core","callCallback","indexOf","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","chart","ctx","clearRect","width","height","roundedRect","radius","left","top","right","bottom","moveTo","arc","closePath","rect","drawPoint","style","rotation","xOffset","yOffset","size","cornerRadius","rad","beginPath","lineTo","SQRT1_2","fill","stroke","drawImage","_isPointInArea","point","area","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","helpers_options","toLineHeight","matches","toPadding","_parseFont","globalDefaults","global","fontSize","font","family","fontFamily","lineHeight","fontStyle","toFontString","resolve","inputs","context","helpers$1","easing","canvas","Element","configuration","initialize","hidden","pivot","_view","_model","_start","transition","ease","model","start","view","actual","origin","c0","c1","interpolate","tooltipPosition","hasValue","isNumber","core_element","exports$2","currentStep","numSteps","render","onAnimationProgress","onAnimationComplete","core_animation","defineProperty","get","set","animation","duration","onProgress","onComplete","core_animations","animations","request","addAnimation","lazy","startTime","Date","now","animating","push","requestAnimationFrame","cancelAnimation","findIndex","splice","requestAnimFrame","startDigest","advance","nextStep","arrayEvents","unlistenArrayEvents","listener","stub","_chartjs","listeners","DatasetController","datasetIndex","datasetElementType","dataElementType","linkScales","addElements","updateIndex","meta","getMeta","dataset","getDataset","xAxisID","scales","xAxes","yAxisID","yAxes","data","datasets","getDatasetMeta","getScaleForId","scaleID","_getValueScaleId","_getIndexScaleId","_getValueScale","_getIndexScale","reset","update","destroy","_data","createMetaDataset","_chart","_datasetIndex","createMetaData","_index","metaData","addElementAndReset","element","updateElement","buildOrUpdateElements","isExtensible","configurable","enumerable","method","base","res","object","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","pointStyle","element_point","mouseY","inXRange","inYRange","padding","chartArea","defaultColor$2","isVertical","getBarBounds","x1","x2","y1","half","swap","orig","v2","parseBorderWidth","maxW","maxH","edge","borderSkipped","horizontal","parseBorderSkipped","skipX","skipY","bounds","rectangle","element_rectangle","rects","border","outer","inner","boundingRects","fillRect","Arc","Line","Point","Rectangle","resolve$1","hover","mode","categoryPercentage","barPercentage","offset","gridLines","offsetGridLines","controller_bar","stack","bar","_ruler","getRuler","_resolveElementOptions","_xScale","_yScale","datasetLabel","label","labels","_updateElementGeometry","vscale","getBasePixel","isHorizontal","ruler","vpixels","calculateBarValuePixels","ipixels","calculateBarIndexPixels","head","center","_getStacks","last","stacked","stacks","isDatasetVisible","getStackCount","getStackIndex","stackCount","end","pixels","getPixelForValue","barThickness","prev","curr","ticks","getTicks","getPixelForTick","computeMinSampleSize","imeta","ivalue","getRightValue","minBarLength","controller","range","next","percent","chunk","computeFlexCategoryTraits","thickness","computeFitCategoryTraits","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","onClick","e","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","filter","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","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","addSizeByPosition","boxes","box","layout","core_layouts","addBox","fullWidth","removeBox","layoutItem","configure","props","layoutOptions","leftPadding","rightPadding","topPadding","bottomPadding","leftBoxes","rightBoxes","topBoxes","bottomBoxes","chartAreaBoxes","maxPadding","verticalBoxes","horizontalBoxes","outerBoxes","chartWidth","chartHeight","verticalBoxWidth","maxChartAreaWidth","maxChartAreaHeight","outerBoxSizes","minBoxSizes","getPadding","boxPadding","findMaxPadding","fitBox","minBoxSize","findNextWhere","scaleMargin","leftPaddingAddition","topPaddingAddition","newMaxChartAreaHeight","newMaxChartAreaWidth","placeBox","minBox","stylesheet","freeze","default","ANIMATION_START_EVENTS","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","readUsedSize","property","getStyle","eventListenerOptions","supports","addEventListener","passive","addListener","node","removeListener","removeEventListener","createEvent","nativeEvent","createDiv","cls","el","document","createElement","className","addResizeListener","ticking","expando","resizer","CSS_PREFIX","expand","CSS_SIZE_MONITOR","shrink","appendChild","_reset","scrollLeft","scrollTop","onScroll","bind","createResizer","container","maintainAspectRatio","parentNode","clientWidth","proxy","renderProxy","animationName","reflow","offsetParent","classList","add","watchForRender","insertBefore","firstChild","removeResizeListener","remove","unwatchForRender","removeChild","platform_dom$2","disableCSSInjection","_enabled","_ensureLoaded","_loaded","platform","css","_style","setAttribute","getElementsByTagName","createTextNode","injectCSS","acquireContext","config","getElementById","getContext","renderHeight","getAttribute","renderWidth","initial","displayWidth","aspectRatio","displayHeight","initCanvas","releaseContext","removeAttribute","proxies","event","pos","fromNativeEvent","addEvent","removeEvent","implementation","plugins","core_plugins","_plugins","_cacheId","register","plugin","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","labelTextColor","afterLabel","afterBody","beforeFooter","footer","afterFooter","positioners","average","eventPosition","nearestElement","d","distanceBetweenPoints","tp","pushOrConcat","toPush","splitNewlines","String","split","getBaseModel","tooltipOpts","xAlign","yAlign","_bodyFontFamily","bodyFontFamily","_bodyFontStyle","bodyFontStyle","_bodyAlign","bodyFontSize","_titleFontFamily","titleFontFamily","_titleFontStyle","titleFontSize","_titleAlign","_footerFontFamily","footerFontFamily","_footerFontStyle","footerFontSize","_footerAlign","opacity","legendColorBackground","getAlignedX","align","getBeforeAfterBodyLines","exports$3","_lastActive","getTitle","lines","getBeforeBody","getBody","bodyItems","bodyItem","before","after","getAfterBody","getFooter","changed","indexScale","valueScale","existingModel","active","_active","alignment","backgroundPoint","tooltipSize","caretX","caretY","labelColors","labelTextColors","_eventPosition","getLabelForIndex","itemSort","body","dataPoints","tooltip","combinedBodyLength","reduce","titleLineCount","footerLineCount","widthPadding","maxLineWidth","measureText","fontString","getTooltipSize","paddingAndSize","radiusAndPadding","getBackgroundPoint","lf","rf","olf","orf","yf","midX","midY","determineAlignment","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","updateConfig","newOptions","ensureScalesHaveIDs","buildOrUpdateScales","positionIsHorizontal","events","onHover","animationDuration","responsive","responsiveAnimationDuration","Chart","construct","initConfig","_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","generateLegend","unbindEvents","toBase64Image","toDataURL","_chartInstance","_listeners","eventHandler","updateHoverStyle","bufferedRequest","hoverOptions","core_controller","abstract","DateAdapter","Controller","types","configMerge","scaleMerge","formats","parse","format","diff","startOf","endOf","_create","override","members","core_adapters","_date","core_ticks","formatters","tickValue","logDelta","log10","tickString","logTick","toExponential","numDecimal","toFixed","logarithmic","remain","valueOrDefault$9","labelsFromTicks","computeTextSize","tick","longestText","color","drawBorder","drawOnChartArea","drawTicks","tickMarkLength","zeroLineWidth","zeroLineColor","zeroLineBorderDash","zeroLineBorderDashOffset","scaleLabel","labelString","minRotation","maxRotation","mirror","autoSkip","autoSkipPadding","labelOffset","minor","major","core_scale","paddingLeft","paddingTop","paddingRight","paddingBottom","_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","originalLabelWidth","labelWidth","tickWidth","angleRadians","toRadians","scaleLabelOpts","gridLineOpts","_isVisible","parseFont","isFullWidth","scaleLabelFont","scaleLabelPadding","deltaHeight","largestTextWidth","tallestLabelHeightInLines","numberOfLabelLines","lineSpace","tickPadding","labelHeight","firstLabelWidth","lastLabelWidth","offsetLeft","offsetRight","handleMargins","rawValue","getValueForPixel","pixel","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","_alignPixel","lineColor","tx1","ty1","tx2","ty2","labelX","labelY","textOffset","zeroLineIndex","lineValue","getPixelForGridLine","labelYOffset","labelXOffset","glWidth","glColor","glBorderDash","glBorderDashOffset","itemToDraw","translate","scaleLabelX","scaleLabelY","halfLineHeight","isLeft","firstLineWidth","lastLineWidth","scale_category","getLabels","xLabels","yLabels","minIndex","maxIndex","valueCategory","offsetAmt","valueWidth","widthOffset","valueHeight","heightOffset","horz","valueDimension","_defaults","scale_linearbase","handleTickRangeOptions","minSign","sign","maxSign","setMin","suggestedMin","setMax","suggestedMax","getTickLimit","stepSize","ceil","_computeTickLimit","handleDirectionalChanges","numericGeneratorOptions","precision","fixedStepSize","generationOptions","dataRange","factor","niceMin","niceMax","numSpaces","unit","maxNumSpaces","rmin","rmax","spacing","niceNum","_decimalPlaces","almostWhole","almostEquals","generateTicks","ticksAsNumbers","defaultConfig$1","scale_linear","IDMatches","hasStacks","valuesPerStack","positiveValues","negativeValues","relativePoints","valuesForType","minVal","maxVal","innerDimension","_defaults$1","valueOrDefault$a","defaultConfig$2","nonNegativeOrDefault","scale_logarithmic","minNotZero","exp","significand","tickVal","endExp","endSignificand","lastTick","generateTicks$1","tickValues","_getFirstTickValue","firstTickValue","_defaults$2","valueOrDefault$b","valueAtIndexOrDefault$1","resolve$7","defaultConfig$3","animate","showLabelBackdrop","backdropColor","backdropPaddingY","backdropPaddingX","getValueCount","getTickBackdropHeight","determineLimits","getTextAlignForAngle","adjustPointPositionForLabelHeight","textSize","numberOrZero","param","scale_radialLinear","drawingArea","NEGATIVE_INFINITY","plFont","furthestLimits","furthestAngles","_pointLabelSizes","valueCount","getPointPosition","getIndexAngle","toDegrees","hLimits","vLimits","setReductions","fitWithPointLabels","setCenterPoint","largestPossibleRadius","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxRight","maxLeft","maxTop","maxBottom","scalingFactor","distanceFromCenter","thisAngle","getBasePosition","angleLineOpts","pointLabelOpts","tickBackdropHeight","outerDistance","outerPosition","extra","pointLabelPosition","pointLabelFontColor","drawPointLabels","yCenterOffset","drawRadiusLine","_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","interpolate$1","table","skey","tkey","mid","i0","i1","lo","lookup","span","toTimestamp","input","adapter","_adapter","time","parser","determineMajorUnit","generate","capacity","timeOpts","minUnit","interval","determineUnitForAutoTicks","unitStepSize","weekday","isoWeekday","majorTicksEnabled","first","milliseconds","determineStepSize","scale_time","adapters","date","warn","displayFormats","timestamp","timestamps","dataLabels","_horizontal","_table","_timestamps","getLabelCapacity","_unit","determineUnitForFormatting","_majorUnit","distribution","buildLookupTable","_offsets","computeOffsets","majorUnit","ticksFromTimestamps","tooltipFormat","datetime","tickFormatFunction","minorFormat","majorFormat","majorTime","majorTickOpts","formatter","getPixelForOffset","isReverse","getLabelWidth","ticksOpts","tickLabelWidth","sinRotation","exampleTime","exampleLabel","innerWidth","_defaults$4","displayFormat","category","radialLinear","FORMATS","_id","valueOf","amount","as","filler","propagate","mappers","boundary","decodeFill","computeBoundary","scaleBottom","scaleTop","scaleZero","resolveTarget","visited","visible","createMapper","isDrawable","drawArea","curve0","curve1","len0","len1","plugin_filler","afterDatasetsUpdate","$filler","mapper","beforeDatasetDraw","loop","p0","p1","d0","d1","doFill","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","textWidth","SQRT2","drawLegendBox","halfFontSize","xLeft","yMiddle","_getLegendItemAt","hitBox","lh","hoveredItem","createNewLegendAndAttach","legendOpts","plugin_legend","_element","beforeInit","afterEvent","noop$2","Title","lineCount","fontOpts","titleX","titleY","createNewTitleBlockAndAttach","titleOpts","titleBlock","parseMaxStyle","styleValue","parentProperty","valueInPixels","isConstrainedValue","getConstraintDimension","domNode","maxStyle","percentageProperty","defaultView","_getParentNode","constrainedNode","getComputedStyle","constrainedContainer","hasCNode","hasCContainer","infinity","collection","filterCallback","filtered","arrayToSearch","startIndex","currentItem","findPreviousWhere","epsilon","rounded","exponent","log","LOG10E","powerOf10","radians","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","aliasPixel","pixelWidth","currentDevicePixelRatio","halfWidth","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","fa","fb","EPSILON","pointBefore","pointCurrent","pointAfter","alphaK","betaK","tauK","squaredMagnitude","pointsWithTangents","deltaK","mK","pointsLen","slopeDeltaX","fraction","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","setTimeout","evt","originalEvent","srcElement","boundingRect","getBoundingClientRect","touches","clientX","clientY","getConstraintWidth","getConstraintHeight","_calculatePadding","parentDimension","parent","host","cw","clientHeight","ch","currentStyle","getPropertyValue","forceRatio","pixelRatio","pixelSize","arrayOfThings","gc","garbageCollect","longest","thing","nestedThing","gcLen","numberOfLines","CanvasGradient","colorValue","CanvasPattern","core_helpers","_adapters","Animation","animationService","Interaction","layouts","Scale","scaleService","Ticks","Tooltip","src","pluginService","PluginBase","canvasHelpers","layoutService","LinearScaleBase","klass","cfg","toLowerCase","factory"],"mappings":"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","file":"vendor.chart.js~46fbf940.b3fc8250717ff1500e05.chunk.js","sourcesContent":["/*!\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('