{"version":3,"sources":["webpack:////builds/gitlab/gitlabhq/node_modules/chartjs-color/index.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/core/core.interaction.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/platforms/platform.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/core/core.plugins.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale sync ^\\.\\/.*$","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/helpers/index.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/core/core.defaults.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/core/core.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/helpers/helpers.easing.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/helpers/helpers.canvas.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/helpers/helpers.options.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/core/core.helpers.js","webpack:////builds/gitlab/gitlabhq/node_modules/chartjs-color/node_modules/color-convert/index.js","webpack:////builds/gitlab/gitlabhq/node_modules/chartjs-color/node_modules/color-convert/conversions.js","webpack:////builds/gitlab/gitlabhq/node_modules/chartjs-color-string/color-string.js","webpack:////builds/gitlab/gitlabhq/node_modules/color-name/index.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/elements/element.arc.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/elements/element.line.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/elements/element.point.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/elements/element.rectangle.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/platforms/platform.basic.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/platforms/platform.dom.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/core/core.animation.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/core/core.controller.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/core/core.datasetController.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/core/core.scaleService.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/core/core.scale.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/core/core.tooltip.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/scales/scale.linearbase.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/scales/scale.category.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/scales/scale.linear.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/scales/scale.logarithmic.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/scales/scale.radialLinear.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/scales/scale.time.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/controllers/controller.bar.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/controllers/controller.bubble.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/controllers/controller.doughnut.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/controllers/controller.line.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/controllers/controller.polarArea.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/controllers/controller.radar.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/controllers/controller.scatter.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/charts/Chart.Bar.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/charts/Chart.Bubble.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/charts/Chart.Doughnut.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/charts/Chart.Line.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/charts/Chart.PolarArea.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/charts/Chart.Radar.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/charts/Chart.Scatter.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/plugins/index.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/plugins/plugin.filler.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/plugins/plugin.legend.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/plugins/plugin.title.js","webpack:///./behaviors/shortcuts/shortcuts_navigation.js","webpack:///./project_select_combo_button.js","webpack:///./project_select.js","webpack:///./pages/projects/project.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/core/core.element.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/elements/index.js","webpack:///./pages/projects/index.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/chart.js","webpack:///./lib/utils/chart_utils.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/moment.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/core/core.layouts.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/core/core.ticks.js","webpack:////builds/gitlab/gitlabhq/node_modules/chart.js/src/helpers/helpers.core.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/af.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/ar.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/ar-dz.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/ar-kw.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/ar-ly.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/ar-ma.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/ar-sa.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/ar-tn.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/az.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/be.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/bg.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/bm.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/bn.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/bo.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/br.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/bs.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/ca.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/cs.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/cv.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/cy.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/da.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/de.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/de-at.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/de-ch.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/dv.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/el.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/en-au.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/en-ca.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/en-gb.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/en-ie.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/en-il.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/en-nz.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/eo.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/es.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/es-do.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/es-us.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/et.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/eu.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/fa.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/fi.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/fo.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/fr.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/fr-ca.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/fr-ch.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/fy.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/gd.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/gl.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/gom-latn.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/gu.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/he.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/hi.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/hr.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/hu.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/hy-am.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/id.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/is.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/it.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/ja.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/jv.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/ka.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/kk.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/km.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/kn.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/ko.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/ku.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/ky.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/lb.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/lo.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/lt.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/lv.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/me.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/mi.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/mk.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/ml.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/mn.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/mr.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/ms.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/ms-my.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/mt.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/my.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/nb.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/ne.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/nl.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/nl-be.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/nn.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/pa-in.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/pl.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/pt.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/pt-br.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/ro.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/ru.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/sd.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/se.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/si.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/sk.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/sl.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/sq.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/sr.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/sr-cyrl.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/ss.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/sv.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/sw.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/ta.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/te.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/tet.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/tg.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/th.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/tl-ph.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/tlh.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/tr.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/tzl.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/tzm.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/tzm-latn.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/ug-cn.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/uk.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/ur.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/uz.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/uz-latn.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/vi.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/x-pseudo.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/yo.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/zh-cn.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/zh-hk.js","webpack:////builds/gitlab/gitlabhq/node_modules/moment/locale/zh-tw.js"],"names":["convert","__webpack_require__","string","Color","obj","this","valid","values","rgb","hsl","hsv","hwb","cmyk","alpha","vals","getRgba","setValues","getHsla","getHwb","undefined","r","red","l","lightness","v","value","w","whiteness","c","cyan","prototype","isValid","setSpace","arguments","rgbArray","hslArray","hsvArray","hwbArray","concat","cmykArray","rgbaArray","hslaArray","val","setChannel","green","blue","hue","saturation","saturationv","blackness","magenta","yellow","black","hexString","rgbString","rgbaString","percentString","hslString","hslaString","hwbString","keyword","rgbNumber","luminosity","lum","i","length","chan","Math","pow","contrast","color2","lum1","lum2","level","contrastRatio","dark","light","negate","lighten","ratio","darken","saturate","desaturate","whiten","blacken","greyscale","clearer","opaquer","rotate","degrees","mix","mixinColor","weight","p","a","w1","w2","toJSON","clone","type","result","source","target","prop","hasOwnProperty","toString","call","slice","console","error","spaces","maxes","getValues","space","charAt","capped","chans","max","min","round","sname","args","Array","index","svalues","window","module","exports","helpers","getRelativePosition","e","chart","native","x","y","parseVisibleItems","handler","meta","j","ilen","jlen","data","datasets","isDatasetVisible","getDatasetMeta","element","_view","skip","getIntersectItems","position","elements","inRange","push","getNearestItems","intersect","distanceMetric","minDistance","Number","POSITIVE_INFINITY","nearestItems","center","getCenterPoint","distance","getDistanceMetricForAxis","axis","useX","indexOf","useY","pt1","pt2","deltaX","abs","deltaY","sqrt","indexMode","options","items","forEach","dataset","datasetIndex","_index","modes","single","label","_datasetIndex","x-axis","point","nearest","sort","b","ret","getArea","intersectsItem","inXRange","inYRange","basic","dom","implementation","_enabled","extend","initialize","acquireContext","releaseContext","addEventListener","removeEventListener","defaults","_set","plugins","_plugins","_cacheId","register","plugin","unregister","idx","splice","clear","count","getAll","notify","hook","descriptor","params","method","descriptors","apply","cache","$plugins","id","config","opts","global","_invalidate","map","./af","./af.js","./ar","./ar-dz","./ar-dz.js","./ar-kw","./ar-kw.js","./ar-ly","./ar-ly.js","./ar-ma","./ar-ma.js","./ar-sa","./ar-sa.js","./ar-tn","./ar-tn.js","./ar.js","./az","./az.js","./be","./be.js","./bg","./bg.js","./bm","./bm.js","./bn","./bn.js","./bo","./bo.js","./br","./br.js","./bs","./bs.js","./ca","./ca.js","./cs","./cs.js","./cv","./cv.js","./cy","./cy.js","./da","./da.js","./de","./de-at","./de-at.js","./de-ch","./de-ch.js","./de.js","./dv","./dv.js","./el","./el.js","./en-au","./en-au.js","./en-ca","./en-ca.js","./en-gb","./en-gb.js","./en-ie","./en-ie.js","./en-il","./en-il.js","./en-nz","./en-nz.js","./eo","./eo.js","./es","./es-do","./es-do.js","./es-us","./es-us.js","./es.js","./et","./et.js","./eu","./eu.js","./fa","./fa.js","./fi","./fi.js","./fo","./fo.js","./fr","./fr-ca","./fr-ca.js","./fr-ch","./fr-ch.js","./fr.js","./fy","./fy.js","./gd","./gd.js","./gl","./gl.js","./gom-latn","./gom-latn.js","./gu","./gu.js","./he","./he.js","./hi","./hi.js","./hr","./hr.js","./hu","./hu.js","./hy-am","./hy-am.js","./id","./id.js","./is","./is.js","./it","./it.js","./ja","./ja.js","./jv","./jv.js","./ka","./ka.js","./kk","./kk.js","./km","./km.js","./kn","./kn.js","./ko","./ko.js","./ku","./ku.js","./ky","./ky.js","./lb","./lb.js","./lo","./lo.js","./lt","./lt.js","./lv","./lv.js","./me","./me.js","./mi","./mi.js","./mk","./mk.js","./ml","./ml.js","./mn","./mn.js","./mr","./mr.js","./ms","./ms-my","./ms-my.js","./ms.js","./mt","./mt.js","./my","./my.js","./nb","./nb.js","./ne","./ne.js","./nl","./nl-be","./nl-be.js","./nl.js","./nn","./nn.js","./pa-in","./pa-in.js","./pl","./pl.js","./pt","./pt-br","./pt-br.js","./pt.js","./ro","./ro.js","./ru","./ru.js","./sd","./sd.js","./se","./se.js","./si","./si.js","./sk","./sk.js","./sl","./sl.js","./sq","./sq.js","./sr","./sr-cyrl","./sr-cyrl.js","./sr.js","./ss","./ss.js","./sv","./sv.js","./sw","./sw.js","./ta","./ta.js","./te","./te.js","./tet","./tet.js","./tg","./tg.js","./th","./th.js","./tl-ph","./tl-ph.js","./tlh","./tlh.js","./tr","./tr.js","./tzl","./tzl.js","./tzm","./tzm-latn","./tzm-latn.js","./tzm.js","./ug-cn","./ug-cn.js","./uk","./uk.js","./ur","./ur.js","./uz","./uz-latn","./uz-latn.js","./uz.js","./vi","./vi.js","./x-pseudo","./x-pseudo.js","./yo","./yo.js","./zh-cn","./zh-cn.js","./zh-hk","./zh-hk.js","./zh-tw","./zh-tw.js","webpackContext","req","webpackContextResolve","Error","code","keys","Object","resolve","easing","canvas","scope","merge","responsive","responsiveAnimationDuration","maintainAspectRatio","events","hover","onHover","mode","animationDuration","onClick","defaultColor","defaultFontColor","defaultFontFamily","defaultFontSize","defaultFontStyle","showLines","layout","padding","top","right","bottom","left","Chart","item","construct","effects","linear","t","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","cos","PI","easeOutSine","sin","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","s","asin","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","easingEffects","ctx","clearRect","width","height","roundedRect","radius","rx","ry","moveTo","lineTo","quadraticCurveTo","rect","drawPoint","style","edgeLength","xOffset","yOffset","size","isNaN","beginPath","arc","closePath","fill","SQRT2","fillRect","strokeRect","offset","leftX","topY","sideSize","stroke","drawImage","clipArea","area","save","clip","unclipArea","restore","previous","flip","steppedLine","tension","bezierCurveTo","controlPointPreviousX","controlPointNextX","controlPointPreviousY","controlPointNextY","drawRoundedRectangle","toLineHeight","matches","match","toPadding","isObject","inputs","context","isArray","color","parseMaxStyle","styleValue","node","parentProperty","valueInPixels","parseInt","parentNode","isConstrainedValue","getConstraintDimension","domNode","maxStyle","percentageProperty","view","document","defaultView","constrainedNode","getComputedStyle","constrainedContainer","hasCNode","hasCContainer","infinity","configMerge","merger","key","tval","sval","scaleMerge","scaleService","getScaleDefaults","_merger","scale","slen","valueOrDefault","where","collection","filterCallback","filter","filtered","each","findIndex","array","callback","findNextWhere","arrayToSearch","startIndex","isNullOrUndef","currentItem","findPreviousWhere","isNumber","n","parseFloat","isFinite","almostEquals","epsilon","almostWhole","rounded","reduce","NEGATIVE_INFINITY","sign","log10","exponent","log","LOG10E","powerOf10","toRadians","toDegrees","radians","getAngleFromPoint","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","angle","atan2","distanceBetweenPoints","aliasPixel","pixelWidth","splineCurve","firstPoint","middlePoint","afterPoint","current","next","d01","d12","s01","s12","fa","fb","EPSILON","splineCurveMonotone","points","pointBefore","pointCurrent","pointAfter","alphaK","betaK","tauK","squaredMagnitude","pointsWithTangents","model","_model","deltaK","mK","pointsLen","slopeDeltaX","nextItem","loop","previousItem","niceNum","range","floor","fraction","requestAnimFrame","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","setTimeout","evt","mouseX","mouseY","originalEvent","currentTarget","srcElement","boundingRect","getBoundingClientRect","touches","clientX","clientY","paddingLeft","getStyle","paddingTop","paddingRight","paddingBottom","currentDevicePixelRatio","getConstraintWidth","getConstraintHeight","getMaximumWidth","container","clientWidth","cw","getMaximumHeight","clientHeight","h","ch","el","property","currentStyle","getPropertyValue","retinaScale","forceRatio","pixelRatio","devicePixelRatio","fontString","pixelSize","fontStyle","fontFamily","longestText","font","arrayOfThings","gc","garbageCollect","longest","thing","measureText","nestedThing","gcLen","textWidth","numberOfLabelLines","numberOfLines","CanvasGradient","getHoverColor","colorValue","CanvasPattern","conversions","Converter","func","arg","pair","exec","from","to","convs","routeSpace","fspace","rgb2hsl","g","delta","rgb2hsv","rgb2hwb","rgb2cmyk","k","rgb2keyword","reverseKeywords","JSON","stringify","rgb2xyz","rgb2lab","xyz","z","hsl2rgb","t1","t2","t3","hsv2rgb","hi","f","q","hwb2rgb","wh","bl","cmyk2rgb","m","xyz2rgb","xyz2lab","lab2xyz","lab","y2","lab2lch","lab2rgb","lch2lab","lch","hr","keyword2rgb","cssKeywords","rgb2lch","hsl2hsv","hsl2hwb","hsl2cmyk","hsl2keyword","hsv2hsl","sl","hsv2hwb","hsv2cmyk","hsv2keyword","hwb2hsl","hwb2hsv","hwb2cmyk","hwb2keyword","cmyk2hsl","cmyk2hsv","cmyk2hwb","cmyk2keyword","keyword2hsl","keyword2hsv","keyword2hwb","keyword2cmyk","keyword2lab","keyword2xyz","xyz2lch","lch2xyz","lch2rgb","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","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","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","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","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","yellowgreen","colorNames","rgba","percentaString","hsla","num","hexDouble","str","toUpperCase","getRgb","getHsl","getAlpha","reverseNames","name","Element","backgroundColor","borderColor","borderWidth","inLabelRange","vm","hoverRadius","chartX","chartY","pointRelativePosition","startAngle","endAngle","betweenAngles","withinRadius","innerRadius","outerRadius","halfAngle","halfRadius","tooltipPosition","centreAngle","rangeFromCentre","draw","_chart","sA","eA","strokeStyle","lineWidth","fillStyle","lineJoin","globalDefaults","line","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","capBezierPoints","currentVM","spanGaps","_children","globalOptionLineElements","lastDrawnIndex","_loop","lineCap","setLineDash","lineDashOffset","xRange","hitRadius","pointStyle","hoverBorderWidth","chartArea","isVertical","bar","getBarBounds","x1","x2","y1","halfWidth","base","halfHeight","rectangle","borderSkipped","signX","signY","horizontal","barSize","halfStroke","borderLeft","borderRight","borderTop","borderBottom","corners","startCorner","cornerAt","corner","bounds","getContext","EXPANDO_KEY","CSS_PREFIX","CSS_RENDER_MONITOR","CSS_RENDER_ANIMATION","ANIMATION_START_EVENTS","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","readUsedSize","eventListenerOptions","supports","defineProperty","get","passive","listener","createEvent","nativeEvent","addResizeListener","fn","thisArg","ticking","expando","resizer","createElement","cls","cssText","className","innerHTML","expand","childNodes","shrink","_reset","scrollLeft","scrollTop","onScroll","bind","createResizer","proxy","renderProxy","animationName","reflow","offsetParent","classList","add","watchForRender","insertBefore","firstChild","removeResizeListener","remove","unwatchForRender","removeChild","platform","css","keyframes","_style","setAttribute","getElementsByTagName","appendChild","createTextNode","getElementById","renderHeight","getAttribute","renderWidth","initial","display","displayWidth","aspectRatio","displayHeight","initCanvas","removeAttribute","proxies","event","pos","fromNativeEvent","addEvent","removeEvent","animation","duration","onProgress","noop","onComplete","Animation","currentStep","numSteps","render","onAnimationProgress","onAnimationComplete","animationService","frameDuration","animations","dropFrames","request","addAnimation","lazy","animating","cancelAnimation","me","startDigest","startTime","Date","now","framesToDrop","advance","endTime","set","Interaction","layouts","positionIsHorizontal","types","instances","controllers","labels","initConfig","uid","_bufferedRender","controller","update","bindEvents","resize","ensureScalesHaveIDs","buildOrUpdateScales","initToolTip","stop","silent","newWidth","newHeight","newSize","onResize","scalesOptions","scales","scaleOptions","xAxes","xAxisOptions","yAxes","yAxisOptions","updated","dtype","dposition","isDefault","scaleType","scaleClass","getScaleConstructor","mergeTicksOptions","hasUpdated","addScalesToLayout","buildOrUpdateControllers","newControllers","destroyDatasetMeta","updateIndex","linkScales","ControllerClass","resetElements","reset","tooltip","newOptions","removeBox","_options","tooltips","_data","buildOrUpdateElements","updateLayout","updateDatasets","lastActive","_bufferedRequest","updateDataset","animationOptions","animationObject","easingFunction","stepDecimal","easingValue","transition","boxes","box","drawDatasets","_drawTooltip","drawDataset","getElementAtEvent","getElementsAtEvent","getElementsAtXAxis","getElementsAtEventForMode","getDatasetAtEvent","_meta","hidden","xAxisID","yAxisID","getVisibleDatasetCount","generateLegend","legendCallback","destroy","unbindEvents","toBase64Image","toDataURL","Tooltip","_chartInstance","listeners","_listeners","eventHandler","updateHoverStyle","enabled","changed","handleEvent","_start","bufferedRequest","hoverOptions","active","arrayEquals","Controller","arrayEvents","unlistenArrayEvents","stub","_chartjs","DatasetController","datasetElementType","dataElementType","addElements","getMeta","getDataset","getScaleForId","scaleID","createMetaDataset","createMetaData","metaData","addElementAndReset","updateElement","configurable","enumerable","res","object","resyncElements","removeHoverStyle","elementOpts","custom","valueAtIndexOrDefault","setHoverStyle","hoverBackgroundColor","hoverBorderColor","numMeta","numData","insertElements","start","onDataPush","onDataPop","pop","onDataShift","shift","onDataSplice","onDataUnshift","inherits","constructors","registerScaleType","scaleConstructor","scaleDefaults","updateScaleDefaults","additions","fullWidth","addBox","Ticks","labelsFromTicks","ticks","getLineValue","offsetGridLines","lineValue","getPixelForTick","gridLines","drawBorder","drawOnChartArea","drawTicks","tickMarkLength","zeroLineWidth","zeroLineColor","zeroLineBorderDash","zeroLineBorderDashOffset","scaleLabel","labelString","lineHeight","beginAtZero","minRotation","maxRotation","mirror","reverse","autoSkip","autoSkipPadding","labelOffset","formatters","minor","major","computeTextSize","tick","parseFontOptions","fontSize","family","parseLineHeight","Scale","getPadding","getTicks","_ticks","beforeUpdate","maxWidth","maxHeight","margins","longestTextCache","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","beforeBuildTicks","buildTicks","afterBuildTicks","beforeTickToLabelConversion","convertTicksToLabels","afterTickToLabelConversion","beforeCalculateTickRotation","calculateTickRotation","afterCalculateTickRotation","beforeFit","fit","afterFit","afterUpdate","minSize","isHorizontal","tickOpts","userCallback","tickFont","labelRotation","cosRotation","originalLabelWidth","labelWidth","tickWidth","angleRadians","scaleLabelOpts","gridLineOpts","isFullWidth","deltaHeight","largestTextWidth","tallestLabelHeightInLines","lineSpace","tickPadding","longestLabelWidth","labelHeight","firstLabelWidth","lastLabelWidth","handleMargins","getRightValue","rawValue","NaN","getLabelForIndex","getPixelForValue","getValueForPixel","pixel","finalVal","innerHeight","getPixelForDecimal","decimal","valueOffset","getBasePixel","getBaseValue","_autoSkip","skipRatio","maxTicks","optionTicks","tickCount","labelRotationRadians","longestRotatedLabel","maxTicksLimit","optionMajorTicks","isRotated","tickFontColor","fontColor","majorTickFontColor","majorTickFont","tl","scaleLabelFontColor","scaleLabelFont","scaleLabelPadding","itemsToDraw","axisWidth","xTickStart","xTickEnd","yTickStart","yTickEnd","lineColor","tx1","ty1","tx2","ty2","labelX","labelY","zeroLineIndex","textAlign","textBaseline","labelYOffset","xLineValue","labelXOffset","isLeft","yLineValue","glWidth","glColor","glBorderDash","glBorderDashOffset","rotation","itemToDraw","translate","lineCount","fillText","scaleLabelX","scaleLabelY","halfLineHeight","titleFontStyle","titleSpacing","titleMarginBottom","titleFontColor","titleAlign","bodySpacing","bodyFontColor","bodyAlign","footerFontStyle","footerSpacing","footerMarginTop","footerFontColor","footerAlign","yPadding","xPadding","caretPadding","caretSize","cornerRadius","multiKeyBackground","displayColors","callbacks","beforeTitle","title","tooltipItems","labelCount","xLabel","afterTitle","beforeBody","beforeLabel","tooltipItem","yLabel","labelColor","labelTextColor","afterLabel","afterBody","beforeFooter","footer","afterFooter","mergeOpacity","colorString","opacity","pushOrConcat","toPush","getBaseModel","tooltipOpts","xAlign","yAlign","_bodyFontFamily","bodyFontFamily","_bodyFontStyle","bodyFontStyle","_bodyAlign","bodyFontSize","_titleFontFamily","titleFontFamily","_titleFontStyle","titleFontSize","_titleAlign","_footerFontFamily","footerFontFamily","_footerFontStyle","footerFontSize","_footerAlign","legendColorBackground","_lastActive","getTitle","lines","getBeforeBody","getBody","bodyItems","bodyItem","before","after","getAfterBody","getFooter","len","xScale","yScale","existingModel","_active","alignment","backgroundPoint","tooltipSize","caretX","caretY","labelColors","labelTextColors","positioners","_eventPosition","_xScale","_yScale","_scale","itemSort","body","dataPoints","combinedBodyLength","titleLineCount","footerLineCount","widthPadding","maxLineWidth","getTooltipSize","paddingAndSize","radiusAndPadding","getBackgroundPoint","lf","rf","olf","orf","yf","midX","midY","determineAlignment","drawCaret","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","tmp","drawTitle","pt","drawBody","xLinePadding","fillLineOfText","drawColorBoxes","textColor","drawFooter","drawBackground","hasTooltipContent","pivot","average","hasValue","eventPosition","nearestElement","d","tp","LinearScaleBase","handleTickRangeOptions","minSign","maxSign","setMin","suggestedMin","setMax","suggestedMax","getTickLimit","handleDirectionalChanges","numericGeneratorOptions","stepSize","fixedStepSize","generationOptions","dataRange","spacing","niceRange","niceMin","niceMax","ceil","numSpaces","precision","generateTicks","end","ticksAsNumbers","DatasetScale","getLabels","xLabels","yLabels","minIndex","maxIndex","valueCategory","offsetAmt","valueWidth","widthOffset","valueHeight","heightOffset","horz","valueDimension","defaultConfig","LinearScale","IDMatches","hasStacks","stacked","stack","valuesPerStack","join","positiveValues","negativeValues","relativePoints","valuesForType","minVal","maxVal","tickFontSize","rightValue","innerDimension","logarithmic","LogarithmicScale","minNotZero","exp","significand","tickVal","endExp","endSignificand","lastTick","tickValues","_getFirstTickValue","firstTickValue","getValueOrDefault","animate","angleLines","circular","showLabelBackdrop","backdropColor","backdropPaddingY","backdropPaddingX","pointLabels","getValueCount","getPointLabelFontOptions","pointLabelOptions","determineLimits","getTextAlignForAngle","text","adjustPointPositionForLabelHeight","textSize","numberOrZero","param","LinearRadialScale","xCenter","yCenter","drawingArea","largestPossibleRadius","pointPosition","plFont","furthestLimits","furthestAngles","_pointLabelSizes","valueCount","getPointPosition","getIndexAngle","hLimits","vLimits","setReductions","fitWithPointLabels","setCenterPoint","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxRight","maxLeft","maxTop","maxBottom","getDistanceFromCenterForValue","scalingFactor","distanceFromCenter","thisAngle","getPointPositionForValue","getBasePosition","tickFontStyle","tickFontFamily","tickLabelFont","yCenterOffset","drawRadiusLine","angleLineOpts","pointLabelOpts","outerDistance","outerPosition","pointLabelPosition","pointLabelFontColor","drawPointLabels","moment","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","table","skey","tkey","mid","i0","i1","lo","lookup","prev","span","momentify","parser","format","parse","input","time","startOf","valueOf","determineMajorUnit","unit","generate","capacity","timeOpts","minUnit","interval","factor","determineUnitForAutoTicks","unitStepSize","weekday","isoWeekday","majorTicksEnabled","first","last","milliseconds","determineStepSize","TimeScale","warn","timestamp","timestamps","endOf","_horizontal","_table","_timestamps","getLabelCapacity","_unit","diff","as","determineUnitForFormatting","_majorUnit","distribution","curr","buildLookupTable","_offsets","upper","lower","computeOffsets","_labelFormat","momentDate","hasTime","determineLabelFormat","majorUnit","ticksFromTimestamps","tooltipFormat","tickFormatFunction","formatOverride","formats","displayFormats","minorFormat","majorFormat","majorTime","majorTickOpts","formatter","getPixelForOffset","getLabelWidth","ticksOpts","tickLabelWidth","sinRotation","exampleTime","exampleLabel","innerWidth","displayFormat","categoryPercentage","barPercentage","Rectangle","rects","_ruler","getRuler","rectangleOptions","datasetLabel","updateElementGeometry","vscale","getValueScale","ruler","vpixels","calculateBarValuePixels","ipixels","calculateBarIndexPixels","head","getValueScaleId","getIndexScaleId","getIndexScale","_getStacks","stacks","getStackCount","getStackIndex","stackCount","pixels","barThickness","computeMinSampleSize","imeta","ivalue","percent","chunk","computeFlexCategoryTraits","thickness","computeFitCategoryTraits","stackIndex","maxBarThickness","Infinity","rectangleElementOptions","horizontalBar","dataPoint","bubble","Point","_resolveElementOptions","dsIndex","dataIndex","animateRotate","animateScale","legend","generateLabels","ds","arcOpts","legendItem","cutoutPercentage","circumference","dataLabel","doughnut","pie","Arc","getRingIndex","ringIndex","availableWidth","availableHeight","contains0","contains90","contains180","contains270","cutout","getMaxBorderWidth","radiusLength","offsetX","offsetY","total","calculateTotal","animationOpts","centerX","centerY","calculateCircumference","arcs","hoverWidth","lineEnabled","showLine","Line","lineElementOptions","lineTension","stepped","cubicInterpolationMode","updateBezierControlPoints","getPointBackgroundColor","pointBackgroundColor","getPointBorderColor","pointBorderColor","getPointBorderWidth","pointBorderWidth","pointOptions","pointRadius","pointHitRadius","calculatePointY","dsMeta","sumPos","sumNeg","stackedRightValue","controlPoints","capControlPoint","pointHoverRadius","pointHoverBackgroundColor","pointHoverBorderColor","pointHoverBorderWidth","polarArea","countVisibleElements","visibleCount","datasetStartAngle","resetRadius","radar","pointElementOptions","scatter","Bar","Bubble","Doughnut","PolarArea","Radar","Scatter","filler","propagate","mappers","boundary","decodeFill","computeBoundary","scaleBottom","scaleTop","scaleZero","resolveTarget","sources","visited","visible","createMapper","isDrawable","drawArea","curve0","curve1","len0","len1","afterDatasetsUpdate","$filler","mapper","beforeDatasetDraw","p0","p1","d0","d1","doFill","getBoxWidth","labelOpts","usePointStyle","boxWidth","ci","lineDash","Legend","legendHitBoxes","doughnutMode","beforeBuildLabels","buildLabels","afterBuildLabels","legendItems","globalDefault","labelFont","hitboxes","lineWidths","totalHeight","vPadding","columnWidths","totalWidth","currentColWidth","currentColHeight","itemHeight","itemWidth","lineDefault","legendWidth","cursor","isLineWidthZero","offSet","drawLegendBox","halfFontSize","xLeft","yMiddle","lh","hitBox","createNewLegendAndAttach","legendOpts","configure","_element","beforeInit","mergeIf","afterEvent","Title","titleX","titleY","titleFont","createNewTitleBlockAndAttach","titleOpts","titleBlock","ShortcutsNavigation","_this","_classCallCheck","_possibleConstructorReturn","_getPrototypeOf","Mousetrap","findAndFollowLink","enabledHelp","Shortcuts","ProjectSelectComboButton","select","projectSelectInput","$","newItemBtn","resourceType","resourceLabel","formattedText","deriveTextVariants","groupId","initLocalStorage","siblings","on","openDropdown","getProjectFromLocalStorage","preventDefault","selectProject","AccessorUtilities","isLocalStorageAccessSafe","localStorageKey","localStorageItemType","setBtnTextFromLocalStorage","then","select2","catch","selectedProjectData","projectMeta","url","setNewItemBtnAttributes","setProjectInLocalStorage","cachedProjectData","project","attr","defaultTextPrefix","presetTextSuffix","projectString","localStorage","getItem","setItem","split","projectSelect","placeholder","simpleFilter","includeGroups","allProjects","orderBy","withIssuesEnabled","withMergeRequestsEnabled","withShared","includeProjectsInSubgroups","allowClear","minimumInputLength","query","finalCallback","projectsCallback","projects","results","groupsCallback","groups","Api","term","groupProjects","with_issues_enabled","with_merge_requests_enabled","with_shared","include_subgroups","order_by","membership","web_url","name_with_namespace","initSelection","_ref","dropdownCssClass","__webpack_exports__","Project","$cloneOptions","$projectCloneField","$cloneBtnLabel","mobileCloneField","querySelector","selectedCloneOption","trim","addClass","$this","cloneType","removeClass","$el","activeText","find","$label","closest","toggleClass","clipboardText","initRefSwitcher","parents","submit","Cookies","projectId","cookieKey","projectSelectDropdown","changeProject","location","refListItem","refLink","href","$dropdown","selected","glDropdown","axios","ref","search","flash","__","selectable","filterable","filterRemote","filterByText","inputFieldName","fieldName","renderRow","li","cloneNode","header","textContent","link","toggleLabel","clicked","$form","$visit","shouldVisit","action","divider","visitUrl","serialize","configuration","ease","actual","origin","c0","c1","_projects_gke_cluster_dropdowns__WEBPACK_IMPORTED_MODULE_0__","_persistent_user_callout__WEBPACK_IMPORTED_MODULE_1__","_project__WEBPACK_IMPORTED_MODULE_2__","_behaviors_shortcuts_shortcuts_navigation__WEBPACK_IMPORTED_MODULE_3__","page","callout","PersistentUserCallout","factory","initGkeDropdowns","pluginService","PluginBase","canvasHelpers","layoutService","yAxesConfig","_objectSpread","xAxesConfig","commonChartOptions","barChartOptions","shouldAdjustFontSize","pieChartOptions","lineChartOptions","_ref2","numberOfPoints","_ref3","_ref4","hookCallback","some","hooks","isUndefined","isDate","arr","hasOwnProp","createUTC","locale","strict","createLocalOrUTC","utc","getParsingFlags","_pf","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","meridiem","rfc2822","weekdayMismatch","_isValid","flags","parsedParts","isNowValid","_d","getTime","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","fun","momentProperties","copyConfig","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","updateInProgress","Moment","updateOffset","isMoment","absFloor","number","toInt","argumentForCoercion","coercedNumber","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","deprecations","deprecateSimple","isFunction","Function","mergeConfigs","parentConfig","childConfig","Locale","aliases","addUnitAlias","shorthand","lowerCase","toLowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","zeroFill","targetLength","forceSign","absNumber","zerosToFill","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","localeData","formatMoment","expandFormat","replace","mom","output","makeFormatFunction","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","test","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","regexes","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","RegExp","regexEscape","matched","p2","p3","p4","tokens","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","_a","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","daysInYear","isLeapYear","parseTwoDigitYear","getSetYear","makeGetSet","keepTime","set$1","date","daysInMonth","modMonth","o","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","MONTHS_IN_FORMAT","defaultLocaleMonths","defaultLocaleMonthsShort","setMonth","dayOfMonth","getSetMonth","defaultMonthsShortRegex","defaultMonthsRegex","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","fwdlw","getUTCDay","dayOfYearFromWeeks","resYear","resDayOfYear","localWeekday","weekOffset","dayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","hours","lowercase","minutes","matchMeridiem","_meridiemParse","seconds","kInput","_isPm","isPM","_meridiem","pos1","pos2","globalLocale","getSetHour","baseConfig","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","LTS","LT","L","LL","LLL","LLLL","dayOfMonthOrdinalParse","relativeTime","future","past","ss","mm","hh","dd","M","MM","yy","meridiemParse","locales","localeFamilies","normalizeLocale","loadLocale","oldLocale","_abbr","getSetGlobalLocale","getLocale","defineLocale","abbr","_config","parentLocale","names","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","configFromArray","currentDate","expectedWeekday","yearToUse","nowValue","_useUTC","getUTCMonth","getUTCDate","getFullYear","getMonth","getDate","currentDateArray","weekYear","temp","weekdayOverflow","GG","W","E","createLocal","_week","curWeek","gg","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","ms","setFullYear","getDay","setUTCMinutes","getUTCMinutes","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","configFromStringAndFormat","untruncateYear","yearStr","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromRFC2822","monthStr","dayStr","hourStr","minuteStr","secondStr","parsedArray","weekdayStr","parsedInput","weekdayProvided","weekdayActual","checkWeekday","obsOffset","militaryOffset","numOffset","hm","calculateOffset","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemHour","isPm","prepareConfig","preparse","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromStringAndArray","createFromInputFallback","configFromString","configFromObject","configFromInput","isUTC","getOwnPropertyNames","isObjectEmpty","prototypeMin","other","prototypeMax","pickBy","moments","ordering","Duration","years","quarters","weeks","isoWeek","days","unitHasDecimal","isDurationValid","_milliseconds","_days","_months","_bubble","isDuration","absRound","separator","utcOffset","offsetFromString","chunkOffset","matcher","parts","cloneWithOffset","setTime","local","getDateOffset","getTimezoneOffset","isUtc","aspNetRegex","isoRegex","createDuration","diffRes","parseIso","isBefore","positiveMomentsDifference","inp","isAfter","createAdder","direction","period","addSubtract","isAdding","invalid","subtract","monthDiff","anchor2","adjust","wholeMonthDiff","anchor","newLocaleData","defaultFormat","defaultFormatUtc","lang","addWeekYearFormatToken","getter","getSetWeekYearHelper","weeksTarget","dayOfYearData","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetSecond","parseMs","getSetMillisecond","proto","preParsePostFormat","sod","calendarFormat","asFloat","that","zoneDelta","inputString","postformat","withoutSuffix","humanize","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","prioritized","unitsObj","u","getPrioritizedUnits","toArray","toObject","toDate","toISOString","keepOffset","inspect","zone","isLocal","prefix","suffix","unix","creationData","isoWeeks","weekInfo","isoWeeksInYear","parseWeekday","parseIsoWeekday","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","dates","isDSTShifted","_isDSTShifted","proto$1","get$1","field","setter","listMonthsImpl","listWeekdaysImpl","localeSorted","_calendar","_longDateFormat","formatUpper","_invalidDate","_ordinal","isFuture","_relativeTime","pastFuture","isFormat","_monthsShort","monthName","_monthsParseExact","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","weekdayName","_weekdaysParseExact","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","_fullWeekdaysParse","isLower","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","makeGetter","thresholds","abs$1","toISOString$1","Y","D","toFixed","totalSign","ymSign","daysSign","hmsSign","proto$2","monthsFromDays","withSuffix","posNegDuration","relativeTime$1","toIsoString","version","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","threshold","limit","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","filterByPosition","sortByWeight","_tmpIndex_","v0","v1","layoutItem","props","layoutOptions","leftPadding","rightPadding","topPadding","bottomPadding","leftBoxes","rightBoxes","topBoxes","bottomBoxes","chartAreaBoxes","chartWidth","chartHeight","chartAreaHeight","verticalBoxWidth","horizontalBoxHeight","maxChartAreaWidth","maxChartAreaHeight","minBoxSizes","maxHorizontalLeftPadding","maxHorizontalRightPadding","maxVerticalTopPadding","maxVerticalBottomPadding","horizontalBox","boxPadding","verticalBox","totalLeftBoxesWidth","totalRightBoxesWidth","totalTopBoxesHeight","totalBottomBoxesHeight","fitBox","minBoxSize","scaleMargin","leftPaddingAddition","topPaddingAddition","newMaxChartAreaHeight","newMaxChartAreaWidth","placeBox","minBox","tickValue","logDelta","tickString","numDecimal","remain","toExponential","defaultValue","loopable","a0","a1","klen","_mergerIf","setFn","extensions","ChartElement","constructor","Surrogate","__super__","callCallback","fromIndex","getValueAtIndexOrDefault","symbolMap","1","2","3","4","5","6","7","8","9","0","numberMap","١","٢","٣","٤","٥","٦","٧","٨","٩","٠","pluralForm","plurals","pluralize","weekdaysParseExact","suffixes","70","80","20","50","100","10","30","60","90","relativeTimeWithPlural","forms","standalone","lastDigit","last2Digits","১","২","৩","৪","৫","৬","৭","৮","৯","০","༡","༢","༣","༤","༥","༦","༧","༨","༩","༠","relativeTimeWithMutation","mutationTable","substring","softMutation","mutation","lastNumber","monthsParseExact","ll","lll","llll","plural","shortMonthsParse","longMonthsParse","affix","processRelativeTime","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","_calendarEl","monthsShortDot","monthsStrictRegex","monthsShortStrictRegex","۱","۲","۳","۴","۵","۶","۷","۸","۹","۰","numbersPast","numbersFuture","verbalNumber","monthsShortWithDots","monthsShortWithoutDots","૧","૨","૩","૪","૫","૬","૭","૮","૯","૦","१","२","३","४","५","६","७","८","९","०","weekEndings","40","១","២","៣","៤","៥","៦","៧","៨","៩","០","೧","೨","೩","೪","೫","೬","೭","೮","೯","೦","isUpper","eifelerRegelAppliesToNumber","firstDigit","translateSingular","special","relativeTimeWithSingular","translator","words","correctGrammaticalCase","wordKey","relativeTimeMr","၁","၂","၃","၄","၅","၆","၇","၈","၉","၀","੧","੨","੩","੪","੫","੬","੭","੮","੯","੦","monthsNominative","monthsSubjective","௧","௨","௩","௪","௫","௬","௭","௮","௯","௦","12","13","numbersNouns","numberNoun","hundred","ten","one","word","numberAsNoun","processHoursFunction","nominative","accusative","genitive","nounCase"],"mappings":"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CAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,gBAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,UAAA,IACAC,aAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IA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,cACAC,UAAA,aACAC,WAAA,YACAC,UAAA,aACAC,MAAA,aACAC,eAAA,cACAC,SAAA,cACAC,QAAA,YACAx1B,KAAA,YACAy1B,SAAA,UACAC,SAAA,YACAC,cAAA,aACAC,SAAA,cACAC,UAAA,UACAC,SAAA,cACAC,UAAA,cACAC,YAAA,YACAC,eAAA,YACAC,WAAA,YACAC,WAAA,aACAC,QAAA,UACAC,WAAA,cACAC,aAAA,cACAC,cAAA,YACAC,cAAA,WACAC,cAAA,WACAC,cAAA,YACAC,WAAA,YACAC,SAAA,aACAC,YAAA,YACAC,QAAA,cACAC,QAAA,cACAC,WAAA,aACAC,UAAA,YACAC,YAAA,cACAC,YAAA,YACAC,QAAA,YACAC,UAAA,cACAC,WAAA,cACAC,KAAA,YACAC,UAAA,aACAC,KAAA,cACA12B,MAAA,UACA22B,YAAA,aACAC,KAAA,cACAC,SAAA,cACAC,QAAA,cACAC,UAAA,YACAC,OAAA,WACAC,MAAA,cACAC,MAAA,cACAC,SAAA,cACAC,cAAA,cACAC,UAAA,YACAC,aAAA,cACAC,UAAA,cACAC,WAAA,cACAC,UAAA,cACAC,qBAAA,cACAC,UAAA,cACAC,WAAA,cACAC,UAAA,cACAC,UAAA,cACAC,YAAA,cACAC,cAAA,aACAC,aAAA,cACAC,eAAA,cACAC,eAAA,cACAC,eAAA,cACAC,YAAA,cACAC,KAAA,UACAC,UAAA,YACAC,MAAA,cACAl4B,QAAA,YACAm4B,OAAA,UACAC,iBAAA,cACAC,WAAA,UACAC,aAAA,aACAC,aAAA,cACAC,eAAA,aACAC,gBAAA,cACAC,kBAAA,YACAC,gBAAA,aACAC,gBAAA,aACAC,aAAA,YACAC,UAAA,cACAC,UAAA,cACAC,SAAA,cACAC,YAAA,cACAC,KAAA,UACAC,QAAA,cACAC,MAAA,YACAC,UAAA,aACAC,OAAA,YACAC,UAAA,WACAC,OAAA,cACAC,cAAA,cACAC,UAAA,cACAC,cAAA,cACAC,cAAA,cACAC,WAAA,cACAC,UAAA,cACAC,KAAA,aACAC,KAAA,cACAC,KAAA,cACAC,WAAA,cACAC,OAAA,YACAC,cAAA,aACA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","file":"commons~pages.projects.graphs.charts~pages.projects.pipelines.charts.4684103a.chunk.js","sourcesContent":["/* MIT license */\nvar convert = require('color-convert');\nvar string = require('chartjs-color-string');\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 = string.getRgba(obj);\n\t\tif (vals) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals = string.getHsla(obj)) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals = string.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 string.hexString(this.values.rgb);\n\t},\n\trgbString: function () {\n\t\treturn string.rgbString(this.values.rgb, this.values.alpha);\n\t},\n\trgbaString: function () {\n\t\treturn string.rgbaString(this.values.rgb, this.values.alpha);\n\t},\n\tpercentString: function () {\n\t\treturn string.percentString(this.values.rgb, this.values.alpha);\n\t},\n\thslString: function () {\n\t\treturn string.hslString(this.values.hsl, this.values.alpha);\n\t},\n\thslaString: function () {\n\t\treturn string.hslaString(this.values.hsl, this.values.alpha);\n\t},\n\thwbString: function () {\n\t\treturn string.hwbString(this.values.hwb, this.values.alpha);\n\t},\n\tkeyword: function () {\n\t\treturn string.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] = convert[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\nmodule.exports = Color;\n","'use strict';\n\nvar helpers = require('../helpers/index');\n\n/**\n * Helper function to get relative position for an event\n * @param {Event|IEvent} event - The event to get the position for\n * @param {Chart} chart - The chart\n * @returns {Point} the event position\n */\nfunction getRelativePosition(e, chart) {\n\tif (e.native) {\n\t\treturn {\n\t\t\tx: e.x,\n\t\t\ty: e.y\n\t\t};\n\t}\n\n\treturn helpers.getRelativePosition(e, chart);\n}\n\n/**\n * Helper function to traverse all of the visible elements in the chart\n * @param chart {chart} the chart\n * @param handler {Function} the callback to execute for each visible item\n */\nfunction parseVisibleItems(chart, handler) {\n\tvar datasets = chart.data.datasets;\n\tvar meta, i, j, ilen, jlen;\n\n\tfor (i = 0, ilen = datasets.length; i < ilen; ++i) {\n\t\tif (!chart.isDatasetVisible(i)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tmeta = chart.getDatasetMeta(i);\n\t\tfor (j = 0, jlen = meta.data.length; j < jlen; ++j) {\n\t\t\tvar element = meta.data[j];\n\t\t\tif (!element._view.skip) {\n\t\t\t\thandler(element);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * Helper function to get the items that intersect the event position\n * @param items {ChartElement[]} elements to filter\n * @param position {Point} the point to be nearest to\n * @return {ChartElement[]} the nearest items\n */\nfunction getIntersectItems(chart, position) {\n\tvar elements = [];\n\n\tparseVisibleItems(chart, function(element) {\n\t\tif (element.inRange(position.x, position.y)) {\n\t\t\telements.push(element);\n\t\t}\n\t});\n\n\treturn elements;\n}\n\n/**\n * Helper function to get the items nearest to the event position considering all visible items in teh chart\n * @param chart {Chart} the chart to look at elements from\n * @param position {Point} the point to be nearest to\n * @param intersect {Boolean} if true, only consider items that intersect the position\n * @param distanceMetric {Function} function to provide the distance between points\n * @return {ChartElement[]} the nearest items\n */\nfunction getNearestItems(chart, position, intersect, distanceMetric) {\n\tvar minDistance = Number.POSITIVE_INFINITY;\n\tvar nearestItems = [];\n\n\tparseVisibleItems(chart, function(element) {\n\t\tif (intersect && !element.inRange(position.x, position.y)) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar center = element.getCenterPoint();\n\t\tvar distance = distanceMetric(position, center);\n\n\t\tif (distance < minDistance) {\n\t\t\tnearestItems = [element];\n\t\t\tminDistance = distance;\n\t\t} else if (distance === minDistance) {\n\t\t\t// Can have multiple items at the same distance in which case we sort by size\n\t\t\tnearestItems.push(element);\n\t\t}\n\t});\n\n\treturn nearestItems;\n}\n\n/**\n * Get a distance metric function for two points based on the\n * axis mode setting\n * @param {String} axis the axis mode. x|y|xy\n */\nfunction getDistanceMetricForAxis(axis) {\n\tvar useX = axis.indexOf('x') !== -1;\n\tvar useY = axis.indexOf('y') !== -1;\n\n\treturn function(pt1, pt2) {\n\t\tvar deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n\t\tvar deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n\t\treturn Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n\t};\n}\n\nfunction indexMode(chart, e, options) {\n\tvar position = getRelativePosition(e, chart);\n\t// Default axis for index mode is 'x' to match old behaviour\n\toptions.axis = options.axis || 'x';\n\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\n\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\n\tvar elements = [];\n\n\tif (!items.length) {\n\t\treturn [];\n\t}\n\n\tchart.data.datasets.forEach(function(dataset, datasetIndex) {\n\t\tif (chart.isDatasetVisible(datasetIndex)) {\n\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\n\t\t\tvar element = meta.data[items[0]._index];\n\n\t\t\t// don't count items that are skipped (null data)\n\t\t\tif (element && !element._view.skip) {\n\t\t\t\telements.push(element);\n\t\t\t}\n\t\t}\n\t});\n\n\treturn elements;\n}\n\n/**\n * @interface IInteractionOptions\n */\n/**\n * If true, only consider items that intersect the point\n * @name IInterfaceOptions#boolean\n * @type Boolean\n */\n\n/**\n * Contains interaction related functions\n * @namespace Chart.Interaction\n */\nmodule.exports = {\n\t// Helper function for different modes\n\tmodes: {\n\t\tsingle: function(chart, e) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\tvar elements = [];\n\n\t\t\tparseVisibleItems(chart, function(element) {\n\t\t\t\tif (element.inRange(position.x, position.y)) {\n\t\t\t\t\telements.push(element);\n\t\t\t\t\treturn elements;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn elements.slice(0, 1);\n\t\t},\n\n\t\t/**\n\t\t * @function Chart.Interaction.modes.label\n\t\t * @deprecated since version 2.4.0\n\t\t * @todo remove at version 3\n\t\t * @private\n\t\t */\n\t\tlabel: indexMode,\n\n\t\t/**\n\t\t * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something\n\t\t * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item\n\t\t * @function Chart.Interaction.modes.index\n\t\t * @since v2.4.0\n\t\t * @param chart {chart} the chart we are returning items from\n\t\t * @param e {Event} the event we are find things at\n\t\t * @param options {IInteractionOptions} options to use during interaction\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tindex: indexMode,\n\n\t\t/**\n\t\t * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something\n\t\t * If the options.intersect is false, we find the nearest item and return the items in that dataset\n\t\t * @function Chart.Interaction.modes.dataset\n\t\t * @param chart {chart} the chart we are returning items from\n\t\t * @param e {Event} the event we are find things at\n\t\t * @param options {IInteractionOptions} options to use during interaction\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tdataset: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\toptions.axis = options.axis || 'xy';\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\n\t\t\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\n\n\t\t\tif (items.length > 0) {\n\t\t\t\titems = chart.getDatasetMeta(items[0]._datasetIndex).data;\n\t\t\t}\n\n\t\t\treturn items;\n\t\t},\n\n\t\t/**\n\t\t * @function Chart.Interaction.modes.x-axis\n\t\t * @deprecated since version 2.4.0. Use index mode and intersect == true\n\t\t * @todo remove at version 3\n\t\t * @private\n\t\t */\n\t\t'x-axis': function(chart, e) {\n\t\t\treturn indexMode(chart, e, {intersect: false});\n\t\t},\n\n\t\t/**\n\t\t * Point mode returns all elements that hit test based on the event position\n\t\t * of the event\n\t\t * @function Chart.Interaction.modes.intersect\n\t\t * @param chart {chart} the chart we are returning items from\n\t\t * @param e {Event} the event we are find things at\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tpoint: function(chart, e) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\treturn getIntersectItems(chart, position);\n\t\t},\n\n\t\t/**\n\t\t * nearest mode returns the element closest to the point\n\t\t * @function Chart.Interaction.modes.intersect\n\t\t * @param chart {chart} the chart we are returning items from\n\t\t * @param e {Event} the event we are find things at\n\t\t * @param options {IInteractionOptions} options to use\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tnearest: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\toptions.axis = options.axis || 'xy';\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\n\t\t\tvar nearestItems = getNearestItems(chart, position, options.intersect, distanceMetric);\n\n\t\t\t// We have multiple items at the same distance from the event. Now sort by smallest\n\t\t\tif (nearestItems.length > 1) {\n\t\t\t\tnearestItems.sort(function(a, b) {\n\t\t\t\t\tvar sizeA = a.getArea();\n\t\t\t\t\tvar sizeB = b.getArea();\n\t\t\t\t\tvar ret = sizeA - sizeB;\n\n\t\t\t\t\tif (ret === 0) {\n\t\t\t\t\t\t// if equal sort by dataset index\n\t\t\t\t\t\tret = a._datasetIndex - b._datasetIndex;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn ret;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Return only 1 item\n\t\t\treturn nearestItems.slice(0, 1);\n\t\t},\n\n\t\t/**\n\t\t * x mode returns the elements that hit-test at the current x coordinate\n\t\t * @function Chart.Interaction.modes.x\n\t\t * @param chart {chart} the chart we are returning items from\n\t\t * @param e {Event} the event we are find things at\n\t\t * @param options {IInteractionOptions} options to use\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tx: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\tvar items = [];\n\t\t\tvar intersectsItem = false;\n\n\t\t\tparseVisibleItems(chart, function(element) {\n\t\t\t\tif (element.inXRange(position.x)) {\n\t\t\t\t\titems.push(element);\n\t\t\t\t}\n\n\t\t\t\tif (element.inRange(position.x, position.y)) {\n\t\t\t\t\tintersectsItem = true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// If we want to trigger on an intersect and we don't have any items\n\t\t\t// that intersect the position, return nothing\n\t\t\tif (options.intersect && !intersectsItem) {\n\t\t\t\titems = [];\n\t\t\t}\n\t\t\treturn items;\n\t\t},\n\n\t\t/**\n\t\t * y mode returns the elements that hit-test at the current y coordinate\n\t\t * @function Chart.Interaction.modes.y\n\t\t * @param chart {chart} the chart we are returning items from\n\t\t * @param e {Event} the event we are find things at\n\t\t * @param options {IInteractionOptions} options to use\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\ty: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\tvar items = [];\n\t\t\tvar intersectsItem = false;\n\n\t\t\tparseVisibleItems(chart, function(element) {\n\t\t\t\tif (element.inYRange(position.y)) {\n\t\t\t\t\titems.push(element);\n\t\t\t\t}\n\n\t\t\t\tif (element.inRange(position.x, position.y)) {\n\t\t\t\t\tintersectsItem = true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// If we want to trigger on an intersect and we don't have any items\n\t\t\t// that intersect the position, return nothing\n\t\t\tif (options.intersect && !intersectsItem) {\n\t\t\t\titems = [];\n\t\t\t}\n\t\t\treturn items;\n\t\t}\n\t}\n};\n","'use strict';\n\nvar helpers = require('../helpers/index');\nvar basic = require('./platform.basic');\nvar dom = require('./platform.dom');\n\n// @TODO Make possible to select another platform at build time.\nvar implementation = dom._enabled ? dom : basic;\n\n/**\n * @namespace Chart.platform\n * @see https://chartjs.gitbooks.io/proposals/content/Platform.html\n * @since 2.4.0\n */\nmodule.exports = helpers.extend({\n\t/**\n\t * @since 2.7.0\n\t */\n\tinitialize: function() {},\n\n\t/**\n\t * Called at chart construction time, returns a context2d instance implementing\n\t * the [W3C Canvas 2D Context API standard]{@link https://www.w3.org/TR/2dcontext/}.\n\t * @param {*} item - The native item from which to acquire context (platform specific)\n\t * @param {Object} options - The chart options\n\t * @returns {CanvasRenderingContext2D} context2d instance\n\t */\n\tacquireContext: function() {},\n\n\t/**\n\t * Called at chart destruction time, releases any resources associated to the context\n\t * previously returned by the acquireContext() method.\n\t * @param {CanvasRenderingContext2D} context - The context2d instance\n\t * @returns {Boolean} true if the method succeeded, else false\n\t */\n\treleaseContext: function() {},\n\n\t/**\n\t * Registers the specified listener on the given chart.\n\t * @param {Chart} chart - Chart from which to listen for event\n\t * @param {String} type - The ({@link IEvent}) type to listen for\n\t * @param {Function} listener - Receives a notification (an object that implements\n\t * the {@link IEvent} interface) when an event of the specified type occurs.\n\t */\n\taddEventListener: function() {},\n\n\t/**\n\t * Removes the specified listener previously registered with addEventListener.\n\t * @param {Chart} chart -Chart from which to remove the listener\n\t * @param {String} type - The ({@link IEvent}) type to remove\n\t * @param {Function} listener - The listener function to remove from the event target.\n\t */\n\tremoveEventListener: function() {}\n\n}, implementation);\n\n/**\n * @interface IPlatform\n * Allows abstracting platform dependencies away from the chart\n * @borrows Chart.platform.acquireContext as acquireContext\n * @borrows Chart.platform.releaseContext as releaseContext\n * @borrows Chart.platform.addEventListener as addEventListener\n * @borrows Chart.platform.removeEventListener as removeEventListener\n */\n\n/**\n * @interface IEvent\n * @prop {String} type - The event type name, possible values are:\n * 'contextmenu', 'mouseenter', 'mousedown', 'mousemove', 'mouseup', 'mouseout',\n * 'click', 'dblclick', 'keydown', 'keypress', 'keyup' and 'resize'\n * @prop {*} native - The original native event (null for emulated events, e.g. 'resize')\n * @prop {Number} x - The mouse x position, relative to the canvas (null for incompatible events)\n * @prop {Number} y - The mouse y position, relative to the canvas (null for incompatible events)\n */\n","'use strict';\n\nvar defaults = require('./core.defaults');\nvar helpers = require('../helpers/index');\n\ndefaults._set('global', {\n\tplugins: {}\n});\n\n/**\n * The plugin service singleton\n * @namespace Chart.plugins\n * @since 2.1.0\n */\nmodule.exports = {\n\t/**\n\t * Globally registered plugins.\n\t * @private\n\t */\n\t_plugins: [],\n\n\t/**\n\t * This identifier is used to invalidate the descriptors cache attached to each chart\n\t * when a global plugin is registered or unregistered. In this case, the cache ID is\n\t * incremented and descriptors are regenerated during following API calls.\n\t * @private\n\t */\n\t_cacheId: 0,\n\n\t/**\n\t * Registers the given plugin(s) if not already registered.\n\t * @param {Array|Object} plugins plugin instance(s).\n\t */\n\tregister: function(plugins) {\n\t\tvar p = this._plugins;\n\t\t([]).concat(plugins).forEach(function(plugin) {\n\t\t\tif (p.indexOf(plugin) === -1) {\n\t\t\t\tp.push(plugin);\n\t\t\t}\n\t\t});\n\n\t\tthis._cacheId++;\n\t},\n\n\t/**\n\t * Unregisters the given plugin(s) only if registered.\n\t * @param {Array|Object} plugins plugin instance(s).\n\t */\n\tunregister: function(plugins) {\n\t\tvar p = this._plugins;\n\t\t([]).concat(plugins).forEach(function(plugin) {\n\t\t\tvar idx = p.indexOf(plugin);\n\t\t\tif (idx !== -1) {\n\t\t\t\tp.splice(idx, 1);\n\t\t\t}\n\t\t});\n\n\t\tthis._cacheId++;\n\t},\n\n\t/**\n\t * Remove all registered plugins.\n\t * @since 2.1.5\n\t */\n\tclear: function() {\n\t\tthis._plugins = [];\n\t\tthis._cacheId++;\n\t},\n\n\t/**\n\t * Returns the number of registered plugins?\n\t * @returns {Number}\n\t * @since 2.1.5\n\t */\n\tcount: function() {\n\t\treturn this._plugins.length;\n\t},\n\n\t/**\n\t * Returns all registered plugin instances.\n\t * @returns {Array} array of plugin objects.\n\t * @since 2.1.5\n\t */\n\tgetAll: function() {\n\t\treturn this._plugins;\n\t},\n\n\t/**\n\t * Calls enabled plugins for `chart` on the specified hook and with the given args.\n\t * This method immediately returns as soon as a plugin explicitly returns false. The\n\t * returned value can be used, for instance, to interrupt the current action.\n\t * @param {Object} chart - The chart instance for which plugins should be called.\n\t * @param {String} hook - The name of the plugin method to call (e.g. 'beforeUpdate').\n\t * @param {Array} [args] - Extra arguments to apply to the hook call.\n\t * @returns {Boolean} false if any of the plugins return false, else returns true.\n\t */\n\tnotify: function(chart, hook, args) {\n\t\tvar descriptors = this.descriptors(chart);\n\t\tvar ilen = descriptors.length;\n\t\tvar i, descriptor, plugin, params, method;\n\n\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\tdescriptor = descriptors[i];\n\t\t\tplugin = descriptor.plugin;\n\t\t\tmethod = plugin[hook];\n\t\t\tif (typeof method === 'function') {\n\t\t\t\tparams = [chart].concat(args || []);\n\t\t\t\tparams.push(descriptor.options);\n\t\t\t\tif (method.apply(plugin, params) === false) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t/**\n\t * Returns descriptors of enabled plugins for the given chart.\n\t * @returns {Array} [{ plugin, options }]\n\t * @private\n\t */\n\tdescriptors: function(chart) {\n\t\tvar cache = chart.$plugins || (chart.$plugins = {});\n\t\tif (cache.id === this._cacheId) {\n\t\t\treturn cache.descriptors;\n\t\t}\n\n\t\tvar plugins = [];\n\t\tvar descriptors = [];\n\t\tvar config = (chart && chart.config) || {};\n\t\tvar options = (config.options && config.options.plugins) || {};\n\n\t\tthis._plugins.concat(config.plugins || []).forEach(function(plugin) {\n\t\t\tvar idx = plugins.indexOf(plugin);\n\t\t\tif (idx !== -1) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar id = plugin.id;\n\t\t\tvar opts = options[id];\n\t\t\tif (opts === false) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (opts === true) {\n\t\t\t\topts = helpers.clone(defaults.global.plugins[id]);\n\t\t\t}\n\n\t\t\tplugins.push(plugin);\n\t\t\tdescriptors.push({\n\t\t\t\tplugin: plugin,\n\t\t\t\toptions: opts || {}\n\t\t\t});\n\t\t});\n\n\t\tcache.descriptors = descriptors;\n\t\tcache.id = this._cacheId;\n\t\treturn descriptors;\n\t},\n\n\t/**\n\t * Invalidates cache for the given chart: descriptors hold a reference on plugin option,\n\t * but in some cases, this reference can be changed by the user when updating options.\n\t * https://github.com/chartjs/Chart.js/issues/5111#issuecomment-355934167\n\t * @private\n\t */\n\t_invalidate: function(chart) {\n\t\tdelete chart.$plugins;\n\t}\n};\n\n/**\n * Plugin extension hooks.\n * @interface IPlugin\n * @since 2.1.0\n */\n/**\n * @method IPlugin#beforeInit\n * @desc Called before initializing `chart`.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n */\n/**\n * @method IPlugin#afterInit\n * @desc Called after `chart` has been initialized and before the first update.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n */\n/**\n * @method IPlugin#beforeUpdate\n * @desc Called before updating `chart`. If any plugin returns `false`, the update\n * is cancelled (and thus subsequent render(s)) until another `update` is triggered.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} `false` to cancel the chart update.\n */\n/**\n * @method IPlugin#afterUpdate\n * @desc Called after `chart` has been updated and before rendering. Note that this\n * hook will not be called if the chart update has been previously cancelled.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n */\n/**\n * @method IPlugin#beforeDatasetsUpdate\n * @desc Called before updating the `chart` datasets. If any plugin returns `false`,\n * the datasets update is cancelled until another `update` is triggered.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} false to cancel the datasets update.\n * @since version 2.1.5\n*/\n/**\n * @method IPlugin#afterDatasetsUpdate\n * @desc Called after the `chart` datasets have been updated. Note that this hook\n * will not be called if the datasets update has been previously cancelled.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n * @since version 2.1.5\n */\n/**\n * @method IPlugin#beforeDatasetUpdate\n * @desc Called before updating the `chart` dataset at the given `args.index`. If any plugin\n * returns `false`, the datasets update is cancelled until another `update` is triggered.\n * @param {Chart} chart - The chart instance.\n * @param {Object} args - The call arguments.\n * @param {Number} args.index - The dataset index.\n * @param {Object} args.meta - The dataset metadata.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} `false` to cancel the chart datasets drawing.\n */\n/**\n * @method IPlugin#afterDatasetUpdate\n * @desc Called after the `chart` datasets at the given `args.index` has been updated. Note\n * that this hook will not be called if the datasets update has been previously cancelled.\n * @param {Chart} chart - The chart instance.\n * @param {Object} args - The call arguments.\n * @param {Number} args.index - The dataset index.\n * @param {Object} args.meta - The dataset metadata.\n * @param {Object} options - The plugin options.\n */\n/**\n * @method IPlugin#beforeLayout\n * @desc Called before laying out `chart`. If any plugin returns `false`,\n * the layout update is cancelled until another `update` is triggered.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} `false` to cancel the chart layout.\n */\n/**\n * @method IPlugin#afterLayout\n * @desc Called after the `chart` has been layed out. Note that this hook will not\n * be called if the layout update has been previously cancelled.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n */\n/**\n * @method IPlugin#beforeRender\n * @desc Called before rendering `chart`. If any plugin returns `false`,\n * the rendering is cancelled until another `render` is triggered.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} `false` to cancel the chart rendering.\n */\n/**\n * @method IPlugin#afterRender\n * @desc Called after the `chart` has been fully rendered (and animation completed). Note\n * that this hook will not be called if the rendering has been previously cancelled.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n */\n/**\n * @method IPlugin#beforeDraw\n * @desc Called before drawing `chart` at every animation frame specified by the given\n * easing value. If any plugin returns `false`, the frame drawing is cancelled until\n * another `render` is triggered.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Number} easingValue - The current animation value, between 0.0 and 1.0.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} `false` to cancel the chart drawing.\n */\n/**\n * @method IPlugin#afterDraw\n * @desc Called after the `chart` has been drawn for the specific easing value. Note\n * that this hook will not be called if the drawing has been previously cancelled.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Number} easingValue - The current animation value, between 0.0 and 1.0.\n * @param {Object} options - The plugin options.\n */\n/**\n * @method IPlugin#beforeDatasetsDraw\n * @desc Called before drawing the `chart` datasets. If any plugin returns `false`,\n * the datasets drawing is cancelled until another `render` is triggered.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Number} easingValue - The current animation value, between 0.0 and 1.0.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} `false` to cancel the chart datasets drawing.\n */\n/**\n * @method IPlugin#afterDatasetsDraw\n * @desc Called after the `chart` datasets have been drawn. Note that this hook\n * will not be called if the datasets drawing has been previously cancelled.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Number} easingValue - The current animation value, between 0.0 and 1.0.\n * @param {Object} options - The plugin options.\n */\n/**\n * @method IPlugin#beforeDatasetDraw\n * @desc Called before drawing the `chart` dataset at the given `args.index` (datasets\n * are drawn in the reverse order). If any plugin returns `false`, the datasets drawing\n * is cancelled until another `render` is triggered.\n * @param {Chart} chart - The chart instance.\n * @param {Object} args - The call arguments.\n * @param {Number} args.index - The dataset index.\n * @param {Object} args.meta - The dataset metadata.\n * @param {Number} args.easingValue - The current animation value, between 0.0 and 1.0.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} `false` to cancel the chart datasets drawing.\n */\n/**\n * @method IPlugin#afterDatasetDraw\n * @desc Called after the `chart` datasets at the given `args.index` have been drawn\n * (datasets are drawn in the reverse order). Note that this hook will not be called\n * if the datasets drawing has been previously cancelled.\n * @param {Chart} chart - The chart instance.\n * @param {Object} args - The call arguments.\n * @param {Number} args.index - The dataset index.\n * @param {Object} args.meta - The dataset metadata.\n * @param {Number} args.easingValue - The current animation value, between 0.0 and 1.0.\n * @param {Object} options - The plugin options.\n */\n/**\n * @method IPlugin#beforeTooltipDraw\n * @desc Called before drawing the `tooltip`. If any plugin returns `false`,\n * the tooltip drawing is cancelled until another `render` is triggered.\n * @param {Chart} chart - The chart instance.\n * @param {Object} args - The call arguments.\n * @param {Object} args.tooltip - The tooltip.\n * @param {Number} args.easingValue - The current animation value, between 0.0 and 1.0.\n * @param {Object} options - The plugin options.\n * @returns {Boolean} `false` to cancel the chart tooltip drawing.\n */\n/**\n * @method IPlugin#afterTooltipDraw\n * @desc Called after drawing the `tooltip`. Note that this hook will not\n * be called if the tooltip drawing has been previously cancelled.\n * @param {Chart} chart - The chart instance.\n * @param {Object} args - The call arguments.\n * @param {Object} args.tooltip - The tooltip.\n * @param {Number} args.easingValue - The current animation value, between 0.0 and 1.0.\n * @param {Object} options - The plugin options.\n */\n/**\n * @method IPlugin#beforeEvent\n * @desc Called before processing the specified `event`. If any plugin returns `false`,\n * the event will be discarded.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {IEvent} event - The event object.\n * @param {Object} options - The plugin options.\n */\n/**\n * @method IPlugin#afterEvent\n * @desc Called after the `event` has been consumed. Note that this hook\n * will not be called if the `event` has been previously discarded.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {IEvent} event - The event object.\n * @param {Object} options - The plugin options.\n */\n/**\n * @method IPlugin#resize\n * @desc Called after the chart as been resized.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Number} size - The new canvas display size (eq. canvas.style width & height).\n * @param {Object} options - The plugin options.\n */\n/**\n * @method IPlugin#destroy\n * @desc Called after the chart as been destroyed.\n * @param {Chart.Controller} chart - The chart instance.\n * @param {Object} options - The plugin options.\n */\n","var map = {\n\t\"./af\": 836,\n\t\"./af.js\": 836,\n\t\"./ar\": 837,\n\t\"./ar-dz\": 838,\n\t\"./ar-dz.js\": 838,\n\t\"./ar-kw\": 839,\n\t\"./ar-kw.js\": 839,\n\t\"./ar-ly\": 840,\n\t\"./ar-ly.js\": 840,\n\t\"./ar-ma\": 841,\n\t\"./ar-ma.js\": 841,\n\t\"./ar-sa\": 842,\n\t\"./ar-sa.js\": 842,\n\t\"./ar-tn\": 843,\n\t\"./ar-tn.js\": 843,\n\t\"./ar.js\": 837,\n\t\"./az\": 844,\n\t\"./az.js\": 844,\n\t\"./be\": 845,\n\t\"./be.js\": 845,\n\t\"./bg\": 846,\n\t\"./bg.js\": 846,\n\t\"./bm\": 847,\n\t\"./bm.js\": 847,\n\t\"./bn\": 848,\n\t\"./bn.js\": 848,\n\t\"./bo\": 849,\n\t\"./bo.js\": 849,\n\t\"./br\": 850,\n\t\"./br.js\": 850,\n\t\"./bs\": 851,\n\t\"./bs.js\": 851,\n\t\"./ca\": 852,\n\t\"./ca.js\": 852,\n\t\"./cs\": 853,\n\t\"./cs.js\": 853,\n\t\"./cv\": 854,\n\t\"./cv.js\": 854,\n\t\"./cy\": 855,\n\t\"./cy.js\": 855,\n\t\"./da\": 856,\n\t\"./da.js\": 856,\n\t\"./de\": 857,\n\t\"./de-at\": 858,\n\t\"./de-at.js\": 858,\n\t\"./de-ch\": 859,\n\t\"./de-ch.js\": 859,\n\t\"./de.js\": 857,\n\t\"./dv\": 860,\n\t\"./dv.js\": 860,\n\t\"./el\": 861,\n\t\"./el.js\": 861,\n\t\"./en-au\": 862,\n\t\"./en-au.js\": 862,\n\t\"./en-ca\": 863,\n\t\"./en-ca.js\": 863,\n\t\"./en-gb\": 864,\n\t\"./en-gb.js\": 864,\n\t\"./en-ie\": 865,\n\t\"./en-ie.js\": 865,\n\t\"./en-il\": 866,\n\t\"./en-il.js\": 866,\n\t\"./en-nz\": 867,\n\t\"./en-nz.js\": 867,\n\t\"./eo\": 868,\n\t\"./eo.js\": 868,\n\t\"./es\": 869,\n\t\"./es-do\": 870,\n\t\"./es-do.js\": 870,\n\t\"./es-us\": 871,\n\t\"./es-us.js\": 871,\n\t\"./es.js\": 869,\n\t\"./et\": 872,\n\t\"./et.js\": 872,\n\t\"./eu\": 873,\n\t\"./eu.js\": 873,\n\t\"./fa\": 874,\n\t\"./fa.js\": 874,\n\t\"./fi\": 875,\n\t\"./fi.js\": 875,\n\t\"./fo\": 876,\n\t\"./fo.js\": 876,\n\t\"./fr\": 877,\n\t\"./fr-ca\": 878,\n\t\"./fr-ca.js\": 878,\n\t\"./fr-ch\": 879,\n\t\"./fr-ch.js\": 879,\n\t\"./fr.js\": 877,\n\t\"./fy\": 880,\n\t\"./fy.js\": 880,\n\t\"./gd\": 881,\n\t\"./gd.js\": 881,\n\t\"./gl\": 882,\n\t\"./gl.js\": 882,\n\t\"./gom-latn\": 883,\n\t\"./gom-latn.js\": 883,\n\t\"./gu\": 884,\n\t\"./gu.js\": 884,\n\t\"./he\": 885,\n\t\"./he.js\": 885,\n\t\"./hi\": 886,\n\t\"./hi.js\": 886,\n\t\"./hr\": 887,\n\t\"./hr.js\": 887,\n\t\"./hu\": 888,\n\t\"./hu.js\": 888,\n\t\"./hy-am\": 889,\n\t\"./hy-am.js\": 889,\n\t\"./id\": 890,\n\t\"./id.js\": 890,\n\t\"./is\": 891,\n\t\"./is.js\": 891,\n\t\"./it\": 892,\n\t\"./it.js\": 892,\n\t\"./ja\": 893,\n\t\"./ja.js\": 893,\n\t\"./jv\": 894,\n\t\"./jv.js\": 894,\n\t\"./ka\": 895,\n\t\"./ka.js\": 895,\n\t\"./kk\": 896,\n\t\"./kk.js\": 896,\n\t\"./km\": 897,\n\t\"./km.js\": 897,\n\t\"./kn\": 898,\n\t\"./kn.js\": 898,\n\t\"./ko\": 899,\n\t\"./ko.js\": 899,\n\t\"./ku\": 900,\n\t\"./ku.js\": 900,\n\t\"./ky\": 901,\n\t\"./ky.js\": 901,\n\t\"./lb\": 902,\n\t\"./lb.js\": 902,\n\t\"./lo\": 903,\n\t\"./lo.js\": 903,\n\t\"./lt\": 904,\n\t\"./lt.js\": 904,\n\t\"./lv\": 905,\n\t\"./lv.js\": 905,\n\t\"./me\": 906,\n\t\"./me.js\": 906,\n\t\"./mi\": 907,\n\t\"./mi.js\": 907,\n\t\"./mk\": 908,\n\t\"./mk.js\": 908,\n\t\"./ml\": 909,\n\t\"./ml.js\": 909,\n\t\"./mn\": 910,\n\t\"./mn.js\": 910,\n\t\"./mr\": 911,\n\t\"./mr.js\": 911,\n\t\"./ms\": 912,\n\t\"./ms-my\": 913,\n\t\"./ms-my.js\": 913,\n\t\"./ms.js\": 912,\n\t\"./mt\": 914,\n\t\"./mt.js\": 914,\n\t\"./my\": 915,\n\t\"./my.js\": 915,\n\t\"./nb\": 916,\n\t\"./nb.js\": 916,\n\t\"./ne\": 917,\n\t\"./ne.js\": 917,\n\t\"./nl\": 918,\n\t\"./nl-be\": 919,\n\t\"./nl-be.js\": 919,\n\t\"./nl.js\": 918,\n\t\"./nn\": 920,\n\t\"./nn.js\": 920,\n\t\"./pa-in\": 921,\n\t\"./pa-in.js\": 921,\n\t\"./pl\": 922,\n\t\"./pl.js\": 922,\n\t\"./pt\": 923,\n\t\"./pt-br\": 924,\n\t\"./pt-br.js\": 924,\n\t\"./pt.js\": 923,\n\t\"./ro\": 925,\n\t\"./ro.js\": 925,\n\t\"./ru\": 926,\n\t\"./ru.js\": 926,\n\t\"./sd\": 927,\n\t\"./sd.js\": 927,\n\t\"./se\": 928,\n\t\"./se.js\": 928,\n\t\"./si\": 929,\n\t\"./si.js\": 929,\n\t\"./sk\": 930,\n\t\"./sk.js\": 930,\n\t\"./sl\": 931,\n\t\"./sl.js\": 931,\n\t\"./sq\": 932,\n\t\"./sq.js\": 932,\n\t\"./sr\": 933,\n\t\"./sr-cyrl\": 934,\n\t\"./sr-cyrl.js\": 934,\n\t\"./sr.js\": 933,\n\t\"./ss\": 935,\n\t\"./ss.js\": 935,\n\t\"./sv\": 936,\n\t\"./sv.js\": 936,\n\t\"./sw\": 937,\n\t\"./sw.js\": 937,\n\t\"./ta\": 938,\n\t\"./ta.js\": 938,\n\t\"./te\": 939,\n\t\"./te.js\": 939,\n\t\"./tet\": 940,\n\t\"./tet.js\": 940,\n\t\"./tg\": 941,\n\t\"./tg.js\": 941,\n\t\"./th\": 942,\n\t\"./th.js\": 942,\n\t\"./tl-ph\": 943,\n\t\"./tl-ph.js\": 943,\n\t\"./tlh\": 944,\n\t\"./tlh.js\": 944,\n\t\"./tr\": 945,\n\t\"./tr.js\": 945,\n\t\"./tzl\": 946,\n\t\"./tzl.js\": 946,\n\t\"./tzm\": 947,\n\t\"./tzm-latn\": 948,\n\t\"./tzm-latn.js\": 948,\n\t\"./tzm.js\": 947,\n\t\"./ug-cn\": 949,\n\t\"./ug-cn.js\": 949,\n\t\"./uk\": 950,\n\t\"./uk.js\": 950,\n\t\"./ur\": 951,\n\t\"./ur.js\": 951,\n\t\"./uz\": 952,\n\t\"./uz-latn\": 953,\n\t\"./uz-latn.js\": 953,\n\t\"./uz.js\": 952,\n\t\"./vi\": 954,\n\t\"./vi.js\": 954,\n\t\"./x-pseudo\": 955,\n\t\"./x-pseudo.js\": 955,\n\t\"./yo\": 956,\n\t\"./yo.js\": 956,\n\t\"./zh-cn\": 957,\n\t\"./zh-cn.js\": 957,\n\t\"./zh-hk\": 958,\n\t\"./zh-hk.js\": 958,\n\t\"./zh-tw\": 959,\n\t\"./zh-tw.js\": 959\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) { // check for number or string\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn id;\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 1146;","'use strict';\n\nmodule.exports = require('./helpers.core');\nmodule.exports.easing = require('./helpers.easing');\nmodule.exports.canvas = require('./helpers.canvas');\nmodule.exports.options = require('./helpers.options');\n","'use strict';\n\nvar helpers = require('../helpers/index');\n\nmodule.exports = {\n\t/**\n\t * @private\n\t */\n\t_set: function(scope, values) {\n\t\treturn helpers.merge(this[scope] || (this[scope] = {}), values);\n\t}\n};\n","'use strict';\n\nvar defaults = require('./core.defaults');\n\ndefaults._set('global', {\n\tresponsive: true,\n\tresponsiveAnimationDuration: 0,\n\tmaintainAspectRatio: true,\n\tevents: ['mousemove', 'mouseout', 'click', 'touchstart', 'touchmove'],\n\thover: {\n\t\tonHover: null,\n\t\tmode: 'nearest',\n\t\tintersect: true,\n\t\tanimationDuration: 400\n\t},\n\tonClick: null,\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\tshowLines: true,\n\n\t// Element defaults defined in element extensions\n\telements: {},\n\n\t// Layout options such as padding\n\tlayout: {\n\t\tpadding: {\n\t\t\ttop: 0,\n\t\t\tright: 0,\n\t\t\tbottom: 0,\n\t\t\tleft: 0\n\t\t}\n\t}\n});\n\nmodule.exports = function() {\n\n\t// Occupy the global variable of Chart, and create a simple base class\n\tvar Chart = function(item, config) {\n\t\tthis.construct(item, config);\n\t\treturn this;\n\t};\n\n\tChart.Chart = Chart;\n\n\treturn Chart;\n};\n","'use strict';\n\nvar helpers = require('./helpers.core');\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\nmodule.exports = {\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.easingEffects = effects;\n","'use strict';\n\nvar helpers = require('./helpers.core');\n\n/**\n * @namespace Chart.helpers.canvas\n */\nvar exports = module.exports = {\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 rx = Math.min(radius, width / 2);\n\t\t\tvar ry = Math.min(radius, height / 2);\n\n\t\t\tctx.moveTo(x + rx, y);\n\t\t\tctx.lineTo(x + width - rx, y);\n\t\t\tctx.quadraticCurveTo(x + width, y, x + width, y + ry);\n\t\t\tctx.lineTo(x + width, y + height - ry);\n\t\t\tctx.quadraticCurveTo(x + width, y + height, x + width - rx, y + height);\n\t\t\tctx.lineTo(x + rx, y + height);\n\t\t\tctx.quadraticCurveTo(x, y + height, x, y + height - ry);\n\t\t\tctx.lineTo(x, y + ry);\n\t\t\tctx.quadraticCurveTo(x, y, x + rx, 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) {\n\t\tvar type, edgeLength, xOffset, yOffset, height, size;\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\tswitch (style) {\n\t\t// Default includes circle\n\t\tdefault:\n\t\t\tctx.beginPath();\n\t\t\tctx.arc(x, y, radius, 0, Math.PI * 2);\n\t\t\tctx.closePath();\n\t\t\tctx.fill();\n\t\t\tbreak;\n\t\tcase 'triangle':\n\t\t\tctx.beginPath();\n\t\t\tedgeLength = 3 * radius / Math.sqrt(3);\n\t\t\theight = edgeLength * Math.sqrt(3) / 2;\n\t\t\tctx.moveTo(x - edgeLength / 2, y + height / 3);\n\t\t\tctx.lineTo(x + edgeLength / 2, y + height / 3);\n\t\t\tctx.lineTo(x, y - 2 * height / 3);\n\t\t\tctx.closePath();\n\t\t\tctx.fill();\n\t\t\tbreak;\n\t\tcase 'rect':\n\t\t\tsize = 1 / Math.SQRT2 * radius;\n\t\t\tctx.beginPath();\n\t\t\tctx.fillRect(x - size, y - size, 2 * size, 2 * size);\n\t\t\tctx.strokeRect(x - size, y - size, 2 * size, 2 * size);\n\t\t\tbreak;\n\t\tcase 'rectRounded':\n\t\t\tvar offset = radius / Math.SQRT2;\n\t\t\tvar leftX = x - offset;\n\t\t\tvar topY = y - offset;\n\t\t\tvar sideSize = Math.SQRT2 * radius;\n\t\t\tctx.beginPath();\n\t\t\tthis.roundedRect(ctx, leftX, topY, sideSize, sideSize, radius / 2);\n\t\t\tctx.closePath();\n\t\t\tctx.fill();\n\t\t\tbreak;\n\t\tcase 'rectRot':\n\t\t\tsize = 1 / Math.SQRT2 * radius;\n\t\t\tctx.beginPath();\n\t\t\tctx.moveTo(x - size, y);\n\t\t\tctx.lineTo(x, y + size);\n\t\t\tctx.lineTo(x + size, y);\n\t\t\tctx.lineTo(x, y - size);\n\t\t\tctx.closePath();\n\t\t\tctx.fill();\n\t\t\tbreak;\n\t\tcase 'cross':\n\t\t\tctx.beginPath();\n\t\t\tctx.moveTo(x, y + radius);\n\t\t\tctx.lineTo(x, y - radius);\n\t\t\tctx.moveTo(x - radius, y);\n\t\t\tctx.lineTo(x + radius, y);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'crossRot':\n\t\t\tctx.beginPath();\n\t\t\txOffset = Math.cos(Math.PI / 4) * radius;\n\t\t\tyOffset = Math.sin(Math.PI / 4) * 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 - xOffset, y + yOffset);\n\t\t\tctx.lineTo(x + xOffset, y - yOffset);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'star':\n\t\t\tctx.beginPath();\n\t\t\tctx.moveTo(x, y + radius);\n\t\t\tctx.lineTo(x, y - radius);\n\t\t\tctx.moveTo(x - radius, y);\n\t\t\tctx.lineTo(x + radius, y);\n\t\t\txOffset = Math.cos(Math.PI / 4) * radius;\n\t\t\tyOffset = Math.sin(Math.PI / 4) * 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 - xOffset, y + yOffset);\n\t\t\tctx.lineTo(x + xOffset, y - yOffset);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'line':\n\t\t\tctx.beginPath();\n\t\t\tctx.moveTo(x - radius, y);\n\t\t\tctx.lineTo(x + radius, y);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'dash':\n\t\t\tctx.beginPath();\n\t\t\tctx.moveTo(x, y);\n\t\t\tctx.lineTo(x + radius, y);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\t}\n\n\t\tctx.stroke();\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\tif (target.steppedLine) {\n\t\t\tif ((target.steppedLine === 'after' && !flip) || (target.steppedLine !== '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\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.clear = exports.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.drawRoundedRectangle = function(ctx) {\n\tctx.beginPath();\n\texports.roundedRect.apply(exports, arguments);\n\tctx.closePath();\n};\n","'use strict';\n\nvar helpers = require('./helpers.core');\n\n/**\n * @alias Chart.helpers.options\n * @namespace\n */\nmodule.exports = {\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.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 * 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.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","/* global window: false */\n/* global document: false */\n'use strict';\n\nvar color = require('chartjs-color');\nvar defaults = require('./core.defaults');\nvar helpers = require('../helpers/index');\n\nmodule.exports = function(Chart) {\n\n\t// -- Basic js utility methods\n\n\thelpers.configMerge = function(/* objects ... */) {\n\t\treturn helpers.merge(helpers.clone(arguments[0]), [].slice.call(arguments, 1), {\n\t\t\tmerger: function(key, target, source, options) {\n\t\t\t\tvar tval = target[key] || {};\n\t\t\t\tvar sval = source[key];\n\n\t\t\t\tif (key === 'scales') {\n\t\t\t\t\t// scale config merging is complex. Add our own function here for that\n\t\t\t\t\ttarget[key] = helpers.scaleMerge(tval, sval);\n\t\t\t\t} else if (key === 'scale') {\n\t\t\t\t\t// used in polar area & radar charts since there is only one scale\n\t\t\t\t\ttarget[key] = helpers.merge(tval, [Chart.scaleService.getScaleDefaults(sval.type), sval]);\n\t\t\t\t} else {\n\t\t\t\t\thelpers._merger(key, target, source, options);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n\n\thelpers.scaleMerge = function(/* objects ... */) {\n\t\treturn helpers.merge(helpers.clone(arguments[0]), [].slice.call(arguments, 1), {\n\t\t\tmerger: function(key, target, source, options) {\n\t\t\t\tif (key === 'xAxes' || key === 'yAxes') {\n\t\t\t\t\tvar slen = source[key].length;\n\t\t\t\t\tvar i, type, scale;\n\n\t\t\t\t\tif (!target[key]) {\n\t\t\t\t\t\ttarget[key] = [];\n\t\t\t\t\t}\n\n\t\t\t\t\tfor (i = 0; i < slen; ++i) {\n\t\t\t\t\t\tscale = source[key][i];\n\t\t\t\t\t\ttype = helpers.valueOrDefault(scale.type, key === 'xAxes' ? 'category' : 'linear');\n\n\t\t\t\t\t\tif (i >= target[key].length) {\n\t\t\t\t\t\t\ttarget[key].push({});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!target[key][i].type || (scale.type && scale.type !== target[key][i].type)) {\n\t\t\t\t\t\t\t// new/untyped scale or type changed: let's apply the new defaults\n\t\t\t\t\t\t\t// then merge source scale to correctly overwrite the defaults.\n\t\t\t\t\t\t\thelpers.merge(target[key][i], [Chart.scaleService.getScaleDefaults(type), scale]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// scales type are the same\n\t\t\t\t\t\t\thelpers.merge(target[key][i], scale);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\thelpers._merger(key, target, source, options);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n\n\thelpers.where = function(collection, filterCallback) {\n\t\tif (helpers.isArray(collection) && Array.prototype.filter) {\n\t\t\treturn collection.filter(filterCallback);\n\t\t}\n\t\tvar filtered = [];\n\n\t\thelpers.each(collection, function(item) {\n\t\t\tif (filterCallback(item)) {\n\t\t\t\tfiltered.push(item);\n\t\t\t}\n\t\t});\n\n\t\treturn filtered;\n\t};\n\thelpers.findIndex = Array.prototype.findIndex ?\n\t\tfunction(array, callback, scope) {\n\t\t\treturn array.findIndex(callback, scope);\n\t\t} :\n\t\tfunction(array, callback, scope) {\n\t\t\tscope = scope === undefined ? array : scope;\n\t\t\tfor (var i = 0, ilen = array.length; i < ilen; ++i) {\n\t\t\t\tif (callback.call(scope, array[i], i, array)) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn -1;\n\t\t};\n\thelpers.findNextWhere = function(arrayToSearch, filterCallback, startIndex) {\n\t\t// Default to start of the array\n\t\tif (helpers.isNullOrUndef(startIndex)) {\n\t\t\tstartIndex = -1;\n\t\t}\n\t\tfor (var i = startIndex + 1; i < arrayToSearch.length; i++) {\n\t\t\tvar currentItem = arrayToSearch[i];\n\t\t\tif (filterCallback(currentItem)) {\n\t\t\t\treturn currentItem;\n\t\t\t}\n\t\t}\n\t};\n\thelpers.findPreviousWhere = function(arrayToSearch, filterCallback, startIndex) {\n\t\t// Default to end of the array\n\t\tif (helpers.isNullOrUndef(startIndex)) {\n\t\t\tstartIndex = arrayToSearch.length;\n\t\t}\n\t\tfor (var i = startIndex - 1; i >= 0; i--) {\n\t\t\tvar currentItem = arrayToSearch[i];\n\t\t\tif (filterCallback(currentItem)) {\n\t\t\t\treturn currentItem;\n\t\t\t}\n\t\t}\n\t};\n\n\t// -- Math methods\n\thelpers.isNumber = function(n) {\n\t\treturn !isNaN(parseFloat(n)) && isFinite(n);\n\t};\n\thelpers.almostEquals = function(x, y, epsilon) {\n\t\treturn Math.abs(x - y) < epsilon;\n\t};\n\thelpers.almostWhole = function(x, epsilon) {\n\t\tvar rounded = Math.round(x);\n\t\treturn (((rounded - epsilon) < x) && ((rounded + epsilon) > x));\n\t};\n\thelpers.max = function(array) {\n\t\treturn array.reduce(function(max, value) {\n\t\t\tif (!isNaN(value)) {\n\t\t\t\treturn Math.max(max, value);\n\t\t\t}\n\t\t\treturn max;\n\t\t}, Number.NEGATIVE_INFINITY);\n\t};\n\thelpers.min = function(array) {\n\t\treturn array.reduce(function(min, value) {\n\t\t\tif (!isNaN(value)) {\n\t\t\t\treturn Math.min(min, value);\n\t\t\t}\n\t\t\treturn min;\n\t\t}, Number.POSITIVE_INFINITY);\n\t};\n\thelpers.sign = Math.sign ?\n\t\tfunction(x) {\n\t\t\treturn Math.sign(x);\n\t\t} :\n\t\tfunction(x) {\n\t\t\tx = +x; // convert to a number\n\t\t\tif (x === 0 || isNaN(x)) {\n\t\t\t\treturn x;\n\t\t\t}\n\t\t\treturn x > 0 ? 1 : -1;\n\t\t};\n\thelpers.log10 = Math.log10 ?\n\t\tfunction(x) {\n\t\t\treturn Math.log10(x);\n\t\t} :\n\t\tfunction(x) {\n\t\t\tvar exponent = Math.log(x) * Math.LOG10E; // Math.LOG10E = 1 / Math.LN10.\n\t\t\t// Check for whole powers of 10,\n\t\t\t// which due to floating point rounding error should be corrected.\n\t\t\tvar powerOf10 = Math.round(exponent);\n\t\t\tvar isPowerOf10 = x === Math.pow(10, powerOf10);\n\n\t\t\treturn isPowerOf10 ? powerOf10 : exponent;\n\t\t};\n\thelpers.toRadians = function(degrees) {\n\t\treturn degrees * (Math.PI / 180);\n\t};\n\thelpers.toDegrees = function(radians) {\n\t\treturn radians * (180 / Math.PI);\n\t};\n\t// Gets the angle from vertical upright to the point about a centre.\n\thelpers.getAngleFromPoint = function(centrePoint, anglePoint) {\n\t\tvar distanceFromXCenter = anglePoint.x - centrePoint.x;\n\t\tvar distanceFromYCenter = anglePoint.y - centrePoint.y;\n\t\tvar radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n\n\t\tvar angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n\n\t\tif (angle < (-0.5 * Math.PI)) {\n\t\t\tangle += 2.0 * Math.PI; // make sure the returned angle is in the range of (-PI/2, 3PI/2]\n\t\t}\n\n\t\treturn {\n\t\t\tangle: angle,\n\t\t\tdistance: radialDistanceFromCenter\n\t\t};\n\t};\n\thelpers.distanceBetweenPoints = function(pt1, pt2) {\n\t\treturn Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n\t};\n\thelpers.aliasPixel = function(pixelWidth) {\n\t\treturn (pixelWidth % 2 === 0) ? 0 : 0.5;\n\t};\n\thelpers.splineCurve = function(firstPoint, middlePoint, afterPoint, t) {\n\t\t// Props to Rob Spencer at scaled innovation for his post on splining between points\n\t\t// http://scaledinnovation.com/analytics/splines/aboutSplines.html\n\n\t\t// This function must also respect \"skipped\" points\n\n\t\tvar previous = firstPoint.skip ? middlePoint : firstPoint;\n\t\tvar current = middlePoint;\n\t\tvar next = afterPoint.skip ? middlePoint : afterPoint;\n\n\t\tvar d01 = Math.sqrt(Math.pow(current.x - previous.x, 2) + Math.pow(current.y - previous.y, 2));\n\t\tvar d12 = Math.sqrt(Math.pow(next.x - current.x, 2) + Math.pow(next.y - current.y, 2));\n\n\t\tvar s01 = d01 / (d01 + d12);\n\t\tvar s12 = d12 / (d01 + d12);\n\n\t\t// If all points are the same, s01 & s02 will be inf\n\t\ts01 = isNaN(s01) ? 0 : s01;\n\t\ts12 = isNaN(s12) ? 0 : s12;\n\n\t\tvar fa = t * s01; // scaling factor for triangle Ta\n\t\tvar fb = t * s12;\n\n\t\treturn {\n\t\t\tprevious: {\n\t\t\t\tx: current.x - fa * (next.x - previous.x),\n\t\t\t\ty: current.y - fa * (next.y - previous.y)\n\t\t\t},\n\t\t\tnext: {\n\t\t\t\tx: current.x + fb * (next.x - previous.x),\n\t\t\t\ty: current.y + fb * (next.y - previous.y)\n\t\t\t}\n\t\t};\n\t};\n\thelpers.EPSILON = Number.EPSILON || 1e-14;\n\thelpers.splineCurveMonotone = function(points) {\n\t\t// This function calculates Bézier control points in a similar way than |splineCurve|,\n\t\t// but preserves monotonicity of the provided data and ensures no local extremums are added\n\t\t// between the dataset discrete points due to the interpolation.\n\t\t// See : https://en.wikipedia.org/wiki/Monotone_cubic_interpolation\n\n\t\tvar pointsWithTangents = (points || []).map(function(point) {\n\t\t\treturn {\n\t\t\t\tmodel: point._model,\n\t\t\t\tdeltaK: 0,\n\t\t\t\tmK: 0\n\t\t\t};\n\t\t});\n\n\t\t// Calculate slopes (deltaK) and initialize tangents (mK)\n\t\tvar pointsLen = pointsWithTangents.length;\n\t\tvar i, pointBefore, pointCurrent, pointAfter;\n\t\tfor (i = 0; i < pointsLen; ++i) {\n\t\t\tpointCurrent = pointsWithTangents[i];\n\t\t\tif (pointCurrent.model.skip) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tpointBefore = i > 0 ? pointsWithTangents[i - 1] : null;\n\t\t\tpointAfter = i < pointsLen - 1 ? pointsWithTangents[i + 1] : null;\n\t\t\tif (pointAfter && !pointAfter.model.skip) {\n\t\t\t\tvar slopeDeltaX = (pointAfter.model.x - pointCurrent.model.x);\n\n\t\t\t\t// In the case of two points that appear at the same x pixel, slopeDeltaX is 0\n\t\t\t\tpointCurrent.deltaK = slopeDeltaX !== 0 ? (pointAfter.model.y - pointCurrent.model.y) / slopeDeltaX : 0;\n\t\t\t}\n\n\t\t\tif (!pointBefore || pointBefore.model.skip) {\n\t\t\t\tpointCurrent.mK = pointCurrent.deltaK;\n\t\t\t} else if (!pointAfter || pointAfter.model.skip) {\n\t\t\t\tpointCurrent.mK = pointBefore.deltaK;\n\t\t\t} else if (this.sign(pointBefore.deltaK) !== this.sign(pointCurrent.deltaK)) {\n\t\t\t\tpointCurrent.mK = 0;\n\t\t\t} else {\n\t\t\t\tpointCurrent.mK = (pointBefore.deltaK + pointCurrent.deltaK) / 2;\n\t\t\t}\n\t\t}\n\n\t\t// Adjust tangents to ensure monotonic properties\n\t\tvar alphaK, betaK, tauK, squaredMagnitude;\n\t\tfor (i = 0; i < pointsLen - 1; ++i) {\n\t\t\tpointCurrent = pointsWithTangents[i];\n\t\t\tpointAfter = pointsWithTangents[i + 1];\n\t\t\tif (pointCurrent.model.skip || pointAfter.model.skip) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (helpers.almostEquals(pointCurrent.deltaK, 0, this.EPSILON)) {\n\t\t\t\tpointCurrent.mK = pointAfter.mK = 0;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\talphaK = pointCurrent.mK / pointCurrent.deltaK;\n\t\t\tbetaK = pointAfter.mK / pointCurrent.deltaK;\n\t\t\tsquaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n\t\t\tif (squaredMagnitude <= 9) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\ttauK = 3 / Math.sqrt(squaredMagnitude);\n\t\t\tpointCurrent.mK = alphaK * tauK * pointCurrent.deltaK;\n\t\t\tpointAfter.mK = betaK * tauK * pointCurrent.deltaK;\n\t\t}\n\n\t\t// Compute control points\n\t\tvar deltaX;\n\t\tfor (i = 0; i < pointsLen; ++i) {\n\t\t\tpointCurrent = pointsWithTangents[i];\n\t\t\tif (pointCurrent.model.skip) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tpointBefore = i > 0 ? pointsWithTangents[i - 1] : null;\n\t\t\tpointAfter = i < pointsLen - 1 ? pointsWithTangents[i + 1] : null;\n\t\t\tif (pointBefore && !pointBefore.model.skip) {\n\t\t\t\tdeltaX = (pointCurrent.model.x - pointBefore.model.x) / 3;\n\t\t\t\tpointCurrent.model.controlPointPreviousX = pointCurrent.model.x - deltaX;\n\t\t\t\tpointCurrent.model.controlPointPreviousY = pointCurrent.model.y - deltaX * pointCurrent.mK;\n\t\t\t}\n\t\t\tif (pointAfter && !pointAfter.model.skip) {\n\t\t\t\tdeltaX = (pointAfter.model.x - pointCurrent.model.x) / 3;\n\t\t\t\tpointCurrent.model.controlPointNextX = pointCurrent.model.x + deltaX;\n\t\t\t\tpointCurrent.model.controlPointNextY = pointCurrent.model.y + deltaX * pointCurrent.mK;\n\t\t\t}\n\t\t}\n\t};\n\thelpers.nextItem = function(collection, index, loop) {\n\t\tif (loop) {\n\t\t\treturn index >= collection.length - 1 ? collection[0] : collection[index + 1];\n\t\t}\n\t\treturn index >= collection.length - 1 ? collection[collection.length - 1] : collection[index + 1];\n\t};\n\thelpers.previousItem = function(collection, index, loop) {\n\t\tif (loop) {\n\t\t\treturn index <= 0 ? collection[collection.length - 1] : collection[index - 1];\n\t\t}\n\t\treturn index <= 0 ? collection[0] : collection[index - 1];\n\t};\n\t// Implementation of the nice number algorithm used in determining where axis labels will go\n\thelpers.niceNum = function(range, round) {\n\t\tvar exponent = Math.floor(helpers.log10(range));\n\t\tvar fraction = range / Math.pow(10, exponent);\n\t\tvar niceFraction;\n\n\t\tif (round) {\n\t\t\tif (fraction < 1.5) {\n\t\t\t\tniceFraction = 1;\n\t\t\t} else if (fraction < 3) {\n\t\t\t\tniceFraction = 2;\n\t\t\t} else if (fraction < 7) {\n\t\t\t\tniceFraction = 5;\n\t\t\t} else {\n\t\t\t\tniceFraction = 10;\n\t\t\t}\n\t\t} else if (fraction <= 1.0) {\n\t\t\tniceFraction = 1;\n\t\t} else if (fraction <= 2) {\n\t\t\tniceFraction = 2;\n\t\t} else if (fraction <= 5) {\n\t\t\tniceFraction = 5;\n\t\t} else {\n\t\t\tniceFraction = 10;\n\t\t}\n\n\t\treturn niceFraction * Math.pow(10, exponent);\n\t};\n\t// Request animation polyfill - http://www.paulirish.com/2011/requestanimationframe-for-smart-animating/\n\thelpers.requestAnimFrame = (function() {\n\t\tif (typeof window === 'undefined') {\n\t\t\treturn function(callback) {\n\t\t\t\tcallback();\n\t\t\t};\n\t\t}\n\t\treturn window.requestAnimationFrame ||\n\t\t\twindow.webkitRequestAnimationFrame ||\n\t\t\twindow.mozRequestAnimationFrame ||\n\t\t\twindow.oRequestAnimationFrame ||\n\t\t\twindow.msRequestAnimationFrame ||\n\t\t\tfunction(callback) {\n\t\t\t\treturn window.setTimeout(callback, 1000 / 60);\n\t\t\t};\n\t}());\n\t// -- DOM methods\n\thelpers.getRelativePosition = function(evt, chart) {\n\t\tvar mouseX, mouseY;\n\t\tvar e = evt.originalEvent || evt;\n\t\tvar canvas = evt.currentTarget || evt.srcElement;\n\t\tvar boundingRect = canvas.getBoundingClientRect();\n\n\t\tvar touches = e.touches;\n\t\tif (touches && touches.length > 0) {\n\t\t\tmouseX = touches[0].clientX;\n\t\t\tmouseY = touches[0].clientY;\n\n\t\t} else {\n\t\t\tmouseX = e.clientX;\n\t\t\tmouseY = e.clientY;\n\t\t}\n\n\t\t// Scale mouse coordinates into canvas coordinates\n\t\t// by following the pattern laid out by 'jerryj' in the comments of\n\t\t// http://www.html5canvastutorials.com/advanced/html5-canvas-mouse-coordinates/\n\t\tvar paddingLeft = parseFloat(helpers.getStyle(canvas, 'padding-left'));\n\t\tvar paddingTop = parseFloat(helpers.getStyle(canvas, 'padding-top'));\n\t\tvar paddingRight = parseFloat(helpers.getStyle(canvas, 'padding-right'));\n\t\tvar paddingBottom = parseFloat(helpers.getStyle(canvas, 'padding-bottom'));\n\t\tvar width = boundingRect.right - boundingRect.left - paddingLeft - paddingRight;\n\t\tvar height = boundingRect.bottom - boundingRect.top - paddingTop - paddingBottom;\n\n\t\t// We divide by the current device pixel ratio, because the canvas is scaled up by that amount in each direction. However\n\t\t// the backend model is in unscaled coordinates. Since we are going to deal with our model coordinates, we go back here\n\t\tmouseX = Math.round((mouseX - boundingRect.left - paddingLeft) / (width) * canvas.width / chart.currentDevicePixelRatio);\n\t\tmouseY = Math.round((mouseY - boundingRect.top - paddingTop) / (height) * canvas.height / chart.currentDevicePixelRatio);\n\n\t\treturn {\n\t\t\tx: mouseX,\n\t\t\ty: mouseY\n\t\t};\n\n\t};\n\n\t// Private helper function to convert max-width/max-height values that may be percentages into a number\n\tfunction parseMaxStyle(styleValue, node, parentProperty) {\n\t\tvar valueInPixels;\n\t\tif (typeof styleValue === 'string') {\n\t\t\tvalueInPixels = parseInt(styleValue, 10);\n\n\t\t\tif (styleValue.indexOf('%') !== -1) {\n\t\t\t\t// percentage * size in dimension\n\t\t\t\tvalueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n\t\t\t}\n\t\t} else {\n\t\t\tvalueInPixels = styleValue;\n\t\t}\n\n\t\treturn valueInPixels;\n\t}\n\n\t/**\n\t * Returns if the given value contains an effective constraint.\n\t * @private\n\t */\n\tfunction isConstrainedValue(value) {\n\t\treturn value !== undefined && value !== null && value !== 'none';\n\t}\n\n\t// Private helper to get a constraint dimension\n\t// @param domNode : the node to check the constraint on\n\t// @param maxStyle : the style that defines the maximum for the direction we are using (maxWidth / maxHeight)\n\t// @param percentageProperty : property of parent to use when calculating width as a percentage\n\t// @see http://www.nathanaeljones.com/blog/2013/reading-max-width-cross-browser\n\tfunction getConstraintDimension(domNode, maxStyle, percentageProperty) {\n\t\tvar view = document.defaultView;\n\t\tvar parentNode = domNode.parentNode;\n\t\tvar constrainedNode = view.getComputedStyle(domNode)[maxStyle];\n\t\tvar constrainedContainer = view.getComputedStyle(parentNode)[maxStyle];\n\t\tvar hasCNode = isConstrainedValue(constrainedNode);\n\t\tvar hasCContainer = isConstrainedValue(constrainedContainer);\n\t\tvar infinity = Number.POSITIVE_INFINITY;\n\n\t\tif (hasCNode || hasCContainer) {\n\t\t\treturn Math.min(\n\t\t\t\thasCNode ? parseMaxStyle(constrainedNode, domNode, percentageProperty) : infinity,\n\t\t\t\thasCContainer ? parseMaxStyle(constrainedContainer, parentNode, percentageProperty) : infinity);\n\t\t}\n\n\t\treturn 'none';\n\t}\n\t// returns Number or undefined if no constraint\n\thelpers.getConstraintWidth = function(domNode) {\n\t\treturn getConstraintDimension(domNode, 'max-width', 'clientWidth');\n\t};\n\t// returns Number or undefined if no constraint\n\thelpers.getConstraintHeight = function(domNode) {\n\t\treturn getConstraintDimension(domNode, 'max-height', 'clientHeight');\n\t};\n\thelpers.getMaximumWidth = function(domNode) {\n\t\tvar container = domNode.parentNode;\n\t\tif (!container) {\n\t\t\treturn domNode.clientWidth;\n\t\t}\n\n\t\tvar paddingLeft = parseInt(helpers.getStyle(container, 'padding-left'), 10);\n\t\tvar paddingRight = parseInt(helpers.getStyle(container, 'padding-right'), 10);\n\t\tvar w = container.clientWidth - paddingLeft - paddingRight;\n\t\tvar cw = helpers.getConstraintWidth(domNode);\n\t\treturn isNaN(cw) ? w : Math.min(w, cw);\n\t};\n\thelpers.getMaximumHeight = function(domNode) {\n\t\tvar container = domNode.parentNode;\n\t\tif (!container) {\n\t\t\treturn domNode.clientHeight;\n\t\t}\n\n\t\tvar paddingTop = parseInt(helpers.getStyle(container, 'padding-top'), 10);\n\t\tvar paddingBottom = parseInt(helpers.getStyle(container, 'padding-bottom'), 10);\n\t\tvar h = container.clientHeight - paddingTop - paddingBottom;\n\t\tvar ch = helpers.getConstraintHeight(domNode);\n\t\treturn isNaN(ch) ? h : Math.min(h, ch);\n\t};\n\thelpers.getStyle = function(el, property) {\n\t\treturn el.currentStyle ?\n\t\t\tel.currentStyle[property] :\n\t\t\tdocument.defaultView.getComputedStyle(el, null).getPropertyValue(property);\n\t};\n\thelpers.retinaScale = function(chart, forceRatio) {\n\t\tvar pixelRatio = chart.currentDevicePixelRatio = forceRatio || window.devicePixelRatio || 1;\n\t\tif (pixelRatio === 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar canvas = chart.canvas;\n\t\tvar height = chart.height;\n\t\tvar width = chart.width;\n\n\t\tcanvas.height = height * pixelRatio;\n\t\tcanvas.width = width * pixelRatio;\n\t\tchart.ctx.scale(pixelRatio, pixelRatio);\n\n\t\t// If no style has been set on the canvas, the render size is used as display size,\n\t\t// making the chart visually bigger, so let's enforce it to the \"correct\" values.\n\t\t// See https://github.com/chartjs/Chart.js/issues/3575\n\t\tif (!canvas.style.height && !canvas.style.width) {\n\t\t\tcanvas.style.height = height + 'px';\n\t\t\tcanvas.style.width = width + 'px';\n\t\t}\n\t};\n\t// -- Canvas methods\n\thelpers.fontString = function(pixelSize, fontStyle, fontFamily) {\n\t\treturn fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n\t};\n\thelpers.longestText = function(ctx, font, arrayOfThings, cache) {\n\t\tcache = cache || {};\n\t\tvar data = cache.data = cache.data || {};\n\t\tvar gc = cache.garbageCollect = cache.garbageCollect || [];\n\n\t\tif (cache.font !== font) {\n\t\t\tdata = cache.data = {};\n\t\t\tgc = cache.garbageCollect = [];\n\t\t\tcache.font = font;\n\t\t}\n\n\t\tctx.font = font;\n\t\tvar longest = 0;\n\t\thelpers.each(arrayOfThings, function(thing) {\n\t\t\t// Undefined strings and arrays should not be measured\n\t\t\tif (thing !== undefined && thing !== null && helpers.isArray(thing) !== true) {\n\t\t\t\tlongest = helpers.measureText(ctx, data, gc, longest, thing);\n\t\t\t} else if (helpers.isArray(thing)) {\n\t\t\t\t// if it is an array lets measure each element\n\t\t\t\t// to do maybe simplify this function a bit so we can do this more recursively?\n\t\t\t\thelpers.each(thing, function(nestedThing) {\n\t\t\t\t\t// Undefined strings and arrays should not be measured\n\t\t\t\t\tif (nestedThing !== undefined && nestedThing !== null && !helpers.isArray(nestedThing)) {\n\t\t\t\t\t\tlongest = helpers.measureText(ctx, data, gc, longest, nestedThing);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tvar gcLen = gc.length / 2;\n\t\tif (gcLen > arrayOfThings.length) {\n\t\t\tfor (var i = 0; i < gcLen; i++) {\n\t\t\t\tdelete data[gc[i]];\n\t\t\t}\n\t\t\tgc.splice(0, gcLen);\n\t\t}\n\t\treturn longest;\n\t};\n\thelpers.measureText = function(ctx, data, gc, longest, string) {\n\t\tvar textWidth = data[string];\n\t\tif (!textWidth) {\n\t\t\ttextWidth = data[string] = ctx.measureText(string).width;\n\t\t\tgc.push(string);\n\t\t}\n\t\tif (textWidth > longest) {\n\t\t\tlongest = textWidth;\n\t\t}\n\t\treturn longest;\n\t};\n\thelpers.numberOfLabelLines = function(arrayOfThings) {\n\t\tvar numberOfLines = 1;\n\t\thelpers.each(arrayOfThings, function(thing) {\n\t\t\tif (helpers.isArray(thing)) {\n\t\t\t\tif (thing.length > numberOfLines) {\n\t\t\t\t\tnumberOfLines = thing.length;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn numberOfLines;\n\t};\n\n\thelpers.color = !color ?\n\t\tfunction(value) {\n\t\t\tconsole.error('Color.js not found!');\n\t\t\treturn value;\n\t\t} :\n\t\tfunction(value) {\n\t\t\t/* global CanvasGradient */\n\t\t\tif (value instanceof CanvasGradient) {\n\t\t\t\tvalue = defaults.global.defaultColor;\n\t\t\t}\n\n\t\t\treturn color(value);\n\t\t};\n\n\thelpers.getHoverColor = function(colorValue) {\n\t\t/* global CanvasPattern */\n\t\treturn (colorValue instanceof CanvasPattern) ?\n\t\t\tcolorValue :\n\t\t\thelpers.color(colorValue).saturate(0.5).darken(0.1).rgbString();\n\t};\n};\n","var conversions = require(\"./conversions\");\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\nmodule.exports = convert;","/* MIT license */\n\nmodule.exports = {\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","/* MIT license */\nvar colorNames = require('color-name');\n\nmodule.exports = {\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})$/i,\n hex = /^#([a-fA-F0-9]{6})$/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 if (match) {\n match = match[1];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i] + match[i], 16);\n }\n }\n else if (match = string.match(hex)) {\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 }\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 = colorNames[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(rgb) {\n return \"#\" + hexDouble(rgb[0]) + hexDouble(rgb[1])\n + hexDouble(rgb[2]);\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 colorNames) {\n reverseNames[colorNames[name]] = name;\n}\n","'use strict'\r\n\r\nmodule.exports = {\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};\r\n","'use strict';\n\nvar defaults = require('../core/core.defaults');\nvar Element = require('../core/core.element');\nvar helpers = require('../helpers/index');\n\ndefaults._set('global', {\n\telements: {\n\t\tarc: {\n\t\t\tbackgroundColor: defaults.global.defaultColor,\n\t\t\tborderColor: '#fff',\n\t\t\tborderWidth: 2\n\t\t}\n\t}\n});\n\nmodule.exports = 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.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\n\t\tctx.beginPath();\n\n\t\tctx.arc(vm.x, vm.y, vm.outerRadius, sA, eA);\n\t\tctx.arc(vm.x, vm.y, vm.innerRadius, eA, sA, true);\n\n\t\tctx.closePath();\n\t\tctx.strokeStyle = vm.borderColor;\n\t\tctx.lineWidth = vm.borderWidth;\n\n\t\tctx.fillStyle = vm.backgroundColor;\n\n\t\tctx.fill();\n\t\tctx.lineJoin = 'bevel';\n\n\t\tif (vm.borderWidth) {\n\t\t\tctx.stroke();\n\t\t}\n\t}\n});\n","'use strict';\n\nvar defaults = require('../core/core.defaults');\nvar Element = require('../core/core.element');\nvar helpers = require('../helpers/index');\n\nvar globalDefaults = defaults.global;\n\ndefaults._set('global', {\n\telements: {\n\t\tline: {\n\t\t\ttension: 0.4,\n\t\t\tbackgroundColor: globalDefaults.defaultColor,\n\t\t\tborderWidth: 3,\n\t\t\tborderColor: globalDefaults.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\nmodule.exports = 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 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 = vm.borderDashOffset || globalOptionLineElements.borderDashOffset;\n\t\tctx.lineJoin = vm.borderJoinStyle || globalOptionLineElements.borderJoinStyle;\n\t\tctx.lineWidth = 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.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.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","'use strict';\n\nvar defaults = require('../core/core.defaults');\nvar Element = require('../core/core.element');\nvar helpers = require('../helpers/index');\n\nvar defaultColor = defaults.global.defaultColor;\n\ndefaults._set('global', {\n\telements: {\n\t\tpoint: {\n\t\t\tradius: 3,\n\t\t\tpointStyle: 'circle',\n\t\t\tbackgroundColor: defaultColor,\n\t\t\tborderColor: defaultColor,\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\nmodule.exports = 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 model = this._model;\n\t\tvar ctx = this._chart.ctx;\n\t\tvar pointStyle = vm.pointStyle;\n\t\tvar radius = vm.radius;\n\t\tvar x = vm.x;\n\t\tvar y = vm.y;\n\t\tvar color = helpers.color;\n\t\tvar errMargin = 1.01; // 1.01 is margin for Accumulated error. (Especially Edge, IE.)\n\t\tvar ratio = 0;\n\n\t\tif (vm.skip) {\n\t\t\treturn;\n\t\t}\n\n\t\tctx.strokeStyle = vm.borderColor || defaultColor;\n\t\tctx.lineWidth = helpers.valueOrDefault(vm.borderWidth, defaults.global.elements.point.borderWidth);\n\t\tctx.fillStyle = vm.backgroundColor || defaultColor;\n\n\t\t// Cliping for Points.\n\t\t// going out from inner charArea?\n\t\tif ((chartArea !== undefined) && ((model.x < chartArea.left) || (chartArea.right * errMargin < model.x) || (model.y < chartArea.top) || (chartArea.bottom * errMargin < model.y))) {\n\t\t\t// Point fade out\n\t\t\tif (model.x < chartArea.left) {\n\t\t\t\tratio = (x - model.x) / (chartArea.left - model.x);\n\t\t\t} else if (chartArea.right * errMargin < model.x) {\n\t\t\t\tratio = (model.x - x) / (model.x - chartArea.right);\n\t\t\t} else if (model.y < chartArea.top) {\n\t\t\t\tratio = (y - model.y) / (chartArea.top - model.y);\n\t\t\t} else if (chartArea.bottom * errMargin < model.y) {\n\t\t\t\tratio = (model.y - y) / (model.y - chartArea.bottom);\n\t\t\t}\n\t\t\tratio = Math.round(ratio * 100) / 100;\n\t\t\tctx.strokeStyle = color(ctx.strokeStyle).alpha(ratio).rgbString();\n\t\t\tctx.fillStyle = color(ctx.fillStyle).alpha(ratio).rgbString();\n\t\t}\n\n\t\thelpers.canvas.drawPoint(ctx, pointStyle, radius, x, y);\n\t}\n});\n","'use strict';\n\nvar defaults = require('../core/core.defaults');\nvar Element = require('../core/core.element');\n\ndefaults._set('global', {\n\telements: {\n\t\trectangle: {\n\t\t\tbackgroundColor: defaults.global.defaultColor,\n\t\t\tborderColor: defaults.global.defaultColor,\n\t\t\tborderSkipped: 'bottom',\n\t\t\tborderWidth: 0\n\t\t}\n\t}\n});\n\nfunction isVertical(bar) {\n\treturn bar._view.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(bar) {\n\tvar vm = bar._view;\n\tvar x1, x2, y1, y2;\n\n\tif (isVertical(bar)) {\n\t\t// vertical\n\t\tvar halfWidth = vm.width / 2;\n\t\tx1 = vm.x - halfWidth;\n\t\tx2 = vm.x + halfWidth;\n\t\ty1 = Math.min(vm.y, vm.base);\n\t\ty2 = Math.max(vm.y, vm.base);\n\t} else {\n\t\t// horizontal bar\n\t\tvar halfHeight = 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 - halfHeight;\n\t\ty2 = vm.y + halfHeight;\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\nmodule.exports = Element.extend({\n\tdraw: function() {\n\t\tvar ctx = this._chart.ctx;\n\t\tvar vm = this._view;\n\t\tvar left, right, top, bottom, signX, signY, borderSkipped;\n\t\tvar borderWidth = vm.borderWidth;\n\n\t\tif (!vm.horizontal) {\n\t\t\t// bar\n\t\t\tleft = vm.x - vm.width / 2;\n\t\t\tright = vm.x + vm.width / 2;\n\t\t\ttop = vm.y;\n\t\t\tbottom = vm.base;\n\t\t\tsignX = 1;\n\t\t\tsignY = bottom > top ? 1 : -1;\n\t\t\tborderSkipped = vm.borderSkipped || 'bottom';\n\t\t} else {\n\t\t\t// horizontal bar\n\t\t\tleft = vm.base;\n\t\t\tright = vm.x;\n\t\t\ttop = vm.y - vm.height / 2;\n\t\t\tbottom = vm.y + vm.height / 2;\n\t\t\tsignX = right > left ? 1 : -1;\n\t\t\tsignY = 1;\n\t\t\tborderSkipped = vm.borderSkipped || 'left';\n\t\t}\n\n\t\t// Canvas doesn't allow us to stroke inside the width so we can\n\t\t// adjust the sizes to fit if we're setting a stroke on the line\n\t\tif (borderWidth) {\n\t\t\t// borderWidth shold be less than bar width and bar height.\n\t\t\tvar barSize = Math.min(Math.abs(left - right), Math.abs(top - bottom));\n\t\t\tborderWidth = borderWidth > barSize ? barSize : borderWidth;\n\t\t\tvar halfStroke = borderWidth / 2;\n\t\t\t// Adjust borderWidth when bar top position is near vm.base(zero).\n\t\t\tvar borderLeft = left + (borderSkipped !== 'left' ? halfStroke * signX : 0);\n\t\t\tvar borderRight = right + (borderSkipped !== 'right' ? -halfStroke * signX : 0);\n\t\t\tvar borderTop = top + (borderSkipped !== 'top' ? halfStroke * signY : 0);\n\t\t\tvar borderBottom = bottom + (borderSkipped !== 'bottom' ? -halfStroke * signY : 0);\n\t\t\t// not become a vertical line?\n\t\t\tif (borderLeft !== borderRight) {\n\t\t\t\ttop = borderTop;\n\t\t\t\tbottom = borderBottom;\n\t\t\t}\n\t\t\t// not become a horizontal line?\n\t\t\tif (borderTop !== borderBottom) {\n\t\t\t\tleft = borderLeft;\n\t\t\t\tright = borderRight;\n\t\t\t}\n\t\t}\n\n\t\tctx.beginPath();\n\t\tctx.fillStyle = vm.backgroundColor;\n\t\tctx.strokeStyle = vm.borderColor;\n\t\tctx.lineWidth = borderWidth;\n\n\t\t// Corner points, from bottom-left to bottom-right clockwise\n\t\t// | 1 2 |\n\t\t// | 0 3 |\n\t\tvar corners = [\n\t\t\t[left, bottom],\n\t\t\t[left, top],\n\t\t\t[right, top],\n\t\t\t[right, bottom]\n\t\t];\n\n\t\t// Find first (starting) corner with fallback to 'bottom'\n\t\tvar borders = ['bottom', 'left', 'top', 'right'];\n\t\tvar startCorner = borders.indexOf(borderSkipped, 0);\n\t\tif (startCorner === -1) {\n\t\t\tstartCorner = 0;\n\t\t}\n\n\t\tfunction cornerAt(index) {\n\t\t\treturn corners[(startCorner + index) % 4];\n\t\t}\n\n\t\t// Draw rectangle from 'startCorner'\n\t\tvar corner = cornerAt(0);\n\t\tctx.moveTo(corner[0], corner[1]);\n\n\t\tfor (var i = 1; i < 4; i++) {\n\t\t\tcorner = cornerAt(i);\n\t\t\tctx.lineTo(corner[0], corner[1]);\n\t\t}\n\n\t\tctx.fill();\n\t\tif (borderWidth) {\n\t\t\tctx.stroke();\n\t\t}\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\tvar inRange = false;\n\n\t\tif (this._view) {\n\t\t\tvar bounds = getBarBounds(this);\n\t\t\tinRange = mouseX >= bounds.left && mouseX <= bounds.right && mouseY >= bounds.top && mouseY <= bounds.bottom;\n\t\t}\n\n\t\treturn inRange;\n\t},\n\n\tinLabelRange: function(mouseX, mouseY) {\n\t\tvar me = this;\n\t\tif (!me._view) {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar inRange = false;\n\t\tvar bounds = getBarBounds(me);\n\n\t\tif (isVertical(me)) {\n\t\t\tinRange = mouseX >= bounds.left && mouseX <= bounds.right;\n\t\t} else {\n\t\t\tinRange = mouseY >= bounds.top && mouseY <= bounds.bottom;\n\t\t}\n\n\t\treturn inRange;\n\t},\n\n\tinXRange: function(mouseX) {\n\t\tvar bounds = getBarBounds(this);\n\t\treturn mouseX >= bounds.left && mouseX <= bounds.right;\n\t},\n\n\tinYRange: function(mouseY) {\n\t\tvar bounds = getBarBounds(this);\n\t\treturn mouseY >= bounds.top && mouseY <= bounds.bottom;\n\t},\n\n\tgetCenterPoint: function() {\n\t\tvar vm = this._view;\n\t\tvar x, y;\n\t\tif (isVertical(this)) {\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\t\treturn vm.width * Math.abs(vm.y - 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","/**\n * Platform fallback implementation (minimal).\n * @see https://github.com/chartjs/Chart.js/pull/4591#issuecomment-319575939\n */\n\nmodule.exports = {\n\tacquireContext: function(item) {\n\t\tif (item && item.canvas) {\n\t\t\t// Support for any object associated to a canvas (including a context2d)\n\t\t\titem = item.canvas;\n\t\t}\n\n\t\treturn item && item.getContext('2d') || null;\n\t}\n};\n","/**\n * Chart.Platform implementation for targeting a web browser\n */\n\n'use strict';\n\nvar helpers = require('../helpers/index');\n\nvar EXPANDO_KEY = '$chartjs';\nvar CSS_PREFIX = 'chartjs-';\nvar CSS_RENDER_MONITOR = CSS_PREFIX + 'render-monitor';\nvar CSS_RENDER_ANIMATION = CSS_PREFIX + 'render-animation';\nvar ANIMATION_START_EVENTS = ['animationstart', 'webkitAnimationStart'];\n\n/**\n * DOM event types -> Chart.js event types.\n * Note: only events with different types are mapped.\n * @see https://developer.mozilla.org/en-US/docs/Web/Events\n */\nvar EVENT_TYPES = {\n\ttouchstart: 'mousedown',\n\ttouchmove: 'mousemove',\n\ttouchend: 'mouseup',\n\tpointerenter: 'mouseenter',\n\tpointerdown: 'mousedown',\n\tpointermove: 'mousemove',\n\tpointerup: 'mouseup',\n\tpointerleave: 'mouseout',\n\tpointerout: 'mouseout'\n};\n\n/**\n * The \"used\" size is the final value of a dimension property after all calculations have\n * been performed. This method uses the computed style of `element` but returns undefined\n * if the computed style is not expressed in pixels. That can happen in some cases where\n * `element` has a size relative to its parent and this last one is not yet displayed,\n * for example because of `display: none` on a parent node.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\n * @returns {Number} Size in pixels or undefined if unknown.\n */\nfunction readUsedSize(element, property) {\n\tvar value = helpers.getStyle(element, property);\n\tvar matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n\treturn matches ? Number(matches[1]) : undefined;\n}\n\n/**\n * Initializes the canvas style and render size without modifying the canvas display size,\n * since responsiveness is handled by the controller.resize() method. The config is used\n * to determine the aspect ratio to apply in case no explicit height has been specified.\n */\nfunction initCanvas(canvas, config) {\n\tvar style = canvas.style;\n\n\t// NOTE(SB) canvas.getAttribute('width') !== canvas.width: in the first case it\n\t// returns null or '' if no explicit value has been set to the canvas attribute.\n\tvar renderHeight = canvas.getAttribute('height');\n\tvar renderWidth = canvas.getAttribute('width');\n\n\t// Chart.js modifies some canvas values that we want to restore on destroy\n\tcanvas[EXPANDO_KEY] = {\n\t\tinitial: {\n\t\t\theight: renderHeight,\n\t\t\twidth: renderWidth,\n\t\t\tstyle: {\n\t\t\t\tdisplay: style.display,\n\t\t\t\theight: style.height,\n\t\t\t\twidth: style.width\n\t\t\t}\n\t\t}\n\t};\n\n\t// Force canvas to display as block to avoid extra space caused by inline\n\t// elements, which would interfere with the responsive resize process.\n\t// https://github.com/chartjs/Chart.js/issues/2538\n\tstyle.display = style.display || 'block';\n\n\tif (renderWidth === null || renderWidth === '') {\n\t\tvar displayWidth = readUsedSize(canvas, 'width');\n\t\tif (displayWidth !== undefined) {\n\t\t\tcanvas.width = displayWidth;\n\t\t}\n\t}\n\n\tif (renderHeight === null || renderHeight === '') {\n\t\tif (canvas.style.height === '') {\n\t\t\t// If no explicit render height and style height, let's apply the aspect ratio,\n\t\t\t// which one can be specified by the user but also by charts as default option\n\t\t\t// (i.e. options.aspectRatio). If not specified, use canvas aspect ratio of 2.\n\t\t\tcanvas.height = canvas.width / (config.options.aspectRatio || 2);\n\t\t} else {\n\t\t\tvar displayHeight = readUsedSize(canvas, 'height');\n\t\t\tif (displayWidth !== undefined) {\n\t\t\t\tcanvas.height = displayHeight;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn canvas;\n}\n\n/**\n * Detects support for options object argument in addEventListener.\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n * @private\n */\nvar supportsEventListenerOptions = (function() {\n\tvar supports = false;\n\ttry {\n\t\tvar options = Object.defineProperty({}, 'passive', {\n\t\t\tget: function() {\n\t\t\t\tsupports = true;\n\t\t\t}\n\t\t});\n\t\twindow.addEventListener('e', null, options);\n\t} catch (e) {\n\t\t// continue regardless of error\n\t}\n\treturn supports;\n}());\n\n// Default passive to true as expected by Chrome for 'touchstart' and 'touchend' events.\n// https://github.com/chartjs/Chart.js/issues/4287\nvar eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\n\nfunction addEventListener(node, type, listener) {\n\tnode.addEventListener(type, listener, eventListenerOptions);\n}\n\nfunction removeEventListener(node, type, listener) {\n\tnode.removeEventListener(type, listener, eventListenerOptions);\n}\n\nfunction createEvent(type, chart, x, y, nativeEvent) {\n\treturn {\n\t\ttype: type,\n\t\tchart: chart,\n\t\tnative: nativeEvent || null,\n\t\tx: x !== undefined ? x : null,\n\t\ty: y !== undefined ? y : null,\n\t};\n}\n\nfunction fromNativeEvent(event, chart) {\n\tvar type = EVENT_TYPES[event.type] || event.type;\n\tvar pos = helpers.getRelativePosition(event, chart);\n\treturn createEvent(type, chart, pos.x, pos.y, event);\n}\n\nfunction throttled(fn, thisArg) {\n\tvar ticking = false;\n\tvar args = [];\n\n\treturn function() {\n\t\targs = Array.prototype.slice.call(arguments);\n\t\tthisArg = thisArg || this;\n\n\t\tif (!ticking) {\n\t\t\tticking = true;\n\t\t\thelpers.requestAnimFrame.call(window, function() {\n\t\t\t\tticking = false;\n\t\t\t\tfn.apply(thisArg, args);\n\t\t\t});\n\t\t}\n\t};\n}\n\n// Implementation based on https://github.com/marcj/css-element-queries\nfunction createResizer(handler) {\n\tvar resizer = document.createElement('div');\n\tvar cls = CSS_PREFIX + 'size-monitor';\n\tvar maxSize = 1000000;\n\tvar style =\n\t\t'position:absolute;' +\n\t\t'left:0;' +\n\t\t'top:0;' +\n\t\t'right:0;' +\n\t\t'bottom:0;' +\n\t\t'overflow:hidden;' +\n\t\t'pointer-events:none;' +\n\t\t'visibility:hidden;' +\n\t\t'z-index:-1;';\n\n\tresizer.style.cssText = style;\n\tresizer.className = cls;\n\tresizer.innerHTML =\n\t\t'
' +\n\t\t\t'
' +\n\t\t\t'
' +\n\t\t'
' +\n\t\t'
' +\n\t\t\t'
' +\n\t\t\t'
' +\n\t\t'
';\n\n\tvar expand = resizer.childNodes[0];\n\tvar shrink = resizer.childNodes[1];\n\n\tresizer._reset = function() {\n\t\texpand.scrollLeft = maxSize;\n\t\texpand.scrollTop = maxSize;\n\t\tshrink.scrollLeft = maxSize;\n\t\tshrink.scrollTop = maxSize;\n\t};\n\tvar onScroll = function() {\n\t\tresizer._reset();\n\t\thandler();\n\t};\n\n\taddEventListener(expand, 'scroll', onScroll.bind(expand, 'expand'));\n\taddEventListener(shrink, 'scroll', onScroll.bind(shrink, 'shrink'));\n\n\treturn resizer;\n}\n\n// https://davidwalsh.name/detect-node-insertion\nfunction watchForRender(node, handler) {\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\n\tvar proxy = expando.renderProxy = function(e) {\n\t\tif (e.animationName === CSS_RENDER_ANIMATION) {\n\t\t\thandler();\n\t\t}\n\t};\n\n\thelpers.each(ANIMATION_START_EVENTS, function(type) {\n\t\taddEventListener(node, type, proxy);\n\t});\n\n\t// #4737: Chrome might skip the CSS animation when the CSS_RENDER_MONITOR class\n\t// is removed then added back immediately (same animation frame?). Accessing the\n\t// `offsetParent` property will force a reflow and re-evaluate the CSS animation.\n\t// https://gist.github.com/paulirish/5d52fb081b3570c81e3a#box-metrics\n\t// https://github.com/chartjs/Chart.js/issues/4737\n\texpando.reflow = !!node.offsetParent;\n\n\tnode.classList.add(CSS_RENDER_MONITOR);\n}\n\nfunction unwatchForRender(node) {\n\tvar expando = node[EXPANDO_KEY] || {};\n\tvar proxy = expando.renderProxy;\n\n\tif (proxy) {\n\t\thelpers.each(ANIMATION_START_EVENTS, function(type) {\n\t\t\tremoveEventListener(node, type, proxy);\n\t\t});\n\n\t\tdelete expando.renderProxy;\n\t}\n\n\tnode.classList.remove(CSS_RENDER_MONITOR);\n}\n\nfunction addResizeListener(node, listener, chart) {\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\n\n\t// Let's keep track of this added resizer and thus avoid DOM query when removing it.\n\tvar resizer = expando.resizer = createResizer(throttled(function() {\n\t\tif (expando.resizer) {\n\t\t\treturn listener(createEvent('resize', chart));\n\t\t}\n\t}));\n\n\t// The resizer needs to be attached to the node parent, so we first need to be\n\t// sure that `node` is attached to the DOM before injecting the resizer element.\n\twatchForRender(node, function() {\n\t\tif (expando.resizer) {\n\t\t\tvar container = node.parentNode;\n\t\t\tif (container && container !== resizer.parentNode) {\n\t\t\t\tcontainer.insertBefore(resizer, container.firstChild);\n\t\t\t}\n\n\t\t\t// The container size might have changed, let's reset the resizer state.\n\t\t\tresizer._reset();\n\t\t}\n\t});\n}\n\nfunction removeResizeListener(node) {\n\tvar expando = node[EXPANDO_KEY] || {};\n\tvar resizer = expando.resizer;\n\n\tdelete expando.resizer;\n\tunwatchForRender(node);\n\n\tif (resizer && resizer.parentNode) {\n\t\tresizer.parentNode.removeChild(resizer);\n\t}\n}\n\nfunction injectCSS(platform, css) {\n\t// http://stackoverflow.com/q/3922139\n\tvar style = platform._style || document.createElement('style');\n\tif (!platform._style) {\n\t\tplatform._style = style;\n\t\tcss = '/* Chart.js */\\n' + css;\n\t\tstyle.setAttribute('type', 'text/css');\n\t\tdocument.getElementsByTagName('head')[0].appendChild(style);\n\t}\n\n\tstyle.appendChild(document.createTextNode(css));\n}\n\nmodule.exports = {\n\t/**\n\t * This property holds whether this platform is enabled for the current environment.\n\t * Currently used by platform.js to select the proper implementation.\n\t * @private\n\t */\n\t_enabled: typeof window !== 'undefined' && typeof document !== 'undefined',\n\n\tinitialize: function() {\n\t\tvar keyframes = 'from{opacity:0.99}to{opacity:1}';\n\n\t\tinjectCSS(this,\n\t\t\t// DOM rendering detection\n\t\t\t// https://davidwalsh.name/detect-node-insertion\n\t\t\t'@-webkit-keyframes ' + CSS_RENDER_ANIMATION + '{' + keyframes + '}' +\n\t\t\t'@keyframes ' + CSS_RENDER_ANIMATION + '{' + keyframes + '}' +\n\t\t\t'.' + CSS_RENDER_MONITOR + '{' +\n\t\t\t\t'-webkit-animation:' + CSS_RENDER_ANIMATION + ' 0.001s;' +\n\t\t\t\t'animation:' + CSS_RENDER_ANIMATION + ' 0.001s;' +\n\t\t\t'}'\n\t\t);\n\t},\n\n\tacquireContext: function(item, config) {\n\t\tif (typeof item === 'string') {\n\t\t\titem = document.getElementById(item);\n\t\t} else if (item.length) {\n\t\t\t// Support for array based queries (such as jQuery)\n\t\t\titem = item[0];\n\t\t}\n\n\t\tif (item && item.canvas) {\n\t\t\t// Support for any object associated to a canvas (including a context2d)\n\t\t\titem = item.canvas;\n\t\t}\n\n\t\t// To prevent canvas fingerprinting, some add-ons undefine the getContext\n\t\t// method, for example: https://github.com/kkapsner/CanvasBlocker\n\t\t// https://github.com/chartjs/Chart.js/issues/2807\n\t\tvar context = item && item.getContext && item.getContext('2d');\n\n\t\t// `instanceof HTMLCanvasElement/CanvasRenderingContext2D` fails when the item is\n\t\t// inside an iframe or when running in a protected environment. We could guess the\n\t\t// types from their toString() value but let's keep things flexible and assume it's\n\t\t// a sufficient condition if the item has a context2D which has item as `canvas`.\n\t\t// https://github.com/chartjs/Chart.js/issues/3887\n\t\t// https://github.com/chartjs/Chart.js/issues/4102\n\t\t// https://github.com/chartjs/Chart.js/issues/4152\n\t\tif (context && context.canvas === item) {\n\t\t\tinitCanvas(item, config);\n\t\t\treturn context;\n\t\t}\n\n\t\treturn null;\n\t},\n\n\treleaseContext: function(context) {\n\t\tvar canvas = context.canvas;\n\t\tif (!canvas[EXPANDO_KEY]) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar initial = canvas[EXPANDO_KEY].initial;\n\t\t['height', 'width'].forEach(function(prop) {\n\t\t\tvar value = initial[prop];\n\t\t\tif (helpers.isNullOrUndef(value)) {\n\t\t\t\tcanvas.removeAttribute(prop);\n\t\t\t} else {\n\t\t\t\tcanvas.setAttribute(prop, value);\n\t\t\t}\n\t\t});\n\n\t\thelpers.each(initial.style || {}, function(value, key) {\n\t\t\tcanvas.style[key] = value;\n\t\t});\n\n\t\t// The canvas render size might have been changed (and thus the state stack discarded),\n\t\t// we can't use save() and restore() to restore the initial state. So make sure that at\n\t\t// least the canvas context is reset to the default state by setting the canvas width.\n\t\t// https://www.w3.org/TR/2011/WD-html5-20110525/the-canvas-element.html\n\t\tcanvas.width = canvas.width;\n\n\t\tdelete canvas[EXPANDO_KEY];\n\t},\n\n\taddEventListener: function(chart, type, listener) {\n\t\tvar canvas = chart.canvas;\n\t\tif (type === 'resize') {\n\t\t\t// Note: the resize event is not supported on all browsers.\n\t\t\taddResizeListener(canvas, listener, chart);\n\t\t\treturn;\n\t\t}\n\n\t\tvar expando = listener[EXPANDO_KEY] || (listener[EXPANDO_KEY] = {});\n\t\tvar proxies = expando.proxies || (expando.proxies = {});\n\t\tvar proxy = proxies[chart.id + '_' + type] = function(event) {\n\t\t\tlistener(fromNativeEvent(event, chart));\n\t\t};\n\n\t\taddEventListener(canvas, type, proxy);\n\t},\n\n\tremoveEventListener: function(chart, type, listener) {\n\t\tvar canvas = chart.canvas;\n\t\tif (type === 'resize') {\n\t\t\t// Note: the resize event is not supported on all browsers.\n\t\t\tremoveResizeListener(canvas, listener);\n\t\t\treturn;\n\t\t}\n\n\t\tvar expando = listener[EXPANDO_KEY] || {};\n\t\tvar proxies = expando.proxies || {};\n\t\tvar proxy = proxies[chart.id + '_' + type];\n\t\tif (!proxy) {\n\t\t\treturn;\n\t\t}\n\n\t\tremoveEventListener(canvas, type, proxy);\n\t}\n};\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use EventTarget.addEventListener instead.\n * EventTarget.addEventListener compatibility: Chrome, Opera 7, Safari, FF1.5+, IE9+\n * @see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener\n * @function Chart.helpers.addEvent\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.addEvent = addEventListener;\n\n/**\n * Provided for backward compatibility, use EventTarget.removeEventListener instead.\n * EventTarget.removeEventListener compatibility: Chrome, Opera 7, Safari, FF1.5+, IE9+\n * @see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener\n * @function Chart.helpers.removeEvent\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.removeEvent = removeEventListener;\n","/* global window: false */\n'use strict';\n\nvar defaults = require('./core.defaults');\nvar Element = require('./core.element');\nvar helpers = require('../helpers/index');\n\ndefaults._set('global', {\n\tanimation: {\n\t\tduration: 1000,\n\t\teasing: 'easeOutQuart',\n\t\tonProgress: helpers.noop,\n\t\tonComplete: helpers.noop\n\t}\n});\n\nmodule.exports = function(Chart) {\n\n\tChart.Animation = Element.extend({\n\t\tchart: null, // the animation associated chart instance\n\t\tcurrentStep: 0, // the current animation step\n\t\tnumSteps: 60, // default number of steps\n\t\teasing: '', // the easing to use for this animation\n\t\trender: null, // render function used by the animation service\n\n\t\tonAnimationProgress: null, // user specified callback to fire on each step of the animation\n\t\tonAnimationComplete: null, // user specified callback to fire when the animation finishes\n\t});\n\n\tChart.animationService = {\n\t\tframeDuration: 17,\n\t\tanimations: [],\n\t\tdropFrames: 0,\n\t\trequest: null,\n\n\t\t/**\n\t\t * @param {Chart} chart - The chart to animate.\n\t\t * @param {Chart.Animation} animation - The animation that we will animate.\n\t\t * @param {Number} duration - The animation duration in ms.\n\t\t * @param {Boolean} lazy - if true, the chart is not marked as animating to enable more responsive interactions\n\t\t */\n\t\taddAnimation: function(chart, animation, duration, lazy) {\n\t\t\tvar animations = this.animations;\n\t\t\tvar i, ilen;\n\n\t\t\tanimation.chart = chart;\n\n\t\t\tif (!lazy) {\n\t\t\t\tchart.animating = true;\n\t\t\t}\n\n\t\t\tfor (i = 0, ilen = animations.length; i < ilen; ++i) {\n\t\t\t\tif (animations[i].chart === chart) {\n\t\t\t\t\tanimations[i] = animation;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tanimations.push(animation);\n\n\t\t\t// If there are no animations queued, manually kickstart a digest, for lack of a better word\n\t\t\tif (animations.length === 1) {\n\t\t\t\tthis.requestAnimationFrame();\n\t\t\t}\n\t\t},\n\n\t\tcancelAnimation: function(chart) {\n\t\t\tvar index = helpers.findIndex(this.animations, function(animation) {\n\t\t\t\treturn animation.chart === chart;\n\t\t\t});\n\n\t\t\tif (index !== -1) {\n\t\t\t\tthis.animations.splice(index, 1);\n\t\t\t\tchart.animating = false;\n\t\t\t}\n\t\t},\n\n\t\trequestAnimationFrame: function() {\n\t\t\tvar me = this;\n\t\t\tif (me.request === null) {\n\t\t\t\t// Skip animation frame requests until the active one is executed.\n\t\t\t\t// This can happen when processing mouse events, e.g. 'mousemove'\n\t\t\t\t// and 'mouseout' events will trigger multiple renders.\n\t\t\t\tme.request = helpers.requestAnimFrame.call(window, function() {\n\t\t\t\t\tme.request = null;\n\t\t\t\t\tme.startDigest();\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tstartDigest: function() {\n\t\t\tvar me = this;\n\t\t\tvar startTime = Date.now();\n\t\t\tvar framesToDrop = 0;\n\n\t\t\tif (me.dropFrames > 1) {\n\t\t\t\tframesToDrop = Math.floor(me.dropFrames);\n\t\t\t\tme.dropFrames = me.dropFrames % 1;\n\t\t\t}\n\n\t\t\tme.advance(1 + framesToDrop);\n\n\t\t\tvar endTime = Date.now();\n\n\t\t\tme.dropFrames += (endTime - startTime) / me.frameDuration;\n\n\t\t\t// Do we have more stuff to animate?\n\t\t\tif (me.animations.length > 0) {\n\t\t\t\tme.requestAnimationFrame();\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tadvance: function(count) {\n\t\t\tvar animations = this.animations;\n\t\t\tvar animation, chart;\n\t\t\tvar i = 0;\n\n\t\t\twhile (i < animations.length) {\n\t\t\t\tanimation = animations[i];\n\t\t\t\tchart = animation.chart;\n\n\t\t\t\tanimation.currentStep = (animation.currentStep || 0) + count;\n\t\t\t\tanimation.currentStep = Math.min(animation.currentStep, animation.numSteps);\n\n\t\t\t\thelpers.callback(animation.render, [chart, animation], chart);\n\t\t\t\thelpers.callback(animation.onAnimationProgress, [animation], chart);\n\n\t\t\t\tif (animation.currentStep >= animation.numSteps) {\n\t\t\t\t\thelpers.callback(animation.onAnimationComplete, [animation], chart);\n\t\t\t\t\tchart.animating = false;\n\t\t\t\t\tanimations.splice(i, 1);\n\t\t\t\t} else {\n\t\t\t\t\t++i;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * Provided for backward compatibility, use Chart.Animation instead\n\t * @prop Chart.Animation#animationObject\n\t * @deprecated since version 2.6.0\n\t * @todo remove at version 3\n\t */\n\tObject.defineProperty(Chart.Animation.prototype, 'animationObject', {\n\t\tget: function() {\n\t\t\treturn this;\n\t\t}\n\t});\n\n\t/**\n\t * Provided for backward compatibility, use Chart.Animation#chart instead\n\t * @prop Chart.Animation#chartInstance\n\t * @deprecated since version 2.6.0\n\t * @todo remove at version 3\n\t */\n\tObject.defineProperty(Chart.Animation.prototype, 'chartInstance', {\n\t\tget: function() {\n\t\t\treturn this.chart;\n\t\t},\n\t\tset: function(value) {\n\t\t\tthis.chart = value;\n\t\t}\n\t});\n\n};\n","'use strict';\n\nvar defaults = require('./core.defaults');\nvar helpers = require('../helpers/index');\nvar Interaction = require('./core.interaction');\nvar layouts = require('./core.layouts');\nvar platform = require('../platforms/platform');\nvar plugins = require('./core.plugins');\n\nmodule.exports = function(Chart) {\n\n\t// Create a dictionary of chart types, to allow for extension of existing types\n\tChart.types = {};\n\n\t// Store a reference to each instance - allowing us to globally resize chart instances on window resize.\n\t// Destroy method on the chart will remove the instance of the chart from this reference.\n\tChart.instances = {};\n\n\t// Controllers available for dataset visualization eg. bar, line, slice, etc.\n\tChart.controllers = {};\n\n\t/**\n\t * Initializes the given config with global and chart default values.\n\t */\n\tfunction initConfig(config) {\n\t\tconfig = config || {};\n\n\t\t// Do NOT use configMerge() for the data object because this method merges arrays\n\t\t// and so would change references to labels and datasets, preventing data updates.\n\t\tvar data = config.data = config.data || {};\n\t\tdata.datasets = data.datasets || [];\n\t\tdata.labels = data.labels || [];\n\n\t\tconfig.options = helpers.configMerge(\n\t\t\tdefaults.global,\n\t\t\tdefaults[config.type],\n\t\t\tconfig.options || {});\n\n\t\treturn config;\n\t}\n\n\t/**\n\t * Updates the config of the chart\n\t * @param chart {Chart} chart to update the options for\n\t */\n\tfunction updateConfig(chart) {\n\t\tvar newOptions = chart.options;\n\n\t\thelpers.each(chart.scales, function(scale) {\n\t\t\tlayouts.removeBox(chart, scale);\n\t\t});\n\n\t\tnewOptions = helpers.configMerge(\n\t\t\tChart.defaults.global,\n\t\t\tChart.defaults[chart.config.type],\n\t\t\tnewOptions);\n\n\t\tchart.options = chart.config.options = newOptions;\n\t\tchart.ensureScalesHaveIDs();\n\t\tchart.buildOrUpdateScales();\n\t\t// Tooltip\n\t\tchart.tooltip._options = newOptions.tooltips;\n\t\tchart.tooltip.initialize();\n\t}\n\n\tfunction positionIsHorizontal(position) {\n\t\treturn position === 'top' || position === 'bottom';\n\t}\n\n\thelpers.extend(Chart.prototype, /** @lends Chart */ {\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tconstruct: function(item, config) {\n\t\t\tvar me = this;\n\n\t\t\tconfig = initConfig(config);\n\n\t\t\tvar context = platform.acquireContext(item, config);\n\t\t\tvar canvas = context && context.canvas;\n\t\t\tvar height = canvas && canvas.height;\n\t\t\tvar width = canvas && canvas.width;\n\n\t\t\tme.id = helpers.uid();\n\t\t\tme.ctx = context;\n\t\t\tme.canvas = canvas;\n\t\t\tme.config = config;\n\t\t\tme.width = width;\n\t\t\tme.height = height;\n\t\t\tme.aspectRatio = height ? width / height : null;\n\t\t\tme.options = config.options;\n\t\t\tme._bufferedRender = false;\n\n\t\t\t/**\n\t\t\t * Provided for backward compatibility, Chart and Chart.Controller have been merged,\n\t\t\t * the \"instance\" still need to be defined since it might be called from plugins.\n\t\t\t * @prop Chart#chart\n\t\t\t * @deprecated since version 2.6.0\n\t\t\t * @todo remove at version 3\n\t\t\t * @private\n\t\t\t */\n\t\t\tme.chart = me;\n\t\t\tme.controller = me; // chart.chart.controller #inception\n\n\t\t\t// Add the chart instance to the global namespace\n\t\t\tChart.instances[me.id] = me;\n\n\t\t\t// Define alias to the config data: `chart.data === chart.config.data`\n\t\t\tObject.defineProperty(me, 'data', {\n\t\t\t\tget: function() {\n\t\t\t\t\treturn me.config.data;\n\t\t\t\t},\n\t\t\t\tset: function(value) {\n\t\t\t\t\tme.config.data = value;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (!context || !canvas) {\n\t\t\t\t// The given item is not a compatible context2d element, let's return before finalizing\n\t\t\t\t// the chart initialization but after setting basic chart / controller properties that\n\t\t\t\t// can help to figure out that the chart is not valid (e.g chart.canvas !== null);\n\t\t\t\t// https://github.com/chartjs/Chart.js/issues/2807\n\t\t\t\tconsole.error(\"Failed to create chart: can't acquire context from the given item\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tme.initialize();\n\t\t\tme.update();\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tinitialize: function() {\n\t\t\tvar me = this;\n\n\t\t\t// Before init plugin notification\n\t\t\tplugins.notify(me, 'beforeInit');\n\n\t\t\thelpers.retinaScale(me, me.options.devicePixelRatio);\n\n\t\t\tme.bindEvents();\n\n\t\t\tif (me.options.responsive) {\n\t\t\t\t// Initial resize before chart draws (must be silent to preserve initial animations).\n\t\t\t\tme.resize(true);\n\t\t\t}\n\n\t\t\t// Make sure scales have IDs and are built before we build any controllers.\n\t\t\tme.ensureScalesHaveIDs();\n\t\t\tme.buildOrUpdateScales();\n\t\t\tme.initToolTip();\n\n\t\t\t// After init plugin notification\n\t\t\tplugins.notify(me, 'afterInit');\n\n\t\t\treturn me;\n\t\t},\n\n\t\tclear: function() {\n\t\t\thelpers.canvas.clear(this);\n\t\t\treturn this;\n\t\t},\n\n\t\tstop: function() {\n\t\t\t// Stops any current animation loop occurring\n\t\t\tChart.animationService.cancelAnimation(this);\n\t\t\treturn this;\n\t\t},\n\n\t\tresize: function(silent) {\n\t\t\tvar me = this;\n\t\t\tvar options = me.options;\n\t\t\tvar canvas = me.canvas;\n\t\t\tvar aspectRatio = (options.maintainAspectRatio && me.aspectRatio) || null;\n\n\t\t\t// the canvas render width and height will be casted to integers so make sure that\n\t\t\t// the canvas display style uses the same integer values to avoid blurring effect.\n\n\t\t\t// Set to 0 instead of canvas.size because the size defaults to 300x150 if the element is collased\n\t\t\tvar newWidth = Math.max(0, Math.floor(helpers.getMaximumWidth(canvas)));\n\t\t\tvar newHeight = Math.max(0, Math.floor(aspectRatio ? newWidth / aspectRatio : helpers.getMaximumHeight(canvas)));\n\n\t\t\tif (me.width === newWidth && me.height === newHeight) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcanvas.width = me.width = newWidth;\n\t\t\tcanvas.height = me.height = newHeight;\n\t\t\tcanvas.style.width = newWidth + 'px';\n\t\t\tcanvas.style.height = newHeight + 'px';\n\n\t\t\thelpers.retinaScale(me, options.devicePixelRatio);\n\n\t\t\tif (!silent) {\n\t\t\t\t// Notify any plugins about the resize\n\t\t\t\tvar newSize = {width: newWidth, height: newHeight};\n\t\t\t\tplugins.notify(me, 'resize', [newSize]);\n\n\t\t\t\t// Notify of resize\n\t\t\t\tif (me.options.onResize) {\n\t\t\t\t\tme.options.onResize(me, newSize);\n\t\t\t\t}\n\n\t\t\t\tme.stop();\n\t\t\t\tme.update(me.options.responsiveAnimationDuration);\n\t\t\t}\n\t\t},\n\n\t\tensureScalesHaveIDs: function() {\n\t\t\tvar options = this.options;\n\t\t\tvar scalesOptions = options.scales || {};\n\t\t\tvar scaleOptions = options.scale;\n\n\t\t\thelpers.each(scalesOptions.xAxes, function(xAxisOptions, index) {\n\t\t\t\txAxisOptions.id = xAxisOptions.id || ('x-axis-' + index);\n\t\t\t});\n\n\t\t\thelpers.each(scalesOptions.yAxes, function(yAxisOptions, index) {\n\t\t\t\tyAxisOptions.id = yAxisOptions.id || ('y-axis-' + index);\n\t\t\t});\n\n\t\t\tif (scaleOptions) {\n\t\t\t\tscaleOptions.id = scaleOptions.id || 'scale';\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Builds a map of scale ID to scale object for future lookup.\n\t\t */\n\t\tbuildOrUpdateScales: function() {\n\t\t\tvar me = this;\n\t\t\tvar options = me.options;\n\t\t\tvar scales = me.scales || {};\n\t\t\tvar items = [];\n\t\t\tvar updated = Object.keys(scales).reduce(function(obj, id) {\n\t\t\t\tobj[id] = false;\n\t\t\t\treturn obj;\n\t\t\t}, {});\n\n\t\t\tif (options.scales) {\n\t\t\t\titems = items.concat(\n\t\t\t\t\t(options.scales.xAxes || []).map(function(xAxisOptions) {\n\t\t\t\t\t\treturn {options: xAxisOptions, dtype: 'category', dposition: 'bottom'};\n\t\t\t\t\t}),\n\t\t\t\t\t(options.scales.yAxes || []).map(function(yAxisOptions) {\n\t\t\t\t\t\treturn {options: yAxisOptions, dtype: 'linear', dposition: 'left'};\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (options.scale) {\n\t\t\t\titems.push({\n\t\t\t\t\toptions: options.scale,\n\t\t\t\t\tdtype: 'radialLinear',\n\t\t\t\t\tisDefault: true,\n\t\t\t\t\tdposition: 'chartArea'\n\t\t\t\t});\n\t\t\t}\n\n\t\t\thelpers.each(items, function(item) {\n\t\t\t\tvar scaleOptions = item.options;\n\t\t\t\tvar id = scaleOptions.id;\n\t\t\t\tvar scaleType = helpers.valueOrDefault(scaleOptions.type, item.dtype);\n\n\t\t\t\tif (positionIsHorizontal(scaleOptions.position) !== positionIsHorizontal(item.dposition)) {\n\t\t\t\t\tscaleOptions.position = item.dposition;\n\t\t\t\t}\n\n\t\t\t\tupdated[id] = true;\n\t\t\t\tvar scale = null;\n\t\t\t\tif (id in scales && scales[id].type === scaleType) {\n\t\t\t\t\tscale = scales[id];\n\t\t\t\t\tscale.options = scaleOptions;\n\t\t\t\t\tscale.ctx = me.ctx;\n\t\t\t\t\tscale.chart = me;\n\t\t\t\t} else {\n\t\t\t\t\tvar scaleClass = Chart.scaleService.getScaleConstructor(scaleType);\n\t\t\t\t\tif (!scaleClass) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tscale = new scaleClass({\n\t\t\t\t\t\tid: id,\n\t\t\t\t\t\ttype: scaleType,\n\t\t\t\t\t\toptions: scaleOptions,\n\t\t\t\t\t\tctx: me.ctx,\n\t\t\t\t\t\tchart: me\n\t\t\t\t\t});\n\t\t\t\t\tscales[scale.id] = scale;\n\t\t\t\t}\n\n\t\t\t\tscale.mergeTicksOptions();\n\n\t\t\t\t// TODO(SB): I think we should be able to remove this custom case (options.scale)\n\t\t\t\t// and consider it as a regular scale part of the \"scales\"\" map only! This would\n\t\t\t\t// make the logic easier and remove some useless? custom code.\n\t\t\t\tif (item.isDefault) {\n\t\t\t\t\tme.scale = scale;\n\t\t\t\t}\n\t\t\t});\n\t\t\t// clear up discarded scales\n\t\t\thelpers.each(updated, function(hasUpdated, id) {\n\t\t\t\tif (!hasUpdated) {\n\t\t\t\t\tdelete scales[id];\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tme.scales = scales;\n\n\t\t\tChart.scaleService.addScalesToLayout(this);\n\t\t},\n\n\t\tbuildOrUpdateControllers: function() {\n\t\t\tvar me = this;\n\t\t\tvar types = [];\n\t\t\tvar newControllers = [];\n\n\t\t\thelpers.each(me.data.datasets, function(dataset, datasetIndex) {\n\t\t\t\tvar meta = me.getDatasetMeta(datasetIndex);\n\t\t\t\tvar type = dataset.type || me.config.type;\n\n\t\t\t\tif (meta.type && meta.type !== type) {\n\t\t\t\t\tme.destroyDatasetMeta(datasetIndex);\n\t\t\t\t\tmeta = me.getDatasetMeta(datasetIndex);\n\t\t\t\t}\n\t\t\t\tmeta.type = type;\n\n\t\t\t\ttypes.push(meta.type);\n\n\t\t\t\tif (meta.controller) {\n\t\t\t\t\tmeta.controller.updateIndex(datasetIndex);\n\t\t\t\t\tmeta.controller.linkScales();\n\t\t\t\t} else {\n\t\t\t\t\tvar ControllerClass = Chart.controllers[meta.type];\n\t\t\t\t\tif (ControllerClass === undefined) {\n\t\t\t\t\t\tthrow new Error('\"' + meta.type + '\" is not a chart type.');\n\t\t\t\t\t}\n\n\t\t\t\t\tmeta.controller = new ControllerClass(me, datasetIndex);\n\t\t\t\t\tnewControllers.push(meta.controller);\n\t\t\t\t}\n\t\t\t}, me);\n\n\t\t\treturn newControllers;\n\t\t},\n\n\t\t/**\n\t\t * Reset the elements of all datasets\n\t\t * @private\n\t\t */\n\t\tresetElements: function() {\n\t\t\tvar me = this;\n\t\t\thelpers.each(me.data.datasets, function(dataset, datasetIndex) {\n\t\t\t\tme.getDatasetMeta(datasetIndex).controller.reset();\n\t\t\t}, me);\n\t\t},\n\n\t\t/**\n\t\t* Resets the chart back to it's state before the initial animation\n\t\t*/\n\t\treset: function() {\n\t\t\tthis.resetElements();\n\t\t\tthis.tooltip.initialize();\n\t\t},\n\n\t\tupdate: function(config) {\n\t\t\tvar me = this;\n\n\t\t\tif (!config || typeof config !== 'object') {\n\t\t\t\t// backwards compatibility\n\t\t\t\tconfig = {\n\t\t\t\t\tduration: config,\n\t\t\t\t\tlazy: arguments[1]\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tupdateConfig(me);\n\n\t\t\t// plugins options references might have change, let's invalidate the cache\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5111#issuecomment-355934167\n\t\t\tplugins._invalidate(me);\n\n\t\t\tif (plugins.notify(me, 'beforeUpdate') === false) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// In case the entire data object changed\n\t\t\tme.tooltip._data = me.data;\n\n\t\t\t// Make sure dataset controllers are updated and new controllers are reset\n\t\t\tvar newControllers = me.buildOrUpdateControllers();\n\n\t\t\t// Make sure all dataset controllers have correct meta data counts\n\t\t\thelpers.each(me.data.datasets, function(dataset, datasetIndex) {\n\t\t\t\tme.getDatasetMeta(datasetIndex).controller.buildOrUpdateElements();\n\t\t\t}, me);\n\n\t\t\tme.updateLayout();\n\n\t\t\t// Can only reset the new controllers after the scales have been updated\n\t\t\tif (me.options.animation && me.options.animation.duration) {\n\t\t\t\thelpers.each(newControllers, function(controller) {\n\t\t\t\t\tcontroller.reset();\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tme.updateDatasets();\n\n\t\t\t// Need to reset tooltip in case it is displayed with elements that are removed\n\t\t\t// after update.\n\t\t\tme.tooltip.initialize();\n\n\t\t\t// Last active contains items that were previously in the tooltip.\n\t\t\t// When we reset the tooltip, we need to clear it\n\t\t\tme.lastActive = [];\n\n\t\t\t// Do this before render so that any plugins that need final scale updates can use it\n\t\t\tplugins.notify(me, 'afterUpdate');\n\n\t\t\tif (me._bufferedRender) {\n\t\t\t\tme._bufferedRequest = {\n\t\t\t\t\tduration: config.duration,\n\t\t\t\t\teasing: config.easing,\n\t\t\t\t\tlazy: config.lazy\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tme.render(config);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Updates the chart layout unless a plugin returns `false` to the `beforeLayout`\n\t\t * hook, in which case, plugins will not be called on `afterLayout`.\n\t\t * @private\n\t\t */\n\t\tupdateLayout: function() {\n\t\t\tvar me = this;\n\n\t\t\tif (plugins.notify(me, 'beforeLayout') === false) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlayouts.update(this, this.width, this.height);\n\n\t\t\t/**\n\t\t\t * Provided for backward compatibility, use `afterLayout` instead.\n\t\t\t * @method IPlugin#afterScaleUpdate\n\t\t\t * @deprecated since version 2.5.0\n\t\t\t * @todo remove at version 3\n\t\t\t * @private\n\t\t\t */\n\t\t\tplugins.notify(me, 'afterScaleUpdate');\n\t\t\tplugins.notify(me, 'afterLayout');\n\t\t},\n\n\t\t/**\n\t\t * Updates all datasets unless a plugin returns `false` to the `beforeDatasetsUpdate`\n\t\t * hook, in which case, plugins will not be called on `afterDatasetsUpdate`.\n\t\t * @private\n\t\t */\n\t\tupdateDatasets: function() {\n\t\t\tvar me = this;\n\n\t\t\tif (plugins.notify(me, 'beforeDatasetsUpdate') === false) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfor (var i = 0, ilen = me.data.datasets.length; i < ilen; ++i) {\n\t\t\t\tme.updateDataset(i);\n\t\t\t}\n\n\t\t\tplugins.notify(me, 'afterDatasetsUpdate');\n\t\t},\n\n\t\t/**\n\t\t * Updates dataset at index unless a plugin returns `false` to the `beforeDatasetUpdate`\n\t\t * hook, in which case, plugins will not be called on `afterDatasetUpdate`.\n\t\t * @private\n\t\t */\n\t\tupdateDataset: function(index) {\n\t\t\tvar me = this;\n\t\t\tvar meta = me.getDatasetMeta(index);\n\t\t\tvar args = {\n\t\t\t\tmeta: meta,\n\t\t\t\tindex: index\n\t\t\t};\n\n\t\t\tif (plugins.notify(me, 'beforeDatasetUpdate', [args]) === false) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tmeta.controller.update();\n\n\t\t\tplugins.notify(me, 'afterDatasetUpdate', [args]);\n\t\t},\n\n\t\trender: function(config) {\n\t\t\tvar me = this;\n\n\t\t\tif (!config || typeof config !== 'object') {\n\t\t\t\t// backwards compatibility\n\t\t\t\tconfig = {\n\t\t\t\t\tduration: config,\n\t\t\t\t\tlazy: arguments[1]\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tvar duration = config.duration;\n\t\t\tvar lazy = config.lazy;\n\n\t\t\tif (plugins.notify(me, 'beforeRender') === false) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar animationOptions = me.options.animation;\n\t\t\tvar onComplete = function(animation) {\n\t\t\t\tplugins.notify(me, 'afterRender');\n\t\t\t\thelpers.callback(animationOptions && animationOptions.onComplete, [animation], me);\n\t\t\t};\n\n\t\t\tif (animationOptions && ((typeof duration !== 'undefined' && duration !== 0) || (typeof duration === 'undefined' && animationOptions.duration !== 0))) {\n\t\t\t\tvar animation = new Chart.Animation({\n\t\t\t\t\tnumSteps: (duration || animationOptions.duration) / 16.66, // 60 fps\n\t\t\t\t\teasing: config.easing || animationOptions.easing,\n\n\t\t\t\t\trender: function(chart, animationObject) {\n\t\t\t\t\t\tvar easingFunction = helpers.easing.effects[animationObject.easing];\n\t\t\t\t\t\tvar currentStep = animationObject.currentStep;\n\t\t\t\t\t\tvar stepDecimal = currentStep / animationObject.numSteps;\n\n\t\t\t\t\t\tchart.draw(easingFunction(stepDecimal), stepDecimal, currentStep);\n\t\t\t\t\t},\n\n\t\t\t\t\tonAnimationProgress: animationOptions.onProgress,\n\t\t\t\t\tonAnimationComplete: onComplete\n\t\t\t\t});\n\n\t\t\t\tChart.animationService.addAnimation(me, animation, duration, lazy);\n\t\t\t} else {\n\t\t\t\tme.draw();\n\n\t\t\t\t// See https://github.com/chartjs/Chart.js/issues/3781\n\t\t\t\tonComplete(new Chart.Animation({numSteps: 0, chart: me}));\n\t\t\t}\n\n\t\t\treturn me;\n\t\t},\n\n\t\tdraw: function(easingValue) {\n\t\t\tvar me = this;\n\n\t\t\tme.clear();\n\n\t\t\tif (helpers.isNullOrUndef(easingValue)) {\n\t\t\t\teasingValue = 1;\n\t\t\t}\n\n\t\t\tme.transition(easingValue);\n\n\t\t\tif (plugins.notify(me, 'beforeDraw', [easingValue]) === false) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Draw all the scales\n\t\t\thelpers.each(me.boxes, function(box) {\n\t\t\t\tbox.draw(me.chartArea);\n\t\t\t}, me);\n\n\t\t\tif (me.scale) {\n\t\t\t\tme.scale.draw();\n\t\t\t}\n\n\t\t\tme.drawDatasets(easingValue);\n\t\t\tme._drawTooltip(easingValue);\n\n\t\t\tplugins.notify(me, 'afterDraw', [easingValue]);\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\ttransition: function(easingValue) {\n\t\t\tvar me = this;\n\n\t\t\tfor (var i = 0, ilen = (me.data.datasets || []).length; i < ilen; ++i) {\n\t\t\t\tif (me.isDatasetVisible(i)) {\n\t\t\t\t\tme.getDatasetMeta(i).controller.transition(easingValue);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tme.tooltip.transition(easingValue);\n\t\t},\n\n\t\t/**\n\t\t * Draws all datasets unless a plugin returns `false` to the `beforeDatasetsDraw`\n\t\t * hook, in which case, plugins will not be called on `afterDatasetsDraw`.\n\t\t * @private\n\t\t */\n\t\tdrawDatasets: function(easingValue) {\n\t\t\tvar me = this;\n\n\t\t\tif (plugins.notify(me, 'beforeDatasetsDraw', [easingValue]) === false) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Draw datasets reversed to support proper line stacking\n\t\t\tfor (var i = (me.data.datasets || []).length - 1; i >= 0; --i) {\n\t\t\t\tif (me.isDatasetVisible(i)) {\n\t\t\t\t\tme.drawDataset(i, easingValue);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tplugins.notify(me, 'afterDatasetsDraw', [easingValue]);\n\t\t},\n\n\t\t/**\n\t\t * Draws dataset at index unless a plugin returns `false` to the `beforeDatasetDraw`\n\t\t * hook, in which case, plugins will not be called on `afterDatasetDraw`.\n\t\t * @private\n\t\t */\n\t\tdrawDataset: function(index, easingValue) {\n\t\t\tvar me = this;\n\t\t\tvar meta = me.getDatasetMeta(index);\n\t\t\tvar args = {\n\t\t\t\tmeta: meta,\n\t\t\t\tindex: index,\n\t\t\t\teasingValue: easingValue\n\t\t\t};\n\n\t\t\tif (plugins.notify(me, 'beforeDatasetDraw', [args]) === false) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tmeta.controller.draw(easingValue);\n\n\t\t\tplugins.notify(me, 'afterDatasetDraw', [args]);\n\t\t},\n\n\t\t/**\n\t\t * Draws tooltip unless a plugin returns `false` to the `beforeTooltipDraw`\n\t\t * hook, in which case, plugins will not be called on `afterTooltipDraw`.\n\t\t * @private\n\t\t */\n\t\t_drawTooltip: function(easingValue) {\n\t\t\tvar me = this;\n\t\t\tvar tooltip = me.tooltip;\n\t\t\tvar args = {\n\t\t\t\ttooltip: tooltip,\n\t\t\t\teasingValue: easingValue\n\t\t\t};\n\n\t\t\tif (plugins.notify(me, 'beforeTooltipDraw', [args]) === false) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttooltip.draw();\n\n\t\t\tplugins.notify(me, 'afterTooltipDraw', [args]);\n\t\t},\n\n\t\t// Get the single element that was clicked on\n\t\t// @return : An object containing the dataset index and element index of the matching element. Also contains the rectangle that was draw\n\t\tgetElementAtEvent: function(e) {\n\t\t\treturn Interaction.modes.single(this, e);\n\t\t},\n\n\t\tgetElementsAtEvent: function(e) {\n\t\t\treturn Interaction.modes.label(this, e, {intersect: true});\n\t\t},\n\n\t\tgetElementsAtXAxis: function(e) {\n\t\t\treturn Interaction.modes['x-axis'](this, e, {intersect: true});\n\t\t},\n\n\t\tgetElementsAtEventForMode: function(e, mode, options) {\n\t\t\tvar method = Interaction.modes[mode];\n\t\t\tif (typeof method === 'function') {\n\t\t\t\treturn method(this, e, options);\n\t\t\t}\n\n\t\t\treturn [];\n\t\t},\n\n\t\tgetDatasetAtEvent: function(e) {\n\t\t\treturn Interaction.modes.dataset(this, e, {intersect: true});\n\t\t},\n\n\t\tgetDatasetMeta: function(datasetIndex) {\n\t\t\tvar me = this;\n\t\t\tvar dataset = me.data.datasets[datasetIndex];\n\t\t\tif (!dataset._meta) {\n\t\t\t\tdataset._meta = {};\n\t\t\t}\n\n\t\t\tvar meta = dataset._meta[me.id];\n\t\t\tif (!meta) {\n\t\t\t\tmeta = dataset._meta[me.id] = {\n\t\t\t\t\ttype: null,\n\t\t\t\t\tdata: [],\n\t\t\t\t\tdataset: null,\n\t\t\t\t\tcontroller: null,\n\t\t\t\t\thidden: null,\t\t\t// See isDatasetVisible() comment\n\t\t\t\t\txAxisID: null,\n\t\t\t\t\tyAxisID: null\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn meta;\n\t\t},\n\n\t\tgetVisibleDatasetCount: function() {\n\t\t\tvar count = 0;\n\t\t\tfor (var i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n\t\t\t\tif (this.isDatasetVisible(i)) {\n\t\t\t\t\tcount++;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn count;\n\t\t},\n\n\t\tisDatasetVisible: function(datasetIndex) {\n\t\t\tvar meta = this.getDatasetMeta(datasetIndex);\n\n\t\t\t// meta.hidden is a per chart dataset hidden flag override with 3 states: if true or false,\n\t\t\t// the dataset.hidden value is ignored, else if null, the dataset hidden state is returned.\n\t\t\treturn typeof meta.hidden === 'boolean' ? !meta.hidden : !this.data.datasets[datasetIndex].hidden;\n\t\t},\n\n\t\tgenerateLegend: function() {\n\t\t\treturn this.options.legendCallback(this);\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tdestroyDatasetMeta: function(datasetIndex) {\n\t\t\tvar id = this.id;\n\t\t\tvar dataset = this.data.datasets[datasetIndex];\n\t\t\tvar meta = dataset._meta && dataset._meta[id];\n\n\t\t\tif (meta) {\n\t\t\t\tmeta.controller.destroy();\n\t\t\t\tdelete dataset._meta[id];\n\t\t\t}\n\t\t},\n\n\t\tdestroy: function() {\n\t\t\tvar me = this;\n\t\t\tvar canvas = me.canvas;\n\t\t\tvar i, ilen;\n\n\t\t\tme.stop();\n\n\t\t\t// dataset controllers need to cleanup associated data\n\t\t\tfor (i = 0, ilen = me.data.datasets.length; i < ilen; ++i) {\n\t\t\t\tme.destroyDatasetMeta(i);\n\t\t\t}\n\n\t\t\tif (canvas) {\n\t\t\t\tme.unbindEvents();\n\t\t\t\thelpers.canvas.clear(me);\n\t\t\t\tplatform.releaseContext(me.ctx);\n\t\t\t\tme.canvas = null;\n\t\t\t\tme.ctx = null;\n\t\t\t}\n\n\t\t\tplugins.notify(me, 'destroy');\n\n\t\t\tdelete Chart.instances[me.id];\n\t\t},\n\n\t\ttoBase64Image: function() {\n\t\t\treturn this.canvas.toDataURL.apply(this.canvas, arguments);\n\t\t},\n\n\t\tinitToolTip: function() {\n\t\t\tvar me = this;\n\t\t\tme.tooltip = new Chart.Tooltip({\n\t\t\t\t_chart: me,\n\t\t\t\t_chartInstance: me, // deprecated, backward compatibility\n\t\t\t\t_data: me.data,\n\t\t\t\t_options: me.options.tooltips\n\t\t\t}, me);\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tbindEvents: function() {\n\t\t\tvar me = this;\n\t\t\tvar listeners = me._listeners = {};\n\t\t\tvar listener = function() {\n\t\t\t\tme.eventHandler.apply(me, arguments);\n\t\t\t};\n\n\t\t\thelpers.each(me.options.events, function(type) {\n\t\t\t\tplatform.addEventListener(me, type, listener);\n\t\t\t\tlisteners[type] = listener;\n\t\t\t});\n\n\t\t\t// Elements used to detect size change should not be injected for non responsive charts.\n\t\t\t// See https://github.com/chartjs/Chart.js/issues/2210\n\t\t\tif (me.options.responsive) {\n\t\t\t\tlistener = function() {\n\t\t\t\t\tme.resize();\n\t\t\t\t};\n\n\t\t\t\tplatform.addEventListener(me, 'resize', listener);\n\t\t\t\tlisteners.resize = listener;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tunbindEvents: function() {\n\t\t\tvar me = this;\n\t\t\tvar listeners = me._listeners;\n\t\t\tif (!listeners) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tdelete me._listeners;\n\t\t\thelpers.each(listeners, function(listener, type) {\n\t\t\t\tplatform.removeEventListener(me, type, listener);\n\t\t\t});\n\t\t},\n\n\t\tupdateHoverStyle: function(elements, mode, enabled) {\n\t\t\tvar method = enabled ? 'setHoverStyle' : 'removeHoverStyle';\n\t\t\tvar element, i, ilen;\n\n\t\t\tfor (i = 0, ilen = elements.length; i < ilen; ++i) {\n\t\t\t\telement = elements[i];\n\t\t\t\tif (element) {\n\t\t\t\t\tthis.getDatasetMeta(element._datasetIndex).controller[method](element);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\teventHandler: function(e) {\n\t\t\tvar me = this;\n\t\t\tvar tooltip = me.tooltip;\n\n\t\t\tif (plugins.notify(me, 'beforeEvent', [e]) === false) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Buffer any update calls so that renders do not occur\n\t\t\tme._bufferedRender = true;\n\t\t\tme._bufferedRequest = null;\n\n\t\t\tvar changed = me.handleEvent(e);\n\t\t\t// for smooth tooltip animations issue #4989\n\t\t\t// the tooltip should be the source of change\n\t\t\t// Animation check workaround:\n\t\t\t// tooltip._start will be null when tooltip isn't animating\n\t\t\tif (tooltip) {\n\t\t\t\tchanged = tooltip._start\n\t\t\t\t\t? tooltip.handleEvent(e)\n\t\t\t\t\t: changed | tooltip.handleEvent(e);\n\t\t\t}\n\n\t\t\tplugins.notify(me, 'afterEvent', [e]);\n\n\t\t\tvar bufferedRequest = me._bufferedRequest;\n\t\t\tif (bufferedRequest) {\n\t\t\t\t// If we have an update that was triggered, we need to do a normal render\n\t\t\t\tme.render(bufferedRequest);\n\t\t\t} else if (changed && !me.animating) {\n\t\t\t\t// If entering, leaving, or changing elements, animate the change via pivot\n\t\t\t\tme.stop();\n\n\t\t\t\t// We only need to render at this point. Updating will cause scales to be\n\t\t\t\t// recomputed generating flicker & using more memory than necessary.\n\t\t\t\tme.render(me.options.hover.animationDuration, true);\n\t\t\t}\n\n\t\t\tme._bufferedRender = false;\n\t\t\tme._bufferedRequest = null;\n\n\t\t\treturn me;\n\t\t},\n\n\t\t/**\n\t\t * Handle an event\n\t\t * @private\n\t\t * @param {IEvent} event the event to handle\n\t\t * @return {Boolean} true if the chart needs to re-render\n\t\t */\n\t\thandleEvent: function(e) {\n\t\t\tvar me = this;\n\t\t\tvar options = me.options || {};\n\t\t\tvar hoverOptions = options.hover;\n\t\t\tvar changed = false;\n\n\t\t\tme.lastActive = me.lastActive || [];\n\n\t\t\t// Find Active Elements for hover and tooltips\n\t\t\tif (e.type === 'mouseout') {\n\t\t\t\tme.active = [];\n\t\t\t} else {\n\t\t\t\tme.active = me.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions);\n\t\t\t}\n\n\t\t\t// Invoke onHover hook\n\t\t\t// Need to call with native event here to not break backwards compatibility\n\t\t\thelpers.callback(options.onHover || options.hover.onHover, [e.native, me.active], me);\n\n\t\t\tif (e.type === 'mouseup' || e.type === 'click') {\n\t\t\t\tif (options.onClick) {\n\t\t\t\t\t// Use e.native here for backwards compatibility\n\t\t\t\t\toptions.onClick.call(me, e.native, me.active);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove styling for last active (even if it may still be active)\n\t\t\tif (me.lastActive.length) {\n\t\t\t\tme.updateHoverStyle(me.lastActive, hoverOptions.mode, false);\n\t\t\t}\n\n\t\t\t// Built in hover styling\n\t\t\tif (me.active.length && hoverOptions.mode) {\n\t\t\t\tme.updateHoverStyle(me.active, hoverOptions.mode, true);\n\t\t\t}\n\n\t\t\tchanged = !helpers.arrayEquals(me.active, me.lastActive);\n\n\t\t\t// Remember Last Actives\n\t\t\tme.lastActive = me.active;\n\n\t\t\treturn changed;\n\t\t}\n\t});\n\n\t/**\n\t * Provided for backward compatibility, use Chart instead.\n\t * @class Chart.Controller\n\t * @deprecated since version 2.6.0\n\t * @todo remove at version 3\n\t * @private\n\t */\n\tChart.Controller = Chart;\n};\n","'use strict';\n\nvar helpers = require('../helpers/index');\n\nmodule.exports = function(Chart) {\n\n\tvar arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\n\n\t/**\n\t * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\n\t * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\n\t * called on the 'onData*' callbacks (e.g. onDataPush, etc.) with same arguments.\n\t */\n\tfunction listenArrayEvents(array, listener) {\n\t\tif (array._chartjs) {\n\t\t\tarray._chartjs.listeners.push(listener);\n\t\t\treturn;\n\t\t}\n\n\t\tObject.defineProperty(array, '_chartjs', {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: {\n\t\t\t\tlisteners: [listener]\n\t\t\t}\n\t\t});\n\n\t\tarrayEvents.forEach(function(key) {\n\t\t\tvar method = 'onData' + key.charAt(0).toUpperCase() + key.slice(1);\n\t\t\tvar base = array[key];\n\n\t\t\tObject.defineProperty(array, key, {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: false,\n\t\t\t\tvalue: function() {\n\t\t\t\t\tvar args = Array.prototype.slice.call(arguments);\n\t\t\t\t\tvar res = base.apply(this, args);\n\n\t\t\t\t\thelpers.each(array._chartjs.listeners, function(object) {\n\t\t\t\t\t\tif (typeof object[method] === 'function') {\n\t\t\t\t\t\t\tobject[method].apply(object, args);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\treturn res;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Removes the given array event listener and cleanup extra attached properties (such as\n\t * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\n\t */\n\tfunction unlistenArrayEvents(array, listener) {\n\t\tvar stub = array._chartjs;\n\t\tif (!stub) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar listeners = stub.listeners;\n\t\tvar index = listeners.indexOf(listener);\n\t\tif (index !== -1) {\n\t\t\tlisteners.splice(index, 1);\n\t\t}\n\n\t\tif (listeners.length > 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tarrayEvents.forEach(function(key) {\n\t\t\tdelete array[key];\n\t\t});\n\n\t\tdelete array._chartjs;\n\t}\n\n\t// Base class for all dataset controllers (line, bar, etc)\n\tChart.DatasetController = function(chart, datasetIndex) {\n\t\tthis.initialize(chart, datasetIndex);\n\t};\n\n\thelpers.extend(Chart.DatasetController.prototype, {\n\n\t\t/**\n\t\t * Element type used to generate a meta dataset (e.g. Chart.element.Line).\n\t\t * @type {Chart.core.element}\n\t\t */\n\t\tdatasetElementType: null,\n\n\t\t/**\n\t\t * Element type used to generate a meta data (e.g. Chart.element.Point).\n\t\t * @type {Chart.core.element}\n\t\t */\n\t\tdataElementType: null,\n\n\t\tinitialize: function(chart, datasetIndex) {\n\t\t\tvar me = this;\n\t\t\tme.chart = chart;\n\t\t\tme.index = datasetIndex;\n\t\t\tme.linkScales();\n\t\t\tme.addElements();\n\t\t},\n\n\t\tupdateIndex: function(datasetIndex) {\n\t\t\tthis.index = datasetIndex;\n\t\t},\n\n\t\tlinkScales: function() {\n\t\t\tvar me = this;\n\t\t\tvar meta = me.getMeta();\n\t\t\tvar dataset = me.getDataset();\n\n\t\t\tif (meta.xAxisID === null || !(meta.xAxisID in me.chart.scales)) {\n\t\t\t\tmeta.xAxisID = dataset.xAxisID || me.chart.options.scales.xAxes[0].id;\n\t\t\t}\n\t\t\tif (meta.yAxisID === null || !(meta.yAxisID in me.chart.scales)) {\n\t\t\t\tmeta.yAxisID = dataset.yAxisID || me.chart.options.scales.yAxes[0].id;\n\t\t\t}\n\t\t},\n\n\t\tgetDataset: function() {\n\t\t\treturn this.chart.data.datasets[this.index];\n\t\t},\n\n\t\tgetMeta: function() {\n\t\t\treturn this.chart.getDatasetMeta(this.index);\n\t\t},\n\n\t\tgetScaleForId: function(scaleID) {\n\t\t\treturn this.chart.scales[scaleID];\n\t\t},\n\n\t\treset: function() {\n\t\t\tthis.update(true);\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tdestroy: function() {\n\t\t\tif (this._data) {\n\t\t\t\tunlistenArrayEvents(this._data, this);\n\t\t\t}\n\t\t},\n\n\t\tcreateMetaDataset: function() {\n\t\t\tvar me = this;\n\t\t\tvar type = me.datasetElementType;\n\t\t\treturn type && new type({\n\t\t\t\t_chart: me.chart,\n\t\t\t\t_datasetIndex: me.index\n\t\t\t});\n\t\t},\n\n\t\tcreateMetaData: function(index) {\n\t\t\tvar me = this;\n\t\t\tvar type = me.dataElementType;\n\t\t\treturn type && new type({\n\t\t\t\t_chart: me.chart,\n\t\t\t\t_datasetIndex: me.index,\n\t\t\t\t_index: index\n\t\t\t});\n\t\t},\n\n\t\taddElements: function() {\n\t\t\tvar me = this;\n\t\t\tvar meta = me.getMeta();\n\t\t\tvar data = me.getDataset().data || [];\n\t\t\tvar metaData = meta.data;\n\t\t\tvar i, ilen;\n\n\t\t\tfor (i = 0, ilen = data.length; i < ilen; ++i) {\n\t\t\t\tmetaData[i] = metaData[i] || me.createMetaData(i);\n\t\t\t}\n\n\t\t\tmeta.dataset = meta.dataset || me.createMetaDataset();\n\t\t},\n\n\t\taddElementAndReset: function(index) {\n\t\t\tvar element = this.createMetaData(index);\n\t\t\tthis.getMeta().data.splice(index, 0, element);\n\t\t\tthis.updateElement(element, index, true);\n\t\t},\n\n\t\tbuildOrUpdateElements: function() {\n\t\t\tvar me = this;\n\t\t\tvar dataset = me.getDataset();\n\t\t\tvar data = dataset.data || (dataset.data = []);\n\n\t\t\t// In order to correctly handle data addition/deletion animation (an thus simulate\n\t\t\t// real-time charts), we need to monitor these data modifications and synchronize\n\t\t\t// the internal meta data accordingly.\n\t\t\tif (me._data !== data) {\n\t\t\t\tif (me._data) {\n\t\t\t\t\t// This case happens when the user replaced the data array instance.\n\t\t\t\t\tunlistenArrayEvents(me._data, me);\n\t\t\t\t}\n\n\t\t\t\tlistenArrayEvents(data, me);\n\t\t\t\tme._data = data;\n\t\t\t}\n\n\t\t\t// Re-sync meta data in case the user replaced the data array or if we missed\n\t\t\t// any updates and so make sure that we handle number of datapoints changing.\n\t\t\tme.resyncElements();\n\t\t},\n\n\t\tupdate: helpers.noop,\n\n\t\ttransition: function(easingValue) {\n\t\t\tvar meta = this.getMeta();\n\t\t\tvar elements = meta.data || [];\n\t\t\tvar ilen = elements.length;\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < ilen; ++i) {\n\t\t\t\telements[i].transition(easingValue);\n\t\t\t}\n\n\t\t\tif (meta.dataset) {\n\t\t\t\tmeta.dataset.transition(easingValue);\n\t\t\t}\n\t\t},\n\n\t\tdraw: function() {\n\t\t\tvar meta = this.getMeta();\n\t\t\tvar elements = meta.data || [];\n\t\t\tvar ilen = elements.length;\n\t\t\tvar i = 0;\n\n\t\t\tif (meta.dataset) {\n\t\t\t\tmeta.dataset.draw();\n\t\t\t}\n\n\t\t\tfor (; i < ilen; ++i) {\n\t\t\t\telements[i].draw();\n\t\t\t}\n\t\t},\n\n\t\tremoveHoverStyle: function(element, elementOpts) {\n\t\t\tvar dataset = this.chart.data.datasets[element._datasetIndex];\n\t\t\tvar index = element._index;\n\t\t\tvar custom = element.custom || {};\n\t\t\tvar valueOrDefault = helpers.valueAtIndexOrDefault;\n\t\t\tvar model = element._model;\n\n\t\t\tmodel.backgroundColor = custom.backgroundColor ? custom.backgroundColor : valueOrDefault(dataset.backgroundColor, index, elementOpts.backgroundColor);\n\t\t\tmodel.borderColor = custom.borderColor ? custom.borderColor : valueOrDefault(dataset.borderColor, index, elementOpts.borderColor);\n\t\t\tmodel.borderWidth = custom.borderWidth ? custom.borderWidth : valueOrDefault(dataset.borderWidth, index, elementOpts.borderWidth);\n\t\t},\n\n\t\tsetHoverStyle: function(element) {\n\t\t\tvar dataset = this.chart.data.datasets[element._datasetIndex];\n\t\t\tvar index = element._index;\n\t\t\tvar custom = element.custom || {};\n\t\t\tvar valueOrDefault = helpers.valueAtIndexOrDefault;\n\t\t\tvar getHoverColor = helpers.getHoverColor;\n\t\t\tvar model = element._model;\n\n\t\t\tmodel.backgroundColor = custom.hoverBackgroundColor ? custom.hoverBackgroundColor : valueOrDefault(dataset.hoverBackgroundColor, index, getHoverColor(model.backgroundColor));\n\t\t\tmodel.borderColor = custom.hoverBorderColor ? custom.hoverBorderColor : valueOrDefault(dataset.hoverBorderColor, index, getHoverColor(model.borderColor));\n\t\t\tmodel.borderWidth = custom.hoverBorderWidth ? custom.hoverBorderWidth : valueOrDefault(dataset.hoverBorderWidth, index, model.borderWidth);\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tresyncElements: function() {\n\t\t\tvar me = this;\n\t\t\tvar meta = me.getMeta();\n\t\t\tvar data = me.getDataset().data;\n\t\t\tvar numMeta = meta.data.length;\n\t\t\tvar numData = data.length;\n\n\t\t\tif (numData < numMeta) {\n\t\t\t\tmeta.data.splice(numData, numMeta - numData);\n\t\t\t} else if (numData > numMeta) {\n\t\t\t\tme.insertElements(numMeta, numData - numMeta);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tinsertElements: function(start, count) {\n\t\t\tfor (var i = 0; i < count; ++i) {\n\t\t\t\tthis.addElementAndReset(start + i);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tonDataPush: function() {\n\t\t\tthis.insertElements(this.getDataset().data.length - 1, arguments.length);\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tonDataPop: function() {\n\t\t\tthis.getMeta().data.pop();\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tonDataShift: function() {\n\t\t\tthis.getMeta().data.shift();\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tonDataSplice: function(start, count) {\n\t\t\tthis.getMeta().data.splice(start, count);\n\t\t\tthis.insertElements(start, arguments.length - 2);\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tonDataUnshift: function() {\n\t\t\tthis.insertElements(0, arguments.length);\n\t\t}\n\t});\n\n\tChart.DatasetController.extend = helpers.inherits;\n};\n","'use strict';\n\nvar defaults = require('./core.defaults');\nvar helpers = require('../helpers/index');\nvar layouts = require('./core.layouts');\n\nmodule.exports = function(Chart) {\n\n\tChart.scaleService = {\n\t\t// Scale registration object. Extensions can register new scale types (such as log or DB scales) and then\n\t\t// use the new chart options to grab the correct scale\n\t\tconstructors: {},\n\t\t// Use a registration function so that we can move to an ES6 map when we no longer need to support\n\t\t// old browsers\n\n\t\t// Scale config defaults\n\t\tdefaults: {},\n\t\tregisterScaleType: function(type, scaleConstructor, scaleDefaults) {\n\t\t\tthis.constructors[type] = scaleConstructor;\n\t\t\tthis.defaults[type] = helpers.clone(scaleDefaults);\n\t\t},\n\t\tgetScaleConstructor: function(type) {\n\t\t\treturn this.constructors.hasOwnProperty(type) ? this.constructors[type] : undefined;\n\t\t},\n\t\tgetScaleDefaults: function(type) {\n\t\t\t// Return the scale defaults merged with the global settings so that we always use the latest ones\n\t\t\treturn this.defaults.hasOwnProperty(type) ? helpers.merge({}, [defaults.scale, this.defaults[type]]) : {};\n\t\t},\n\t\tupdateScaleDefaults: function(type, additions) {\n\t\t\tvar me = this;\n\t\t\tif (me.defaults.hasOwnProperty(type)) {\n\t\t\t\tme.defaults[type] = helpers.extend(me.defaults[type], additions);\n\t\t\t}\n\t\t},\n\t\taddScalesToLayout: function(chart) {\n\t\t\t// Adds each scale to the chart.boxes array to be sized accordingly\n\t\t\thelpers.each(chart.scales, function(scale) {\n\t\t\t\t// Set ILayoutItem parameters for backwards compatibility\n\t\t\t\tscale.fullWidth = scale.options.fullWidth;\n\t\t\t\tscale.position = scale.options.position;\n\t\t\t\tscale.weight = scale.options.weight;\n\t\t\t\tlayouts.addBox(chart, scale);\n\t\t\t});\n\t\t}\n\t};\n};\n","'use strict';\n\nvar defaults = require('./core.defaults');\nvar Element = require('./core.element');\nvar helpers = require('../helpers/index');\nvar Ticks = require('./core.ticks');\n\ndefaults._set('scale', {\n\tdisplay: true,\n\tposition: 'left',\n\toffset: false,\n\n\t// grid line settings\n\tgridLines: {\n\t\tdisplay: true,\n\t\tcolor: 'rgba(0, 0, 0, 0.1)',\n\t\tlineWidth: 1,\n\t\tdrawBorder: true,\n\t\tdrawOnChartArea: true,\n\t\tdrawTicks: true,\n\t\ttickMarkLength: 10,\n\t\tzeroLineWidth: 1,\n\t\tzeroLineColor: 'rgba(0,0,0,0.25)',\n\t\tzeroLineBorderDash: [],\n\t\tzeroLineBorderDashOffset: 0.0,\n\t\toffsetGridLines: false,\n\t\tborderDash: [],\n\t\tborderDashOffset: 0.0\n\t},\n\n\t// scale label\n\tscaleLabel: {\n\t\t// display property\n\t\tdisplay: false,\n\n\t\t// actual label\n\t\tlabelString: '',\n\n\t\t// line height\n\t\tlineHeight: 1.2,\n\n\t\t// top/bottom padding\n\t\tpadding: {\n\t\t\ttop: 4,\n\t\t\tbottom: 4\n\t\t}\n\t},\n\n\t// label settings\n\tticks: {\n\t\tbeginAtZero: false,\n\t\tminRotation: 0,\n\t\tmaxRotation: 50,\n\t\tmirror: false,\n\t\tpadding: 0,\n\t\treverse: false,\n\t\tdisplay: true,\n\t\tautoSkip: true,\n\t\tautoSkipPadding: 0,\n\t\tlabelOffset: 0,\n\t\t// We pass through arrays to be rendered as multiline labels, we convert Others to strings here.\n\t\tcallback: Ticks.formatters.values,\n\t\tminor: {},\n\t\tmajor: {}\n\t}\n});\n\nfunction labelsFromTicks(ticks) {\n\tvar labels = [];\n\tvar i, ilen;\n\n\tfor (i = 0, ilen = ticks.length; i < ilen; ++i) {\n\t\tlabels.push(ticks[i].label);\n\t}\n\n\treturn labels;\n}\n\nfunction getLineValue(scale, index, offsetGridLines) {\n\tvar lineValue = scale.getPixelForTick(index);\n\n\tif (offsetGridLines) {\n\t\tif (index === 0) {\n\t\t\tlineValue -= (scale.getPixelForTick(1) - lineValue) / 2;\n\t\t} else {\n\t\t\tlineValue -= (lineValue - scale.getPixelForTick(index - 1)) / 2;\n\t\t}\n\t}\n\treturn lineValue;\n}\n\nmodule.exports = function(Chart) {\n\n\tfunction computeTextSize(context, tick, font) {\n\t\treturn helpers.isArray(tick) ?\n\t\t\thelpers.longestText(context, font, tick) :\n\t\t\tcontext.measureText(tick).width;\n\t}\n\n\tfunction parseFontOptions(options) {\n\t\tvar valueOrDefault = helpers.valueOrDefault;\n\t\tvar globalDefaults = defaults.global;\n\t\tvar size = valueOrDefault(options.fontSize, globalDefaults.defaultFontSize);\n\t\tvar style = valueOrDefault(options.fontStyle, globalDefaults.defaultFontStyle);\n\t\tvar family = valueOrDefault(options.fontFamily, globalDefaults.defaultFontFamily);\n\n\t\treturn {\n\t\t\tsize: size,\n\t\t\tstyle: style,\n\t\t\tfamily: family,\n\t\t\tfont: helpers.fontString(size, style, family)\n\t\t};\n\t}\n\n\tfunction parseLineHeight(options) {\n\t\treturn helpers.options.toLineHeight(\n\t\t\thelpers.valueOrDefault(options.lineHeight, 1.2),\n\t\t\thelpers.valueOrDefault(options.fontSize, defaults.global.defaultFontSize));\n\t}\n\n\tChart.Scale = Element.extend({\n\t\t/**\n\t\t * Get the padding needed for the scale\n\t\t * @method getPadding\n\t\t * @private\n\t\t * @returns {Padding} the necessary padding\n\t\t */\n\t\tgetPadding: function() {\n\t\t\tvar me = this;\n\t\t\treturn {\n\t\t\t\tleft: me.paddingLeft || 0,\n\t\t\t\ttop: me.paddingTop || 0,\n\t\t\t\tright: me.paddingRight || 0,\n\t\t\t\tbottom: me.paddingBottom || 0\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * Returns the scale tick objects ({label, major})\n\t\t * @since 2.7\n\t\t */\n\t\tgetTicks: function() {\n\t\t\treturn this._ticks;\n\t\t},\n\n\t\t// These methods are ordered by lifecyle. Utilities then follow.\n\t\t// Any function defined here is inherited by all scale types.\n\t\t// Any function can be extended by the scale type\n\n\t\tmergeTicksOptions: function() {\n\t\t\tvar ticks = this.options.ticks;\n\t\t\tif (ticks.minor === false) {\n\t\t\t\tticks.minor = {\n\t\t\t\t\tdisplay: false\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (ticks.major === false) {\n\t\t\t\tticks.major = {\n\t\t\t\t\tdisplay: false\n\t\t\t\t};\n\t\t\t}\n\t\t\tfor (var key in ticks) {\n\t\t\t\tif (key !== 'major' && key !== 'minor') {\n\t\t\t\t\tif (typeof ticks.minor[key] === 'undefined') {\n\t\t\t\t\t\tticks.minor[key] = ticks[key];\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof ticks.major[key] === 'undefined') {\n\t\t\t\t\t\tticks.major[key] = ticks[key];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tbeforeUpdate: function() {\n\t\t\thelpers.callback(this.options.beforeUpdate, [this]);\n\t\t},\n\t\tupdate: function(maxWidth, maxHeight, margins) {\n\t\t\tvar me = this;\n\t\t\tvar i, ilen, labels, label, ticks, tick;\n\n\t\t\t// Update Lifecycle - Probably don't want to ever extend or overwrite this function ;)\n\t\t\tme.beforeUpdate();\n\n\t\t\t// Absorb the master measurements\n\t\t\tme.maxWidth = maxWidth;\n\t\t\tme.maxHeight = maxHeight;\n\t\t\tme.margins = helpers.extend({\n\t\t\t\tleft: 0,\n\t\t\t\tright: 0,\n\t\t\t\ttop: 0,\n\t\t\t\tbottom: 0\n\t\t\t}, margins);\n\t\t\tme.longestTextCache = me.longestTextCache || {};\n\n\t\t\t// Dimensions\n\t\t\tme.beforeSetDimensions();\n\t\t\tme.setDimensions();\n\t\t\tme.afterSetDimensions();\n\n\t\t\t// Data min/max\n\t\t\tme.beforeDataLimits();\n\t\t\tme.determineDataLimits();\n\t\t\tme.afterDataLimits();\n\n\t\t\t// Ticks - `this.ticks` is now DEPRECATED!\n\t\t\t// Internal ticks are now stored as objects in the PRIVATE `this._ticks` member\n\t\t\t// and must not be accessed directly from outside this class. `this.ticks` being\n\t\t\t// around for long time and not marked as private, we can't change its structure\n\t\t\t// without unexpected breaking changes. If you need to access the scale ticks,\n\t\t\t// use scale.getTicks() instead.\n\n\t\t\tme.beforeBuildTicks();\n\n\t\t\t// New implementations should return an array of objects but for BACKWARD COMPAT,\n\t\t\t// we still support no return (`this.ticks` internally set by calling this method).\n\t\t\tticks = me.buildTicks() || [];\n\n\t\t\tme.afterBuildTicks();\n\n\t\t\tme.beforeTickToLabelConversion();\n\n\t\t\t// New implementations should return the formatted tick labels but for BACKWARD\n\t\t\t// COMPAT, we still support no return (`this.ticks` internally changed by calling\n\t\t\t// this method and supposed to contain only string values).\n\t\t\tlabels = me.convertTicksToLabels(ticks) || me.ticks;\n\n\t\t\tme.afterTickToLabelConversion();\n\n\t\t\tme.ticks = labels; // BACKWARD COMPATIBILITY\n\n\t\t\t// IMPORTANT: from this point, we consider that `this.ticks` will NEVER change!\n\n\t\t\t// BACKWARD COMPAT: synchronize `_ticks` with labels (so potentially `this.ticks`)\n\t\t\tfor (i = 0, ilen = labels.length; i < ilen; ++i) {\n\t\t\t\tlabel = labels[i];\n\t\t\t\ttick = ticks[i];\n\t\t\t\tif (!tick) {\n\t\t\t\t\tticks.push(tick = {\n\t\t\t\t\t\tlabel: label,\n\t\t\t\t\t\tmajor: false\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\ttick.label = label;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tme._ticks = ticks;\n\n\t\t\t// Tick Rotation\n\t\t\tme.beforeCalculateTickRotation();\n\t\t\tme.calculateTickRotation();\n\t\t\tme.afterCalculateTickRotation();\n\t\t\t// Fit\n\t\t\tme.beforeFit();\n\t\t\tme.fit();\n\t\t\tme.afterFit();\n\t\t\t//\n\t\t\tme.afterUpdate();\n\n\t\t\treturn me.minSize;\n\n\t\t},\n\t\tafterUpdate: function() {\n\t\t\thelpers.callback(this.options.afterUpdate, [this]);\n\t\t},\n\n\t\t//\n\n\t\tbeforeSetDimensions: function() {\n\t\t\thelpers.callback(this.options.beforeSetDimensions, [this]);\n\t\t},\n\t\tsetDimensions: function() {\n\t\t\tvar me = this;\n\t\t\t// Set the unconstrained dimension before label rotation\n\t\t\tif (me.isHorizontal()) {\n\t\t\t\t// Reset position before calculating rotation\n\t\t\t\tme.width = me.maxWidth;\n\t\t\t\tme.left = 0;\n\t\t\t\tme.right = me.width;\n\t\t\t} else {\n\t\t\t\tme.height = me.maxHeight;\n\n\t\t\t\t// Reset position before calculating rotation\n\t\t\t\tme.top = 0;\n\t\t\t\tme.bottom = me.height;\n\t\t\t}\n\n\t\t\t// Reset padding\n\t\t\tme.paddingLeft = 0;\n\t\t\tme.paddingTop = 0;\n\t\t\tme.paddingRight = 0;\n\t\t\tme.paddingBottom = 0;\n\t\t},\n\t\tafterSetDimensions: function() {\n\t\t\thelpers.callback(this.options.afterSetDimensions, [this]);\n\t\t},\n\n\t\t// Data limits\n\t\tbeforeDataLimits: function() {\n\t\t\thelpers.callback(this.options.beforeDataLimits, [this]);\n\t\t},\n\t\tdetermineDataLimits: helpers.noop,\n\t\tafterDataLimits: function() {\n\t\t\thelpers.callback(this.options.afterDataLimits, [this]);\n\t\t},\n\n\t\t//\n\t\tbeforeBuildTicks: function() {\n\t\t\thelpers.callback(this.options.beforeBuildTicks, [this]);\n\t\t},\n\t\tbuildTicks: helpers.noop,\n\t\tafterBuildTicks: function() {\n\t\t\thelpers.callback(this.options.afterBuildTicks, [this]);\n\t\t},\n\n\t\tbeforeTickToLabelConversion: function() {\n\t\t\thelpers.callback(this.options.beforeTickToLabelConversion, [this]);\n\t\t},\n\t\tconvertTicksToLabels: function() {\n\t\t\tvar me = this;\n\t\t\t// Convert ticks to strings\n\t\t\tvar tickOpts = me.options.ticks;\n\t\t\tme.ticks = me.ticks.map(tickOpts.userCallback || tickOpts.callback, this);\n\t\t},\n\t\tafterTickToLabelConversion: function() {\n\t\t\thelpers.callback(this.options.afterTickToLabelConversion, [this]);\n\t\t},\n\n\t\t//\n\n\t\tbeforeCalculateTickRotation: function() {\n\t\t\thelpers.callback(this.options.beforeCalculateTickRotation, [this]);\n\t\t},\n\t\tcalculateTickRotation: function() {\n\t\t\tvar me = this;\n\t\t\tvar context = me.ctx;\n\t\t\tvar tickOpts = me.options.ticks;\n\t\t\tvar labels = labelsFromTicks(me._ticks);\n\n\t\t\t// Get the width of each grid by calculating the difference\n\t\t\t// between x offsets between 0 and 1.\n\t\t\tvar tickFont = parseFontOptions(tickOpts);\n\t\t\tcontext.font = tickFont.font;\n\n\t\t\tvar labelRotation = tickOpts.minRotation || 0;\n\n\t\t\tif (labels.length && me.options.display && me.isHorizontal()) {\n\t\t\t\tvar originalLabelWidth = helpers.longestText(context, tickFont.font, labels, me.longestTextCache);\n\t\t\t\tvar labelWidth = originalLabelWidth;\n\t\t\t\tvar cosRotation, sinRotation;\n\n\t\t\t\t// Allow 3 pixels x2 padding either side for label readability\n\t\t\t\tvar tickWidth = me.getPixelForTick(1) - me.getPixelForTick(0) - 6;\n\n\t\t\t\t// Max label rotation can be set or default to 90 - also act as a loop counter\n\t\t\t\twhile (labelWidth > tickWidth && labelRotation < tickOpts.maxRotation) {\n\t\t\t\t\tvar angleRadians = helpers.toRadians(labelRotation);\n\t\t\t\t\tcosRotation = Math.cos(angleRadians);\n\t\t\t\t\tsinRotation = Math.sin(angleRadians);\n\n\t\t\t\t\tif (sinRotation * originalLabelWidth > me.maxHeight) {\n\t\t\t\t\t\t// go back one step\n\t\t\t\t\t\tlabelRotation--;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tlabelRotation++;\n\t\t\t\t\tlabelWidth = cosRotation * originalLabelWidth;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tme.labelRotation = labelRotation;\n\t\t},\n\t\tafterCalculateTickRotation: function() {\n\t\t\thelpers.callback(this.options.afterCalculateTickRotation, [this]);\n\t\t},\n\n\t\t//\n\n\t\tbeforeFit: function() {\n\t\t\thelpers.callback(this.options.beforeFit, [this]);\n\t\t},\n\t\tfit: function() {\n\t\t\tvar me = this;\n\t\t\t// Reset\n\t\t\tvar minSize = me.minSize = {\n\t\t\t\twidth: 0,\n\t\t\t\theight: 0\n\t\t\t};\n\n\t\t\tvar labels = labelsFromTicks(me._ticks);\n\n\t\t\tvar opts = me.options;\n\t\t\tvar tickOpts = opts.ticks;\n\t\t\tvar scaleLabelOpts = opts.scaleLabel;\n\t\t\tvar gridLineOpts = opts.gridLines;\n\t\t\tvar display = opts.display;\n\t\t\tvar isHorizontal = me.isHorizontal();\n\n\t\t\tvar tickFont = parseFontOptions(tickOpts);\n\t\t\tvar tickMarkLength = opts.gridLines.tickMarkLength;\n\n\t\t\t// Width\n\t\t\tif (isHorizontal) {\n\t\t\t\t// subtract the margins to line up with the chartArea if we are a full width scale\n\t\t\t\tminSize.width = me.isFullWidth() ? me.maxWidth - me.margins.left - me.margins.right : me.maxWidth;\n\t\t\t} else {\n\t\t\t\tminSize.width = display && gridLineOpts.drawTicks ? tickMarkLength : 0;\n\t\t\t}\n\n\t\t\t// height\n\t\t\tif (isHorizontal) {\n\t\t\t\tminSize.height = display && gridLineOpts.drawTicks ? tickMarkLength : 0;\n\t\t\t} else {\n\t\t\t\tminSize.height = me.maxHeight; // fill all the height\n\t\t\t}\n\n\t\t\t// Are we showing a title for the scale?\n\t\t\tif (scaleLabelOpts.display && display) {\n\t\t\t\tvar scaleLabelLineHeight = parseLineHeight(scaleLabelOpts);\n\t\t\t\tvar scaleLabelPadding = helpers.options.toPadding(scaleLabelOpts.padding);\n\t\t\t\tvar deltaHeight = scaleLabelLineHeight + scaleLabelPadding.height;\n\n\t\t\t\tif (isHorizontal) {\n\t\t\t\t\tminSize.height += deltaHeight;\n\t\t\t\t} else {\n\t\t\t\t\tminSize.width += deltaHeight;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Don't bother fitting the ticks if we are not showing them\n\t\t\tif (tickOpts.display && display) {\n\t\t\t\tvar largestTextWidth = helpers.longestText(me.ctx, tickFont.font, labels, me.longestTextCache);\n\t\t\t\tvar tallestLabelHeightInLines = helpers.numberOfLabelLines(labels);\n\t\t\t\tvar lineSpace = tickFont.size * 0.5;\n\t\t\t\tvar tickPadding = me.options.ticks.padding;\n\n\t\t\t\tif (isHorizontal) {\n\t\t\t\t\t// A horizontal axis is more constrained by the height.\n\t\t\t\t\tme.longestLabelWidth = largestTextWidth;\n\n\t\t\t\t\tvar angleRadians = helpers.toRadians(me.labelRotation);\n\t\t\t\t\tvar cosRotation = Math.cos(angleRadians);\n\t\t\t\t\tvar sinRotation = Math.sin(angleRadians);\n\n\t\t\t\t\t// TODO - improve this calculation\n\t\t\t\t\tvar labelHeight = (sinRotation * largestTextWidth)\n\t\t\t\t\t\t+ (tickFont.size * tallestLabelHeightInLines)\n\t\t\t\t\t\t+ (lineSpace * (tallestLabelHeightInLines - 1))\n\t\t\t\t\t\t+ lineSpace; // padding\n\n\t\t\t\t\tminSize.height = Math.min(me.maxHeight, minSize.height + labelHeight + tickPadding);\n\n\t\t\t\t\tme.ctx.font = tickFont.font;\n\t\t\t\t\tvar firstLabelWidth = computeTextSize(me.ctx, labels[0], tickFont.font);\n\t\t\t\t\tvar lastLabelWidth = computeTextSize(me.ctx, labels[labels.length - 1], tickFont.font);\n\n\t\t\t\t\t// Ensure that our ticks are always inside the canvas. When rotated, ticks are right aligned\n\t\t\t\t\t// which means that the right padding is dominated by the font height\n\t\t\t\t\tif (me.labelRotation !== 0) {\n\t\t\t\t\t\tme.paddingLeft = opts.position === 'bottom' ? (cosRotation * firstLabelWidth) + 3 : (cosRotation * lineSpace) + 3; // add 3 px to move away from canvas edges\n\t\t\t\t\t\tme.paddingRight = opts.position === 'bottom' ? (cosRotation * lineSpace) + 3 : (cosRotation * lastLabelWidth) + 3;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tme.paddingLeft = firstLabelWidth / 2 + 3; // add 3 px to move away from canvas edges\n\t\t\t\t\t\tme.paddingRight = lastLabelWidth / 2 + 3;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// A vertical axis is more constrained by the width. Labels are the\n\t\t\t\t\t// dominant factor here, so get that length first and account for padding\n\t\t\t\t\tif (tickOpts.mirror) {\n\t\t\t\t\t\tlargestTextWidth = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// use lineSpace for consistency with horizontal axis\n\t\t\t\t\t\t// tickPadding is not implemented for horizontal\n\t\t\t\t\t\tlargestTextWidth += tickPadding + lineSpace;\n\t\t\t\t\t}\n\n\t\t\t\t\tminSize.width = Math.min(me.maxWidth, minSize.width + largestTextWidth);\n\n\t\t\t\t\tme.paddingTop = tickFont.size / 2;\n\t\t\t\t\tme.paddingBottom = tickFont.size / 2;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tme.handleMargins();\n\n\t\t\tme.width = minSize.width;\n\t\t\tme.height = minSize.height;\n\t\t},\n\n\t\t/**\n\t\t * Handle margins and padding interactions\n\t\t * @private\n\t\t */\n\t\thandleMargins: function() {\n\t\t\tvar me = this;\n\t\t\tif (me.margins) {\n\t\t\t\tme.paddingLeft = Math.max(me.paddingLeft - me.margins.left, 0);\n\t\t\t\tme.paddingTop = Math.max(me.paddingTop - me.margins.top, 0);\n\t\t\t\tme.paddingRight = Math.max(me.paddingRight - me.margins.right, 0);\n\t\t\t\tme.paddingBottom = Math.max(me.paddingBottom - me.margins.bottom, 0);\n\t\t\t}\n\t\t},\n\n\t\tafterFit: function() {\n\t\t\thelpers.callback(this.options.afterFit, [this]);\n\t\t},\n\n\t\t// Shared Methods\n\t\tisHorizontal: function() {\n\t\t\treturn this.options.position === 'top' || this.options.position === 'bottom';\n\t\t},\n\t\tisFullWidth: function() {\n\t\t\treturn (this.options.fullWidth);\n\t\t},\n\n\t\t// Get the correct value. NaN bad inputs, If the value type is object get the x or y based on whether we are horizontal or not\n\t\tgetRightValue: function(rawValue) {\n\t\t\t// Null and undefined values first\n\t\t\tif (helpers.isNullOrUndef(rawValue)) {\n\t\t\t\treturn NaN;\n\t\t\t}\n\t\t\t// isNaN(object) returns true, so make sure NaN is checking for a number; Discard Infinite values\n\t\t\tif (typeof rawValue === 'number' && !isFinite(rawValue)) {\n\t\t\t\treturn NaN;\n\t\t\t}\n\t\t\t// If it is in fact an object, dive in one more level\n\t\t\tif (rawValue) {\n\t\t\t\tif (this.isHorizontal()) {\n\t\t\t\t\tif (rawValue.x !== undefined) {\n\t\t\t\t\t\treturn this.getRightValue(rawValue.x);\n\t\t\t\t\t}\n\t\t\t\t} else if (rawValue.y !== undefined) {\n\t\t\t\t\treturn this.getRightValue(rawValue.y);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Value is good, return it\n\t\t\treturn rawValue;\n\t\t},\n\n\t\t/**\n\t\t * Used to get the value to display in the tooltip for the data at the given index\n\t\t * @param index\n\t\t * @param datasetIndex\n\t\t */\n\t\tgetLabelForIndex: helpers.noop,\n\n\t\t/**\n\t\t * Returns the location of the given data point. Value can either be an index or a numerical value\n\t\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t\t * @param value\n\t\t * @param index\n\t\t * @param datasetIndex\n\t\t */\n\t\tgetPixelForValue: helpers.noop,\n\n\t\t/**\n\t\t * Used to get the data value from a given pixel. This is the inverse of getPixelForValue\n\t\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t\t * @param pixel\n\t\t */\n\t\tgetValueForPixel: helpers.noop,\n\n\t\t/**\n\t\t * Returns the location of the tick at the given index\n\t\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t\t */\n\t\tgetPixelForTick: function(index) {\n\t\t\tvar me = this;\n\t\t\tvar offset = me.options.offset;\n\t\t\tif (me.isHorizontal()) {\n\t\t\t\tvar innerWidth = me.width - (me.paddingLeft + me.paddingRight);\n\t\t\t\tvar tickWidth = innerWidth / Math.max((me._ticks.length - (offset ? 0 : 1)), 1);\n\t\t\t\tvar pixel = (tickWidth * index) + me.paddingLeft;\n\n\t\t\t\tif (offset) {\n\t\t\t\t\tpixel += tickWidth / 2;\n\t\t\t\t}\n\n\t\t\t\tvar finalVal = me.left + Math.round(pixel);\n\t\t\t\tfinalVal += me.isFullWidth() ? me.margins.left : 0;\n\t\t\t\treturn finalVal;\n\t\t\t}\n\t\t\tvar innerHeight = me.height - (me.paddingTop + me.paddingBottom);\n\t\t\treturn me.top + (index * (innerHeight / (me._ticks.length - 1)));\n\t\t},\n\n\t\t/**\n\t\t * Utility for getting the pixel location of a percentage of scale\n\t\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t\t */\n\t\tgetPixelForDecimal: function(decimal) {\n\t\t\tvar me = this;\n\t\t\tif (me.isHorizontal()) {\n\t\t\t\tvar innerWidth = me.width - (me.paddingLeft + me.paddingRight);\n\t\t\t\tvar valueOffset = (innerWidth * decimal) + me.paddingLeft;\n\n\t\t\t\tvar finalVal = me.left + Math.round(valueOffset);\n\t\t\t\tfinalVal += me.isFullWidth() ? me.margins.left : 0;\n\t\t\t\treturn finalVal;\n\t\t\t}\n\t\t\treturn me.top + (decimal * me.height);\n\t\t},\n\n\t\t/**\n\t\t * Returns the pixel for the minimum chart value\n\t\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t\t */\n\t\tgetBasePixel: function() {\n\t\t\treturn this.getPixelForValue(this.getBaseValue());\n\t\t},\n\n\t\tgetBaseValue: function() {\n\t\t\tvar me = this;\n\t\t\tvar min = me.min;\n\t\t\tvar max = me.max;\n\n\t\t\treturn me.beginAtZero ? 0 :\n\t\t\t\tmin < 0 && max < 0 ? max :\n\t\t\t\tmin > 0 && max > 0 ? min :\n\t\t\t\t0;\n\t\t},\n\n\t\t/**\n\t\t * Returns a subset of ticks to be plotted to avoid overlapping labels.\n\t\t * @private\n\t\t */\n\t\t_autoSkip: function(ticks) {\n\t\t\tvar skipRatio;\n\t\t\tvar me = this;\n\t\t\tvar isHorizontal = me.isHorizontal();\n\t\t\tvar optionTicks = me.options.ticks.minor;\n\t\t\tvar tickCount = ticks.length;\n\t\t\tvar labelRotationRadians = helpers.toRadians(me.labelRotation);\n\t\t\tvar cosRotation = Math.cos(labelRotationRadians);\n\t\t\tvar longestRotatedLabel = me.longestLabelWidth * cosRotation;\n\t\t\tvar result = [];\n\t\t\tvar i, tick, shouldSkip;\n\n\t\t\t// figure out the maximum number of gridlines to show\n\t\t\tvar maxTicks;\n\t\t\tif (optionTicks.maxTicksLimit) {\n\t\t\t\tmaxTicks = optionTicks.maxTicksLimit;\n\t\t\t}\n\n\t\t\tif (isHorizontal) {\n\t\t\t\tskipRatio = false;\n\n\t\t\t\tif ((longestRotatedLabel + optionTicks.autoSkipPadding) * tickCount > (me.width - (me.paddingLeft + me.paddingRight))) {\n\t\t\t\t\tskipRatio = 1 + Math.floor(((longestRotatedLabel + optionTicks.autoSkipPadding) * tickCount) / (me.width - (me.paddingLeft + me.paddingRight)));\n\t\t\t\t}\n\n\t\t\t\t// if they defined a max number of optionTicks,\n\t\t\t\t// increase skipRatio until that number is met\n\t\t\t\tif (maxTicks && tickCount > maxTicks) {\n\t\t\t\t\tskipRatio = Math.max(skipRatio, Math.floor(tickCount / maxTicks));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor (i = 0; i < tickCount; i++) {\n\t\t\t\ttick = ticks[i];\n\n\t\t\t\t// Since we always show the last tick,we need may need to hide the last shown one before\n\t\t\t\tshouldSkip = (skipRatio > 1 && i % skipRatio > 0) || (i % skipRatio === 0 && i + skipRatio >= tickCount);\n\t\t\t\tif (shouldSkip && i !== tickCount - 1) {\n\t\t\t\t\t// leave tick in place but make sure it's not displayed (#4635)\n\t\t\t\t\tdelete tick.label;\n\t\t\t\t}\n\t\t\t\tresult.push(tick);\n\t\t\t}\n\t\t\treturn result;\n\t\t},\n\n\t\t// Actually draw the scale on the canvas\n\t\t// @param {rectangle} chartArea : the area of the chart to draw full grid lines on\n\t\tdraw: function(chartArea) {\n\t\t\tvar me = this;\n\t\t\tvar options = me.options;\n\t\t\tif (!options.display) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar context = me.ctx;\n\t\t\tvar globalDefaults = defaults.global;\n\t\t\tvar optionTicks = options.ticks.minor;\n\t\t\tvar optionMajorTicks = options.ticks.major || optionTicks;\n\t\t\tvar gridLines = options.gridLines;\n\t\t\tvar scaleLabel = options.scaleLabel;\n\n\t\t\tvar isRotated = me.labelRotation !== 0;\n\t\t\tvar isHorizontal = me.isHorizontal();\n\n\t\t\tvar ticks = optionTicks.autoSkip ? me._autoSkip(me.getTicks()) : me.getTicks();\n\t\t\tvar tickFontColor = helpers.valueOrDefault(optionTicks.fontColor, globalDefaults.defaultFontColor);\n\t\t\tvar tickFont = parseFontOptions(optionTicks);\n\t\t\tvar majorTickFontColor = helpers.valueOrDefault(optionMajorTicks.fontColor, globalDefaults.defaultFontColor);\n\t\t\tvar majorTickFont = parseFontOptions(optionMajorTicks);\n\n\t\t\tvar tl = gridLines.drawTicks ? gridLines.tickMarkLength : 0;\n\n\t\t\tvar scaleLabelFontColor = helpers.valueOrDefault(scaleLabel.fontColor, globalDefaults.defaultFontColor);\n\t\t\tvar scaleLabelFont = parseFontOptions(scaleLabel);\n\t\t\tvar scaleLabelPadding = helpers.options.toPadding(scaleLabel.padding);\n\t\t\tvar labelRotationRadians = helpers.toRadians(me.labelRotation);\n\n\t\t\tvar itemsToDraw = [];\n\n\t\t\tvar axisWidth = me.options.gridLines.lineWidth;\n\t\t\tvar xTickStart = options.position === 'right' ? me.right : me.right - axisWidth - tl;\n\t\t\tvar xTickEnd = options.position === 'right' ? me.right + tl : me.right;\n\t\t\tvar yTickStart = options.position === 'bottom' ? me.top + axisWidth : me.bottom - tl - axisWidth;\n\t\t\tvar yTickEnd = options.position === 'bottom' ? me.top + axisWidth + tl : me.bottom + axisWidth;\n\n\t\t\thelpers.each(ticks, function(tick, index) {\n\t\t\t\t// autoskipper skipped this tick (#4635)\n\t\t\t\tif (helpers.isNullOrUndef(tick.label)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar label = tick.label;\n\t\t\t\tvar lineWidth, lineColor, borderDash, borderDashOffset;\n\t\t\t\tif (index === me.zeroLineIndex && options.offset === gridLines.offsetGridLines) {\n\t\t\t\t\t// Draw the first index specially\n\t\t\t\t\tlineWidth = gridLines.zeroLineWidth;\n\t\t\t\t\tlineColor = gridLines.zeroLineColor;\n\t\t\t\t\tborderDash = gridLines.zeroLineBorderDash;\n\t\t\t\t\tborderDashOffset = gridLines.zeroLineBorderDashOffset;\n\t\t\t\t} else {\n\t\t\t\t\tlineWidth = helpers.valueAtIndexOrDefault(gridLines.lineWidth, index);\n\t\t\t\t\tlineColor = helpers.valueAtIndexOrDefault(gridLines.color, index);\n\t\t\t\t\tborderDash = helpers.valueOrDefault(gridLines.borderDash, globalDefaults.borderDash);\n\t\t\t\t\tborderDashOffset = helpers.valueOrDefault(gridLines.borderDashOffset, globalDefaults.borderDashOffset);\n\t\t\t\t}\n\n\t\t\t\t// Common properties\n\t\t\t\tvar tx1, ty1, tx2, ty2, x1, y1, x2, y2, labelX, labelY;\n\t\t\t\tvar textAlign = 'middle';\n\t\t\t\tvar textBaseline = 'middle';\n\t\t\t\tvar tickPadding = optionTicks.padding;\n\n\t\t\t\tif (isHorizontal) {\n\t\t\t\t\tvar labelYOffset = tl + tickPadding;\n\n\t\t\t\t\tif (options.position === 'bottom') {\n\t\t\t\t\t\t// bottom\n\t\t\t\t\t\ttextBaseline = !isRotated ? 'top' : 'middle';\n\t\t\t\t\t\ttextAlign = !isRotated ? 'center' : 'right';\n\t\t\t\t\t\tlabelY = me.top + labelYOffset;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// top\n\t\t\t\t\t\ttextBaseline = !isRotated ? 'bottom' : 'middle';\n\t\t\t\t\t\ttextAlign = !isRotated ? 'center' : 'left';\n\t\t\t\t\t\tlabelY = me.bottom - labelYOffset;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar xLineValue = getLineValue(me, index, gridLines.offsetGridLines && ticks.length > 1);\n\t\t\t\t\tif (xLineValue < me.left) {\n\t\t\t\t\t\tlineColor = 'rgba(0,0,0,0)';\n\t\t\t\t\t}\n\t\t\t\t\txLineValue += helpers.aliasPixel(lineWidth);\n\n\t\t\t\t\tlabelX = me.getPixelForTick(index) + optionTicks.labelOffset; // x values for optionTicks (need to consider offsetLabel option)\n\n\t\t\t\t\ttx1 = tx2 = x1 = x2 = xLineValue;\n\t\t\t\t\tty1 = yTickStart;\n\t\t\t\t\tty2 = yTickEnd;\n\t\t\t\t\ty1 = chartArea.top;\n\t\t\t\t\ty2 = chartArea.bottom + axisWidth;\n\t\t\t\t} else {\n\t\t\t\t\tvar isLeft = options.position === 'left';\n\t\t\t\t\tvar labelXOffset;\n\n\t\t\t\t\tif (optionTicks.mirror) {\n\t\t\t\t\t\ttextAlign = isLeft ? 'left' : 'right';\n\t\t\t\t\t\tlabelXOffset = tickPadding;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttextAlign = isLeft ? 'right' : 'left';\n\t\t\t\t\t\tlabelXOffset = tl + tickPadding;\n\t\t\t\t\t}\n\n\t\t\t\t\tlabelX = isLeft ? me.right - labelXOffset : me.left + labelXOffset;\n\n\t\t\t\t\tvar yLineValue = getLineValue(me, index, gridLines.offsetGridLines && ticks.length > 1);\n\t\t\t\t\tif (yLineValue < me.top) {\n\t\t\t\t\t\tlineColor = 'rgba(0,0,0,0)';\n\t\t\t\t\t}\n\t\t\t\t\tyLineValue += helpers.aliasPixel(lineWidth);\n\n\t\t\t\t\tlabelY = me.getPixelForTick(index) + optionTicks.labelOffset;\n\n\t\t\t\t\ttx1 = xTickStart;\n\t\t\t\t\ttx2 = xTickEnd;\n\t\t\t\t\tx1 = chartArea.left;\n\t\t\t\t\tx2 = chartArea.right + axisWidth;\n\t\t\t\t\tty1 = ty2 = y1 = y2 = yLineValue;\n\t\t\t\t}\n\n\t\t\t\titemsToDraw.push({\n\t\t\t\t\ttx1: tx1,\n\t\t\t\t\tty1: ty1,\n\t\t\t\t\ttx2: tx2,\n\t\t\t\t\tty2: ty2,\n\t\t\t\t\tx1: x1,\n\t\t\t\t\ty1: y1,\n\t\t\t\t\tx2: x2,\n\t\t\t\t\ty2: y2,\n\t\t\t\t\tlabelX: labelX,\n\t\t\t\t\tlabelY: labelY,\n\t\t\t\t\tglWidth: lineWidth,\n\t\t\t\t\tglColor: lineColor,\n\t\t\t\t\tglBorderDash: borderDash,\n\t\t\t\t\tglBorderDashOffset: borderDashOffset,\n\t\t\t\t\trotation: -1 * labelRotationRadians,\n\t\t\t\t\tlabel: label,\n\t\t\t\t\tmajor: tick.major,\n\t\t\t\t\ttextBaseline: textBaseline,\n\t\t\t\t\ttextAlign: textAlign\n\t\t\t\t});\n\t\t\t});\n\n\t\t\t// Draw all of the tick labels, tick marks, and grid lines at the correct places\n\t\t\thelpers.each(itemsToDraw, function(itemToDraw) {\n\t\t\t\tif (gridLines.display) {\n\t\t\t\t\tcontext.save();\n\t\t\t\t\tcontext.lineWidth = itemToDraw.glWidth;\n\t\t\t\t\tcontext.strokeStyle = itemToDraw.glColor;\n\t\t\t\t\tif (context.setLineDash) {\n\t\t\t\t\t\tcontext.setLineDash(itemToDraw.glBorderDash);\n\t\t\t\t\t\tcontext.lineDashOffset = itemToDraw.glBorderDashOffset;\n\t\t\t\t\t}\n\n\t\t\t\t\tcontext.beginPath();\n\n\t\t\t\t\tif (gridLines.drawTicks) {\n\t\t\t\t\t\tcontext.moveTo(itemToDraw.tx1, itemToDraw.ty1);\n\t\t\t\t\t\tcontext.lineTo(itemToDraw.tx2, itemToDraw.ty2);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (gridLines.drawOnChartArea) {\n\t\t\t\t\t\tcontext.moveTo(itemToDraw.x1, itemToDraw.y1);\n\t\t\t\t\t\tcontext.lineTo(itemToDraw.x2, itemToDraw.y2);\n\t\t\t\t\t}\n\n\t\t\t\t\tcontext.stroke();\n\t\t\t\t\tcontext.restore();\n\t\t\t\t}\n\n\t\t\t\tif (optionTicks.display) {\n\t\t\t\t\t// Make sure we draw text in the correct color and font\n\t\t\t\t\tcontext.save();\n\t\t\t\t\tcontext.translate(itemToDraw.labelX, itemToDraw.labelY);\n\t\t\t\t\tcontext.rotate(itemToDraw.rotation);\n\t\t\t\t\tcontext.font = itemToDraw.major ? majorTickFont.font : tickFont.font;\n\t\t\t\t\tcontext.fillStyle = itemToDraw.major ? majorTickFontColor : tickFontColor;\n\t\t\t\t\tcontext.textBaseline = itemToDraw.textBaseline;\n\t\t\t\t\tcontext.textAlign = itemToDraw.textAlign;\n\n\t\t\t\t\tvar label = itemToDraw.label;\n\t\t\t\t\tif (helpers.isArray(label)) {\n\t\t\t\t\t\tvar lineCount = label.length;\n\t\t\t\t\t\tvar lineHeight = tickFont.size * 1.5;\n\t\t\t\t\t\tvar y = me.isHorizontal() ? 0 : -lineHeight * (lineCount - 1) / 2;\n\n\t\t\t\t\t\tfor (var i = 0; i < lineCount; ++i) {\n\t\t\t\t\t\t\t// We just make sure the multiline element is a string here..\n\t\t\t\t\t\t\tcontext.fillText('' + label[i], 0, y);\n\t\t\t\t\t\t\t// apply same lineSpacing as calculated @ L#320\n\t\t\t\t\t\t\ty += lineHeight;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontext.fillText(label, 0, 0);\n\t\t\t\t\t}\n\t\t\t\t\tcontext.restore();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (scaleLabel.display) {\n\t\t\t\t// Draw the scale label\n\t\t\t\tvar scaleLabelX;\n\t\t\t\tvar scaleLabelY;\n\t\t\t\tvar rotation = 0;\n\t\t\t\tvar halfLineHeight = parseLineHeight(scaleLabel) / 2;\n\n\t\t\t\tif (isHorizontal) {\n\t\t\t\t\tscaleLabelX = me.left + ((me.right - me.left) / 2); // midpoint of the width\n\t\t\t\t\tscaleLabelY = options.position === 'bottom'\n\t\t\t\t\t\t? me.bottom - halfLineHeight - scaleLabelPadding.bottom\n\t\t\t\t\t\t: me.top + halfLineHeight + scaleLabelPadding.top;\n\t\t\t\t} else {\n\t\t\t\t\tvar isLeft = options.position === 'left';\n\t\t\t\t\tscaleLabelX = isLeft\n\t\t\t\t\t\t? me.left + halfLineHeight + scaleLabelPadding.top\n\t\t\t\t\t\t: me.right - halfLineHeight - scaleLabelPadding.top;\n\t\t\t\t\tscaleLabelY = me.top + ((me.bottom - me.top) / 2);\n\t\t\t\t\trotation = isLeft ? -0.5 * Math.PI : 0.5 * Math.PI;\n\t\t\t\t}\n\n\t\t\t\tcontext.save();\n\t\t\t\tcontext.translate(scaleLabelX, scaleLabelY);\n\t\t\t\tcontext.rotate(rotation);\n\t\t\t\tcontext.textAlign = 'center';\n\t\t\t\tcontext.textBaseline = 'middle';\n\t\t\t\tcontext.fillStyle = scaleLabelFontColor; // render in correct colour\n\t\t\t\tcontext.font = scaleLabelFont.font;\n\t\t\t\tcontext.fillText(scaleLabel.labelString, 0, 0);\n\t\t\t\tcontext.restore();\n\t\t\t}\n\n\t\t\tif (gridLines.drawBorder) {\n\t\t\t\t// Draw the line at the edge of the axis\n\t\t\t\tcontext.lineWidth = helpers.valueAtIndexOrDefault(gridLines.lineWidth, 0);\n\t\t\t\tcontext.strokeStyle = helpers.valueAtIndexOrDefault(gridLines.color, 0);\n\t\t\t\tvar x1 = me.left;\n\t\t\t\tvar x2 = me.right + axisWidth;\n\t\t\t\tvar y1 = me.top;\n\t\t\t\tvar y2 = me.bottom + axisWidth;\n\n\t\t\t\tvar aliasPixel = helpers.aliasPixel(context.lineWidth);\n\t\t\t\tif (isHorizontal) {\n\t\t\t\t\ty1 = y2 = options.position === 'top' ? me.bottom : me.top;\n\t\t\t\t\ty1 += aliasPixel;\n\t\t\t\t\ty2 += aliasPixel;\n\t\t\t\t} else {\n\t\t\t\t\tx1 = x2 = options.position === 'left' ? me.right : me.left;\n\t\t\t\t\tx1 += aliasPixel;\n\t\t\t\t\tx2 += aliasPixel;\n\t\t\t\t}\n\n\t\t\t\tcontext.beginPath();\n\t\t\t\tcontext.moveTo(x1, y1);\n\t\t\t\tcontext.lineTo(x2, y2);\n\t\t\t\tcontext.stroke();\n\t\t\t}\n\t\t}\n\t});\n};\n","'use strict';\n\nvar defaults = require('./core.defaults');\nvar Element = require('./core.element');\nvar helpers = require('../helpers/index');\n\ndefaults._set('global', {\n\ttooltips: {\n\t\tenabled: true,\n\t\tcustom: null,\n\t\tmode: 'nearest',\n\t\tposition: 'average',\n\t\tintersect: true,\n\t\tbackgroundColor: 'rgba(0,0,0,0.8)',\n\t\ttitleFontStyle: 'bold',\n\t\ttitleSpacing: 2,\n\t\ttitleMarginBottom: 6,\n\t\ttitleFontColor: '#fff',\n\t\ttitleAlign: 'left',\n\t\tbodySpacing: 2,\n\t\tbodyFontColor: '#fff',\n\t\tbodyAlign: 'left',\n\t\tfooterFontStyle: 'bold',\n\t\tfooterSpacing: 2,\n\t\tfooterMarginTop: 6,\n\t\tfooterFontColor: '#fff',\n\t\tfooterAlign: 'left',\n\t\tyPadding: 6,\n\t\txPadding: 6,\n\t\tcaretPadding: 2,\n\t\tcaretSize: 5,\n\t\tcornerRadius: 6,\n\t\tmultiKeyBackground: '#fff',\n\t\tdisplayColors: true,\n\t\tborderColor: 'rgba(0,0,0,0)',\n\t\tborderWidth: 0,\n\t\tcallbacks: {\n\t\t\t// Args are: (tooltipItems, data)\n\t\t\tbeforeTitle: helpers.noop,\n\t\t\ttitle: function(tooltipItems, data) {\n\t\t\t\t// Pick first xLabel for now\n\t\t\t\tvar title = '';\n\t\t\t\tvar labels = data.labels;\n\t\t\t\tvar labelCount = labels ? labels.length : 0;\n\n\t\t\t\tif (tooltipItems.length > 0) {\n\t\t\t\t\tvar item = tooltipItems[0];\n\n\t\t\t\t\tif (item.xLabel) {\n\t\t\t\t\t\ttitle = item.xLabel;\n\t\t\t\t\t} else if (labelCount > 0 && item.index < labelCount) {\n\t\t\t\t\t\ttitle = labels[item.index];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn title;\n\t\t\t},\n\t\t\tafterTitle: helpers.noop,\n\n\t\t\t// Args are: (tooltipItems, data)\n\t\t\tbeforeBody: helpers.noop,\n\n\t\t\t// Args are: (tooltipItem, data)\n\t\t\tbeforeLabel: helpers.noop,\n\t\t\tlabel: function(tooltipItem, data) {\n\t\t\t\tvar label = data.datasets[tooltipItem.datasetIndex].label || '';\n\n\t\t\t\tif (label) {\n\t\t\t\t\tlabel += ': ';\n\t\t\t\t}\n\t\t\t\tlabel += tooltipItem.yLabel;\n\t\t\t\treturn label;\n\t\t\t},\n\t\t\tlabelColor: function(tooltipItem, chart) {\n\t\t\t\tvar meta = chart.getDatasetMeta(tooltipItem.datasetIndex);\n\t\t\t\tvar activeElement = meta.data[tooltipItem.index];\n\t\t\t\tvar view = activeElement._view;\n\t\t\t\treturn {\n\t\t\t\t\tborderColor: view.borderColor,\n\t\t\t\t\tbackgroundColor: view.backgroundColor\n\t\t\t\t};\n\t\t\t},\n\t\t\tlabelTextColor: function() {\n\t\t\t\treturn this._options.bodyFontColor;\n\t\t\t},\n\t\t\tafterLabel: helpers.noop,\n\n\t\t\t// Args are: (tooltipItems, data)\n\t\t\tafterBody: helpers.noop,\n\n\t\t\t// Args are: (tooltipItems, data)\n\t\t\tbeforeFooter: helpers.noop,\n\t\t\tfooter: helpers.noop,\n\t\t\tafterFooter: helpers.noop\n\t\t}\n\t}\n});\n\nmodule.exports = function(Chart) {\n\n\t/**\n \t * Helper method to merge the opacity into a color\n \t */\n\tfunction mergeOpacity(colorString, opacity) {\n\t\tvar color = helpers.color(colorString);\n\t\treturn color.alpha(opacity * color.alpha()).rgbaString();\n\t}\n\n\t// Helper to push or concat based on if the 2nd parameter is an array or not\n\tfunction pushOrConcat(base, toPush) {\n\t\tif (toPush) {\n\t\t\tif (helpers.isArray(toPush)) {\n\t\t\t\t// base = base.concat(toPush);\n\t\t\t\tArray.prototype.push.apply(base, toPush);\n\t\t\t} else {\n\t\t\t\tbase.push(toPush);\n\t\t\t}\n\t\t}\n\n\t\treturn base;\n\t}\n\n\t// Private helper to create a tooltip item model\n\t// @param element : the chart element (point, arc, bar) to create the tooltip item for\n\t// @return : new tooltip item\n\tfunction createTooltipItem(element) {\n\t\tvar xScale = element._xScale;\n\t\tvar yScale = element._yScale || element._scale; // handle radar || polarArea charts\n\t\tvar index = element._index;\n\t\tvar datasetIndex = element._datasetIndex;\n\n\t\treturn {\n\t\t\txLabel: xScale ? xScale.getLabelForIndex(index, datasetIndex) : '',\n\t\t\tyLabel: yScale ? yScale.getLabelForIndex(index, datasetIndex) : '',\n\t\t\tindex: index,\n\t\t\tdatasetIndex: datasetIndex,\n\t\t\tx: element._model.x,\n\t\t\ty: element._model.y\n\t\t};\n\t}\n\n\t/**\n\t * Helper to get the reset model for the tooltip\n\t * @param tooltipOpts {Object} the tooltip options\n\t */\n\tfunction getBaseModel(tooltipOpts) {\n\t\tvar globalDefaults = defaults.global;\n\t\tvar valueOrDefault = helpers.valueOrDefault;\n\n\t\treturn {\n\t\t\t// Positioning\n\t\t\txPadding: tooltipOpts.xPadding,\n\t\t\tyPadding: tooltipOpts.yPadding,\n\t\t\txAlign: tooltipOpts.xAlign,\n\t\t\tyAlign: tooltipOpts.yAlign,\n\n\t\t\t// Body\n\t\t\tbodyFontColor: tooltipOpts.bodyFontColor,\n\t\t\t_bodyFontFamily: valueOrDefault(tooltipOpts.bodyFontFamily, globalDefaults.defaultFontFamily),\n\t\t\t_bodyFontStyle: valueOrDefault(tooltipOpts.bodyFontStyle, globalDefaults.defaultFontStyle),\n\t\t\t_bodyAlign: tooltipOpts.bodyAlign,\n\t\t\tbodyFontSize: valueOrDefault(tooltipOpts.bodyFontSize, globalDefaults.defaultFontSize),\n\t\t\tbodySpacing: tooltipOpts.bodySpacing,\n\n\t\t\t// Title\n\t\t\ttitleFontColor: tooltipOpts.titleFontColor,\n\t\t\t_titleFontFamily: valueOrDefault(tooltipOpts.titleFontFamily, globalDefaults.defaultFontFamily),\n\t\t\t_titleFontStyle: valueOrDefault(tooltipOpts.titleFontStyle, globalDefaults.defaultFontStyle),\n\t\t\ttitleFontSize: valueOrDefault(tooltipOpts.titleFontSize, globalDefaults.defaultFontSize),\n\t\t\t_titleAlign: tooltipOpts.titleAlign,\n\t\t\ttitleSpacing: tooltipOpts.titleSpacing,\n\t\t\ttitleMarginBottom: tooltipOpts.titleMarginBottom,\n\n\t\t\t// Footer\n\t\t\tfooterFontColor: tooltipOpts.footerFontColor,\n\t\t\t_footerFontFamily: valueOrDefault(tooltipOpts.footerFontFamily, globalDefaults.defaultFontFamily),\n\t\t\t_footerFontStyle: valueOrDefault(tooltipOpts.footerFontStyle, globalDefaults.defaultFontStyle),\n\t\t\tfooterFontSize: valueOrDefault(tooltipOpts.footerFontSize, globalDefaults.defaultFontSize),\n\t\t\t_footerAlign: tooltipOpts.footerAlign,\n\t\t\tfooterSpacing: tooltipOpts.footerSpacing,\n\t\t\tfooterMarginTop: tooltipOpts.footerMarginTop,\n\n\t\t\t// Appearance\n\t\t\tcaretSize: tooltipOpts.caretSize,\n\t\t\tcornerRadius: tooltipOpts.cornerRadius,\n\t\t\tbackgroundColor: tooltipOpts.backgroundColor,\n\t\t\topacity: 0,\n\t\t\tlegendColorBackground: tooltipOpts.multiKeyBackground,\n\t\t\tdisplayColors: tooltipOpts.displayColors,\n\t\t\tborderColor: tooltipOpts.borderColor,\n\t\t\tborderWidth: tooltipOpts.borderWidth\n\t\t};\n\t}\n\n\t/**\n\t * Get the size of the tooltip\n\t */\n\tfunction getTooltipSize(tooltip, model) {\n\t\tvar ctx = tooltip._chart.ctx;\n\n\t\tvar height = model.yPadding * 2; // Tooltip Padding\n\t\tvar width = 0;\n\n\t\t// Count of all lines in the body\n\t\tvar body = model.body;\n\t\tvar combinedBodyLength = body.reduce(function(count, bodyItem) {\n\t\t\treturn count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length;\n\t\t}, 0);\n\t\tcombinedBodyLength += model.beforeBody.length + model.afterBody.length;\n\n\t\tvar titleLineCount = model.title.length;\n\t\tvar footerLineCount = model.footer.length;\n\t\tvar titleFontSize = model.titleFontSize;\n\t\tvar bodyFontSize = model.bodyFontSize;\n\t\tvar footerFontSize = model.footerFontSize;\n\n\t\theight += titleLineCount * titleFontSize; // Title Lines\n\t\theight += titleLineCount ? (titleLineCount - 1) * model.titleSpacing : 0; // Title Line Spacing\n\t\theight += titleLineCount ? model.titleMarginBottom : 0; // Title's bottom Margin\n\t\theight += combinedBodyLength * bodyFontSize; // Body Lines\n\t\theight += combinedBodyLength ? (combinedBodyLength - 1) * model.bodySpacing : 0; // Body Line Spacing\n\t\theight += footerLineCount ? model.footerMarginTop : 0; // Footer Margin\n\t\theight += footerLineCount * (footerFontSize); // Footer Lines\n\t\theight += footerLineCount ? (footerLineCount - 1) * model.footerSpacing : 0; // Footer Line Spacing\n\n\t\t// Title width\n\t\tvar widthPadding = 0;\n\t\tvar maxLineWidth = function(line) {\n\t\t\twidth = Math.max(width, ctx.measureText(line).width + widthPadding);\n\t\t};\n\n\t\tctx.font = helpers.fontString(titleFontSize, model._titleFontStyle, model._titleFontFamily);\n\t\thelpers.each(model.title, maxLineWidth);\n\n\t\t// Body width\n\t\tctx.font = helpers.fontString(bodyFontSize, model._bodyFontStyle, model._bodyFontFamily);\n\t\thelpers.each(model.beforeBody.concat(model.afterBody), maxLineWidth);\n\n\t\t// Body lines may include some extra width due to the color box\n\t\twidthPadding = model.displayColors ? (bodyFontSize + 2) : 0;\n\t\thelpers.each(body, function(bodyItem) {\n\t\t\thelpers.each(bodyItem.before, maxLineWidth);\n\t\t\thelpers.each(bodyItem.lines, maxLineWidth);\n\t\t\thelpers.each(bodyItem.after, maxLineWidth);\n\t\t});\n\n\t\t// Reset back to 0\n\t\twidthPadding = 0;\n\n\t\t// Footer width\n\t\tctx.font = helpers.fontString(footerFontSize, model._footerFontStyle, model._footerFontFamily);\n\t\thelpers.each(model.footer, maxLineWidth);\n\n\t\t// Add padding\n\t\twidth += 2 * model.xPadding;\n\n\t\treturn {\n\t\t\twidth: width,\n\t\t\theight: height\n\t\t};\n\t}\n\n\t/**\n\t * Helper to get the alignment of a tooltip given the size\n\t */\n\tfunction determineAlignment(tooltip, size) {\n\t\tvar model = tooltip._model;\n\t\tvar chart = tooltip._chart;\n\t\tvar chartArea = tooltip._chart.chartArea;\n\t\tvar xAlign = 'center';\n\t\tvar yAlign = 'center';\n\n\t\tif (model.y < size.height) {\n\t\t\tyAlign = 'top';\n\t\t} else if (model.y > (chart.height - size.height)) {\n\t\t\tyAlign = 'bottom';\n\t\t}\n\n\t\tvar lf, rf; // functions to determine left, right alignment\n\t\tvar olf, orf; // functions to determine if left/right alignment causes tooltip to go outside chart\n\t\tvar yf; // function to get the y alignment if the tooltip goes outside of the left or right edges\n\t\tvar midX = (chartArea.left + chartArea.right) / 2;\n\t\tvar midY = (chartArea.top + chartArea.bottom) / 2;\n\n\t\tif (yAlign === 'center') {\n\t\t\tlf = function(x) {\n\t\t\t\treturn x <= midX;\n\t\t\t};\n\t\t\trf = function(x) {\n\t\t\t\treturn x > midX;\n\t\t\t};\n\t\t} else {\n\t\t\tlf = function(x) {\n\t\t\t\treturn x <= (size.width / 2);\n\t\t\t};\n\t\t\trf = function(x) {\n\t\t\t\treturn x >= (chart.width - (size.width / 2));\n\t\t\t};\n\t\t}\n\n\t\tolf = function(x) {\n\t\t\treturn x + size.width + model.caretSize + model.caretPadding > chart.width;\n\t\t};\n\t\torf = function(x) {\n\t\t\treturn x - size.width - model.caretSize - model.caretPadding < 0;\n\t\t};\n\t\tyf = function(y) {\n\t\t\treturn y <= midY ? 'top' : 'bottom';\n\t\t};\n\n\t\tif (lf(model.x)) {\n\t\t\txAlign = 'left';\n\n\t\t\t// Is tooltip too wide and goes over the right side of the chart.?\n\t\t\tif (olf(model.x)) {\n\t\t\t\txAlign = 'center';\n\t\t\t\tyAlign = yf(model.y);\n\t\t\t}\n\t\t} else if (rf(model.x)) {\n\t\t\txAlign = 'right';\n\n\t\t\t// Is tooltip too wide and goes outside left edge of canvas?\n\t\t\tif (orf(model.x)) {\n\t\t\t\txAlign = 'center';\n\t\t\t\tyAlign = yf(model.y);\n\t\t\t}\n\t\t}\n\n\t\tvar opts = tooltip._options;\n\t\treturn {\n\t\t\txAlign: opts.xAlign ? opts.xAlign : xAlign,\n\t\t\tyAlign: opts.yAlign ? opts.yAlign : yAlign\n\t\t};\n\t}\n\n\t/**\n\t * @Helper to get the location a tooltip needs to be placed at given the initial position (via the vm) and the size and alignment\n\t */\n\tfunction getBackgroundPoint(vm, size, alignment, chart) {\n\t\t// Background Position\n\t\tvar x = vm.x;\n\t\tvar y = vm.y;\n\n\t\tvar caretSize = vm.caretSize;\n\t\tvar caretPadding = vm.caretPadding;\n\t\tvar cornerRadius = vm.cornerRadius;\n\t\tvar xAlign = alignment.xAlign;\n\t\tvar yAlign = alignment.yAlign;\n\t\tvar paddingAndSize = caretSize + caretPadding;\n\t\tvar radiusAndPadding = cornerRadius + caretPadding;\n\n\t\tif (xAlign === 'right') {\n\t\t\tx -= size.width;\n\t\t} else if (xAlign === 'center') {\n\t\t\tx -= (size.width / 2);\n\t\t\tif (x + size.width > chart.width) {\n\t\t\t\tx = chart.width - size.width;\n\t\t\t}\n\t\t\tif (x < 0) {\n\t\t\t\tx = 0;\n\t\t\t}\n\t\t}\n\n\t\tif (yAlign === 'top') {\n\t\t\ty += paddingAndSize;\n\t\t} else if (yAlign === 'bottom') {\n\t\t\ty -= size.height + paddingAndSize;\n\t\t} else {\n\t\t\ty -= (size.height / 2);\n\t\t}\n\n\t\tif (yAlign === 'center') {\n\t\t\tif (xAlign === 'left') {\n\t\t\t\tx += paddingAndSize;\n\t\t\t} else if (xAlign === 'right') {\n\t\t\t\tx -= paddingAndSize;\n\t\t\t}\n\t\t} else if (xAlign === 'left') {\n\t\t\tx -= radiusAndPadding;\n\t\t} else if (xAlign === 'right') {\n\t\t\tx += radiusAndPadding;\n\t\t}\n\n\t\treturn {\n\t\t\tx: x,\n\t\t\ty: y\n\t\t};\n\t}\n\n\tChart.Tooltip = Element.extend({\n\t\tinitialize: function() {\n\t\t\tthis._model = getBaseModel(this._options);\n\t\t\tthis._lastActive = [];\n\t\t},\n\n\t\t// Get the title\n\t\t// Args are: (tooltipItem, data)\n\t\tgetTitle: function() {\n\t\t\tvar me = this;\n\t\t\tvar opts = me._options;\n\t\t\tvar callbacks = opts.callbacks;\n\n\t\t\tvar beforeTitle = callbacks.beforeTitle.apply(me, arguments);\n\t\t\tvar title = callbacks.title.apply(me, arguments);\n\t\t\tvar afterTitle = callbacks.afterTitle.apply(me, arguments);\n\n\t\t\tvar lines = [];\n\t\t\tlines = pushOrConcat(lines, beforeTitle);\n\t\t\tlines = pushOrConcat(lines, title);\n\t\t\tlines = pushOrConcat(lines, afterTitle);\n\n\t\t\treturn lines;\n\t\t},\n\n\t\t// Args are: (tooltipItem, data)\n\t\tgetBeforeBody: function() {\n\t\t\tvar lines = this._options.callbacks.beforeBody.apply(this, arguments);\n\t\t\treturn helpers.isArray(lines) ? lines : lines !== undefined ? [lines] : [];\n\t\t},\n\n\t\t// Args are: (tooltipItem, data)\n\t\tgetBody: function(tooltipItems, data) {\n\t\t\tvar me = this;\n\t\t\tvar callbacks = me._options.callbacks;\n\t\t\tvar bodyItems = [];\n\n\t\t\thelpers.each(tooltipItems, function(tooltipItem) {\n\t\t\t\tvar bodyItem = {\n\t\t\t\t\tbefore: [],\n\t\t\t\t\tlines: [],\n\t\t\t\t\tafter: []\n\t\t\t\t};\n\t\t\t\tpushOrConcat(bodyItem.before, callbacks.beforeLabel.call(me, tooltipItem, data));\n\t\t\t\tpushOrConcat(bodyItem.lines, callbacks.label.call(me, tooltipItem, data));\n\t\t\t\tpushOrConcat(bodyItem.after, callbacks.afterLabel.call(me, tooltipItem, data));\n\n\t\t\t\tbodyItems.push(bodyItem);\n\t\t\t});\n\n\t\t\treturn bodyItems;\n\t\t},\n\n\t\t// Args are: (tooltipItem, data)\n\t\tgetAfterBody: function() {\n\t\t\tvar lines = this._options.callbacks.afterBody.apply(this, arguments);\n\t\t\treturn helpers.isArray(lines) ? lines : lines !== undefined ? [lines] : [];\n\t\t},\n\n\t\t// Get the footer and beforeFooter and afterFooter lines\n\t\t// Args are: (tooltipItem, data)\n\t\tgetFooter: function() {\n\t\t\tvar me = this;\n\t\t\tvar callbacks = me._options.callbacks;\n\n\t\t\tvar beforeFooter = callbacks.beforeFooter.apply(me, arguments);\n\t\t\tvar footer = callbacks.footer.apply(me, arguments);\n\t\t\tvar afterFooter = callbacks.afterFooter.apply(me, arguments);\n\n\t\t\tvar lines = [];\n\t\t\tlines = pushOrConcat(lines, beforeFooter);\n\t\t\tlines = pushOrConcat(lines, footer);\n\t\t\tlines = pushOrConcat(lines, afterFooter);\n\n\t\t\treturn lines;\n\t\t},\n\n\t\tupdate: function(changed) {\n\t\t\tvar me = this;\n\t\t\tvar opts = me._options;\n\n\t\t\t// Need to regenerate the model because its faster than using extend and it is necessary due to the optimization in Chart.Element.transition\n\t\t\t// that does _view = _model if ease === 1. This causes the 2nd tooltip update to set properties in both the view and model at the same time\n\t\t\t// which breaks any animations.\n\t\t\tvar existingModel = me._model;\n\t\t\tvar model = me._model = getBaseModel(opts);\n\t\t\tvar active = me._active;\n\n\t\t\tvar data = me._data;\n\n\t\t\t// In the case where active.length === 0 we need to keep these at existing values for good animations\n\t\t\tvar alignment = {\n\t\t\t\txAlign: existingModel.xAlign,\n\t\t\t\tyAlign: existingModel.yAlign\n\t\t\t};\n\t\t\tvar backgroundPoint = {\n\t\t\t\tx: existingModel.x,\n\t\t\t\ty: existingModel.y\n\t\t\t};\n\t\t\tvar tooltipSize = {\n\t\t\t\twidth: existingModel.width,\n\t\t\t\theight: existingModel.height\n\t\t\t};\n\t\t\tvar tooltipPosition = {\n\t\t\t\tx: existingModel.caretX,\n\t\t\t\ty: existingModel.caretY\n\t\t\t};\n\n\t\t\tvar i, len;\n\n\t\t\tif (active.length) {\n\t\t\t\tmodel.opacity = 1;\n\n\t\t\t\tvar labelColors = [];\n\t\t\t\tvar labelTextColors = [];\n\t\t\t\ttooltipPosition = Chart.Tooltip.positioners[opts.position].call(me, active, me._eventPosition);\n\n\t\t\t\tvar tooltipItems = [];\n\t\t\t\tfor (i = 0, len = active.length; i < len; ++i) {\n\t\t\t\t\ttooltipItems.push(createTooltipItem(active[i]));\n\t\t\t\t}\n\n\t\t\t\t// If the user provided a filter function, use it to modify the tooltip items\n\t\t\t\tif (opts.filter) {\n\t\t\t\t\ttooltipItems = tooltipItems.filter(function(a) {\n\t\t\t\t\t\treturn opts.filter(a, data);\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// If the user provided a sorting function, use it to modify the tooltip items\n\t\t\t\tif (opts.itemSort) {\n\t\t\t\t\ttooltipItems = tooltipItems.sort(function(a, b) {\n\t\t\t\t\t\treturn opts.itemSort(a, b, data);\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// Determine colors for boxes\n\t\t\t\thelpers.each(tooltipItems, function(tooltipItem) {\n\t\t\t\t\tlabelColors.push(opts.callbacks.labelColor.call(me, tooltipItem, me._chart));\n\t\t\t\t\tlabelTextColors.push(opts.callbacks.labelTextColor.call(me, tooltipItem, me._chart));\n\t\t\t\t});\n\n\n\t\t\t\t// Build the Text Lines\n\t\t\t\tmodel.title = me.getTitle(tooltipItems, data);\n\t\t\t\tmodel.beforeBody = me.getBeforeBody(tooltipItems, data);\n\t\t\t\tmodel.body = me.getBody(tooltipItems, data);\n\t\t\t\tmodel.afterBody = me.getAfterBody(tooltipItems, data);\n\t\t\t\tmodel.footer = me.getFooter(tooltipItems, data);\n\n\t\t\t\t// Initial positioning and colors\n\t\t\t\tmodel.x = Math.round(tooltipPosition.x);\n\t\t\t\tmodel.y = Math.round(tooltipPosition.y);\n\t\t\t\tmodel.caretPadding = opts.caretPadding;\n\t\t\t\tmodel.labelColors = labelColors;\n\t\t\t\tmodel.labelTextColors = labelTextColors;\n\n\t\t\t\t// data points\n\t\t\t\tmodel.dataPoints = tooltipItems;\n\n\t\t\t\t// We need to determine alignment of the tooltip\n\t\t\t\ttooltipSize = getTooltipSize(this, model);\n\t\t\t\talignment = determineAlignment(this, tooltipSize);\n\t\t\t\t// Final Size and Position\n\t\t\t\tbackgroundPoint = getBackgroundPoint(model, tooltipSize, alignment, me._chart);\n\t\t\t} else {\n\t\t\t\tmodel.opacity = 0;\n\t\t\t}\n\n\t\t\tmodel.xAlign = alignment.xAlign;\n\t\t\tmodel.yAlign = alignment.yAlign;\n\t\t\tmodel.x = backgroundPoint.x;\n\t\t\tmodel.y = backgroundPoint.y;\n\t\t\tmodel.width = tooltipSize.width;\n\t\t\tmodel.height = tooltipSize.height;\n\n\t\t\t// Point where the caret on the tooltip points to\n\t\t\tmodel.caretX = tooltipPosition.x;\n\t\t\tmodel.caretY = tooltipPosition.y;\n\n\t\t\tme._model = model;\n\n\t\t\tif (changed && opts.custom) {\n\t\t\t\topts.custom.call(me, model);\n\t\t\t}\n\n\t\t\treturn me;\n\t\t},\n\t\tdrawCaret: function(tooltipPoint, size) {\n\t\t\tvar ctx = this._chart.ctx;\n\t\t\tvar vm = this._view;\n\t\t\tvar caretPosition = this.getCaretPosition(tooltipPoint, size, vm);\n\n\t\t\tctx.lineTo(caretPosition.x1, caretPosition.y1);\n\t\t\tctx.lineTo(caretPosition.x2, caretPosition.y2);\n\t\t\tctx.lineTo(caretPosition.x3, caretPosition.y3);\n\t\t},\n\t\tgetCaretPosition: function(tooltipPoint, size, vm) {\n\t\t\tvar x1, x2, x3, y1, y2, y3;\n\t\t\tvar caretSize = vm.caretSize;\n\t\t\tvar cornerRadius = vm.cornerRadius;\n\t\t\tvar xAlign = vm.xAlign;\n\t\t\tvar yAlign = vm.yAlign;\n\t\t\tvar ptX = tooltipPoint.x;\n\t\t\tvar ptY = tooltipPoint.y;\n\t\t\tvar width = size.width;\n\t\t\tvar height = size.height;\n\n\t\t\tif (yAlign === 'center') {\n\t\t\t\ty2 = ptY + (height / 2);\n\n\t\t\t\tif (xAlign === 'left') {\n\t\t\t\t\tx1 = ptX;\n\t\t\t\t\tx2 = x1 - caretSize;\n\t\t\t\t\tx3 = x1;\n\n\t\t\t\t\ty1 = y2 + caretSize;\n\t\t\t\t\ty3 = y2 - caretSize;\n\t\t\t\t} else {\n\t\t\t\t\tx1 = ptX + width;\n\t\t\t\t\tx2 = x1 + caretSize;\n\t\t\t\t\tx3 = x1;\n\n\t\t\t\t\ty1 = y2 - caretSize;\n\t\t\t\t\ty3 = y2 + caretSize;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (xAlign === 'left') {\n\t\t\t\t\tx2 = ptX + cornerRadius + (caretSize);\n\t\t\t\t\tx1 = x2 - caretSize;\n\t\t\t\t\tx3 = x2 + caretSize;\n\t\t\t\t} else if (xAlign === 'right') {\n\t\t\t\t\tx2 = ptX + width - cornerRadius - caretSize;\n\t\t\t\t\tx1 = x2 - caretSize;\n\t\t\t\t\tx3 = x2 + caretSize;\n\t\t\t\t} else {\n\t\t\t\t\tx2 = vm.caretX;\n\t\t\t\t\tx1 = x2 - caretSize;\n\t\t\t\t\tx3 = x2 + caretSize;\n\t\t\t\t}\n\t\t\t\tif (yAlign === 'top') {\n\t\t\t\t\ty1 = ptY;\n\t\t\t\t\ty2 = y1 - caretSize;\n\t\t\t\t\ty3 = y1;\n\t\t\t\t} else {\n\t\t\t\t\ty1 = ptY + height;\n\t\t\t\t\ty2 = y1 + caretSize;\n\t\t\t\t\ty3 = y1;\n\t\t\t\t\t// invert drawing order\n\t\t\t\t\tvar tmp = x3;\n\t\t\t\t\tx3 = x1;\n\t\t\t\t\tx1 = tmp;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {x1: x1, x2: x2, x3: x3, y1: y1, y2: y2, y3: y3};\n\t\t},\n\t\tdrawTitle: function(pt, vm, ctx, opacity) {\n\t\t\tvar title = vm.title;\n\n\t\t\tif (title.length) {\n\t\t\t\tctx.textAlign = vm._titleAlign;\n\t\t\t\tctx.textBaseline = 'top';\n\n\t\t\t\tvar titleFontSize = vm.titleFontSize;\n\t\t\t\tvar titleSpacing = vm.titleSpacing;\n\n\t\t\t\tctx.fillStyle = mergeOpacity(vm.titleFontColor, opacity);\n\t\t\t\tctx.font = helpers.fontString(titleFontSize, vm._titleFontStyle, vm._titleFontFamily);\n\n\t\t\t\tvar i, len;\n\t\t\t\tfor (i = 0, len = title.length; i < len; ++i) {\n\t\t\t\t\tctx.fillText(title[i], pt.x, pt.y);\n\t\t\t\t\tpt.y += titleFontSize + titleSpacing; // Line Height and spacing\n\n\t\t\t\t\tif (i + 1 === title.length) {\n\t\t\t\t\t\tpt.y += vm.titleMarginBottom - titleSpacing; // If Last, add margin, remove spacing\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tdrawBody: function(pt, vm, ctx, opacity) {\n\t\t\tvar bodyFontSize = vm.bodyFontSize;\n\t\t\tvar bodySpacing = vm.bodySpacing;\n\t\t\tvar body = vm.body;\n\n\t\t\tctx.textAlign = vm._bodyAlign;\n\t\t\tctx.textBaseline = 'top';\n\t\t\tctx.font = helpers.fontString(bodyFontSize, vm._bodyFontStyle, vm._bodyFontFamily);\n\n\t\t\t// Before Body\n\t\t\tvar xLinePadding = 0;\n\t\t\tvar fillLineOfText = function(line) {\n\t\t\t\tctx.fillText(line, pt.x + xLinePadding, pt.y);\n\t\t\t\tpt.y += bodyFontSize + bodySpacing;\n\t\t\t};\n\n\t\t\t// Before body lines\n\t\t\tctx.fillStyle = mergeOpacity(vm.bodyFontColor, opacity);\n\t\t\thelpers.each(vm.beforeBody, fillLineOfText);\n\n\t\t\tvar drawColorBoxes = vm.displayColors;\n\t\t\txLinePadding = drawColorBoxes ? (bodyFontSize + 2) : 0;\n\n\t\t\t// Draw body lines now\n\t\t\thelpers.each(body, function(bodyItem, i) {\n\t\t\t\tvar textColor = mergeOpacity(vm.labelTextColors[i], opacity);\n\t\t\t\tctx.fillStyle = textColor;\n\t\t\t\thelpers.each(bodyItem.before, fillLineOfText);\n\n\t\t\t\thelpers.each(bodyItem.lines, function(line) {\n\t\t\t\t\t// Draw Legend-like boxes if needed\n\t\t\t\t\tif (drawColorBoxes) {\n\t\t\t\t\t\t// Fill a white rect so that colours merge nicely if the opacity is < 1\n\t\t\t\t\t\tctx.fillStyle = mergeOpacity(vm.legendColorBackground, opacity);\n\t\t\t\t\t\tctx.fillRect(pt.x, pt.y, bodyFontSize, bodyFontSize);\n\n\t\t\t\t\t\t// Border\n\t\t\t\t\t\tctx.lineWidth = 1;\n\t\t\t\t\t\tctx.strokeStyle = mergeOpacity(vm.labelColors[i].borderColor, opacity);\n\t\t\t\t\t\tctx.strokeRect(pt.x, pt.y, bodyFontSize, bodyFontSize);\n\n\t\t\t\t\t\t// Inner square\n\t\t\t\t\t\tctx.fillStyle = mergeOpacity(vm.labelColors[i].backgroundColor, opacity);\n\t\t\t\t\t\tctx.fillRect(pt.x + 1, pt.y + 1, bodyFontSize - 2, bodyFontSize - 2);\n\t\t\t\t\t\tctx.fillStyle = textColor;\n\t\t\t\t\t}\n\n\t\t\t\t\tfillLineOfText(line);\n\t\t\t\t});\n\n\t\t\t\thelpers.each(bodyItem.after, fillLineOfText);\n\t\t\t});\n\n\t\t\t// Reset back to 0 for after body\n\t\t\txLinePadding = 0;\n\n\t\t\t// After body lines\n\t\t\thelpers.each(vm.afterBody, fillLineOfText);\n\t\t\tpt.y -= bodySpacing; // Remove last body spacing\n\t\t},\n\t\tdrawFooter: function(pt, vm, ctx, opacity) {\n\t\t\tvar footer = vm.footer;\n\n\t\t\tif (footer.length) {\n\t\t\t\tpt.y += vm.footerMarginTop;\n\n\t\t\t\tctx.textAlign = vm._footerAlign;\n\t\t\t\tctx.textBaseline = 'top';\n\n\t\t\t\tctx.fillStyle = mergeOpacity(vm.footerFontColor, opacity);\n\t\t\t\tctx.font = helpers.fontString(vm.footerFontSize, vm._footerFontStyle, vm._footerFontFamily);\n\n\t\t\t\thelpers.each(footer, function(line) {\n\t\t\t\t\tctx.fillText(line, pt.x, pt.y);\n\t\t\t\t\tpt.y += vm.footerFontSize + vm.footerSpacing;\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tdrawBackground: function(pt, vm, ctx, tooltipSize, opacity) {\n\t\t\tctx.fillStyle = mergeOpacity(vm.backgroundColor, opacity);\n\t\t\tctx.strokeStyle = mergeOpacity(vm.borderColor, opacity);\n\t\t\tctx.lineWidth = vm.borderWidth;\n\t\t\tvar xAlign = vm.xAlign;\n\t\t\tvar yAlign = vm.yAlign;\n\t\t\tvar x = pt.x;\n\t\t\tvar y = pt.y;\n\t\t\tvar width = tooltipSize.width;\n\t\t\tvar height = tooltipSize.height;\n\t\t\tvar radius = vm.cornerRadius;\n\n\t\t\tctx.beginPath();\n\t\t\tctx.moveTo(x + radius, y);\n\t\t\tif (yAlign === 'top') {\n\t\t\t\tthis.drawCaret(pt, tooltipSize);\n\t\t\t}\n\t\t\tctx.lineTo(x + width - radius, y);\n\t\t\tctx.quadraticCurveTo(x + width, y, x + width, y + radius);\n\t\t\tif (yAlign === 'center' && xAlign === 'right') {\n\t\t\t\tthis.drawCaret(pt, tooltipSize);\n\t\t\t}\n\t\t\tctx.lineTo(x + width, y + height - radius);\n\t\t\tctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);\n\t\t\tif (yAlign === 'bottom') {\n\t\t\t\tthis.drawCaret(pt, tooltipSize);\n\t\t\t}\n\t\t\tctx.lineTo(x + radius, y + height);\n\t\t\tctx.quadraticCurveTo(x, y + height, x, y + height - radius);\n\t\t\tif (yAlign === 'center' && xAlign === 'left') {\n\t\t\t\tthis.drawCaret(pt, tooltipSize);\n\t\t\t}\n\t\t\tctx.lineTo(x, y + radius);\n\t\t\tctx.quadraticCurveTo(x, y, x + radius, y);\n\t\t\tctx.closePath();\n\n\t\t\tctx.fill();\n\n\t\t\tif (vm.borderWidth > 0) {\n\t\t\t\tctx.stroke();\n\t\t\t}\n\t\t},\n\t\tdraw: function() {\n\t\t\tvar ctx = this._chart.ctx;\n\t\t\tvar vm = this._view;\n\n\t\t\tif (vm.opacity === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar tooltipSize = {\n\t\t\t\twidth: vm.width,\n\t\t\t\theight: vm.height\n\t\t\t};\n\t\t\tvar pt = {\n\t\t\t\tx: vm.x,\n\t\t\t\ty: vm.y\n\t\t\t};\n\n\t\t\t// IE11/Edge does not like very small opacities, so snap to 0\n\t\t\tvar opacity = Math.abs(vm.opacity < 1e-3) ? 0 : vm.opacity;\n\n\t\t\t// Truthy/falsey value for empty tooltip\n\t\t\tvar hasTooltipContent = vm.title.length || vm.beforeBody.length || vm.body.length || vm.afterBody.length || vm.footer.length;\n\n\t\t\tif (this._options.enabled && hasTooltipContent) {\n\t\t\t\t// Draw Background\n\t\t\t\tthis.drawBackground(pt, vm, ctx, tooltipSize, opacity);\n\n\t\t\t\t// Draw Title, Body, and Footer\n\t\t\t\tpt.x += vm.xPadding;\n\t\t\t\tpt.y += vm.yPadding;\n\n\t\t\t\t// Titles\n\t\t\t\tthis.drawTitle(pt, vm, ctx, opacity);\n\n\t\t\t\t// Body\n\t\t\t\tthis.drawBody(pt, vm, ctx, opacity);\n\n\t\t\t\t// Footer\n\t\t\t\tthis.drawFooter(pt, vm, ctx, opacity);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Handle an event\n\t\t * @private\n\t\t * @param {IEvent} event - The event to handle\n\t\t * @returns {Boolean} true if the tooltip changed\n\t\t */\n\t\thandleEvent: function(e) {\n\t\t\tvar me = this;\n\t\t\tvar options = me._options;\n\t\t\tvar changed = false;\n\n\t\t\tme._lastActive = me._lastActive || [];\n\n\t\t\t// Find Active Elements for tooltips\n\t\t\tif (e.type === 'mouseout') {\n\t\t\t\tme._active = [];\n\t\t\t} else {\n\t\t\t\tme._active = me._chart.getElementsAtEventForMode(e, options.mode, options);\n\t\t\t}\n\n\t\t\t// Remember Last Actives\n\t\t\tchanged = !helpers.arrayEquals(me._active, me._lastActive);\n\n\t\t\t// Only handle target event on tooltip change\n\t\t\tif (changed) {\n\t\t\t\tme._lastActive = me._active;\n\n\t\t\t\tif (options.enabled || options.custom) {\n\t\t\t\t\tme._eventPosition = {\n\t\t\t\t\t\tx: e.x,\n\t\t\t\t\t\ty: e.y\n\t\t\t\t\t};\n\n\t\t\t\t\tme.update(true);\n\t\t\t\t\tme.pivot();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn changed;\n\t\t}\n\t});\n\n\t/**\n\t * @namespace Chart.Tooltip.positioners\n\t */\n\tChart.Tooltip.positioners = {\n\t\t/**\n\t\t * Average mode places the tooltip at the average position of the elements shown\n\t\t * @function Chart.Tooltip.positioners.average\n\t\t * @param elements {ChartElement[]} the elements being displayed in the tooltip\n\t\t * @returns {Point} tooltip position\n\t\t */\n\t\taverage: function(elements) {\n\t\t\tif (!elements.length) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tvar i, len;\n\t\t\tvar x = 0;\n\t\t\tvar y = 0;\n\t\t\tvar count = 0;\n\n\t\t\tfor (i = 0, len = elements.length; i < len; ++i) {\n\t\t\t\tvar el = elements[i];\n\t\t\t\tif (el && el.hasValue()) {\n\t\t\t\t\tvar pos = el.tooltipPosition();\n\t\t\t\t\tx += pos.x;\n\t\t\t\t\ty += pos.y;\n\t\t\t\t\t++count;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tx: Math.round(x / count),\n\t\t\t\ty: Math.round(y / count)\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * Gets the tooltip position nearest of the item nearest to the event position\n\t\t * @function Chart.Tooltip.positioners.nearest\n\t\t * @param elements {Chart.Element[]} the tooltip elements\n\t\t * @param eventPosition {Point} the position of the event in canvas coordinates\n\t\t * @returns {Point} the tooltip position\n\t\t */\n\t\tnearest: function(elements, eventPosition) {\n\t\t\tvar x = eventPosition.x;\n\t\t\tvar y = eventPosition.y;\n\t\t\tvar minDistance = Number.POSITIVE_INFINITY;\n\t\t\tvar i, len, nearestElement;\n\n\t\t\tfor (i = 0, len = elements.length; i < len; ++i) {\n\t\t\t\tvar el = elements[i];\n\t\t\t\tif (el && el.hasValue()) {\n\t\t\t\t\tvar center = el.getCenterPoint();\n\t\t\t\t\tvar d = helpers.distanceBetweenPoints(eventPosition, center);\n\n\t\t\t\t\tif (d < minDistance) {\n\t\t\t\t\t\tminDistance = d;\n\t\t\t\t\t\tnearestElement = el;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (nearestElement) {\n\t\t\t\tvar tp = nearestElement.tooltipPosition();\n\t\t\t\tx = tp.x;\n\t\t\t\ty = tp.y;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tx: x,\n\t\t\t\ty: y\n\t\t\t};\n\t\t}\n\t};\n};\n","'use strict';\n\nvar helpers = require('../helpers/index');\n\n/**\n * Generate a set of linear ticks\n * @param generationOptions the options used to generate the ticks\n * @param dataRange the range of the data\n * @returns {Array} array of tick values\n */\nfunction generateTicks(generationOptions, dataRange) {\n\tvar ticks = [];\n\t// To get a \"nice\" value for the tick spacing, we will use the appropriately named\n\t// \"nice number\" algorithm. See http://stackoverflow.com/questions/8506881/nice-label-algorithm-for-charts-with-minimum-ticks\n\t// for details.\n\n\tvar spacing;\n\tif (generationOptions.stepSize && generationOptions.stepSize > 0) {\n\t\tspacing = generationOptions.stepSize;\n\t} else {\n\t\tvar niceRange = helpers.niceNum(dataRange.max - dataRange.min, false);\n\t\tspacing = helpers.niceNum(niceRange / (generationOptions.maxTicks - 1), true);\n\t}\n\tvar niceMin = Math.floor(dataRange.min / spacing) * spacing;\n\tvar niceMax = Math.ceil(dataRange.max / spacing) * spacing;\n\n\t// If min, max and stepSize is set and they make an evenly spaced scale use it.\n\tif (generationOptions.min && generationOptions.max && generationOptions.stepSize) {\n\t\t// If very close to our whole number, use it.\n\t\tif (helpers.almostWhole((generationOptions.max - generationOptions.min) / generationOptions.stepSize, spacing / 1000)) {\n\t\t\tniceMin = generationOptions.min;\n\t\t\tniceMax = generationOptions.max;\n\t\t}\n\t}\n\n\tvar numSpaces = (niceMax - niceMin) / spacing;\n\t// If very close to our rounded value, use it.\n\tif (helpers.almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n\t\tnumSpaces = Math.round(numSpaces);\n\t} else {\n\t\tnumSpaces = Math.ceil(numSpaces);\n\t}\n\n\tvar precision = 1;\n\tif (spacing < 1) {\n\t\tprecision = Math.pow(10, spacing.toString().length - 2);\n\t\tniceMin = Math.round(niceMin * precision) / precision;\n\t\tniceMax = Math.round(niceMax * precision) / precision;\n\t}\n\tticks.push(generationOptions.min !== undefined ? generationOptions.min : niceMin);\n\tfor (var j = 1; j < numSpaces; ++j) {\n\t\tticks.push(Math.round((niceMin + j * spacing) * precision) / precision);\n\t}\n\tticks.push(generationOptions.max !== undefined ? generationOptions.max : niceMax);\n\n\treturn ticks;\n}\n\n\nmodule.exports = function(Chart) {\n\n\tvar noop = helpers.noop;\n\n\tChart.LinearScaleBase = Chart.Scale.extend({\n\t\tgetRightValue: function(value) {\n\t\t\tif (typeof value === 'string') {\n\t\t\t\treturn +value;\n\t\t\t}\n\t\t\treturn Chart.Scale.prototype.getRightValue.call(this, value);\n\t\t},\n\n\t\thandleTickRangeOptions: function() {\n\t\t\tvar me = this;\n\t\t\tvar opts = me.options;\n\t\t\tvar tickOpts = opts.ticks;\n\n\t\t\t// If we are forcing it to begin at 0, but 0 will already be rendered on the chart,\n\t\t\t// do nothing since that would make the chart weird. If the user really wants a weird chart\n\t\t\t// axis, they can manually override it\n\t\t\tif (tickOpts.beginAtZero) {\n\t\t\t\tvar minSign = helpers.sign(me.min);\n\t\t\t\tvar maxSign = helpers.sign(me.max);\n\n\t\t\t\tif (minSign < 0 && maxSign < 0) {\n\t\t\t\t\t// move the top up to 0\n\t\t\t\t\tme.max = 0;\n\t\t\t\t} else if (minSign > 0 && maxSign > 0) {\n\t\t\t\t\t// move the bottom down to 0\n\t\t\t\t\tme.min = 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar setMin = tickOpts.min !== undefined || tickOpts.suggestedMin !== undefined;\n\t\t\tvar setMax = tickOpts.max !== undefined || tickOpts.suggestedMax !== undefined;\n\n\t\t\tif (tickOpts.min !== undefined) {\n\t\t\t\tme.min = tickOpts.min;\n\t\t\t} else if (tickOpts.suggestedMin !== undefined) {\n\t\t\t\tif (me.min === null) {\n\t\t\t\t\tme.min = tickOpts.suggestedMin;\n\t\t\t\t} else {\n\t\t\t\t\tme.min = Math.min(me.min, tickOpts.suggestedMin);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (tickOpts.max !== undefined) {\n\t\t\t\tme.max = tickOpts.max;\n\t\t\t} else if (tickOpts.suggestedMax !== undefined) {\n\t\t\t\tif (me.max === null) {\n\t\t\t\t\tme.max = tickOpts.suggestedMax;\n\t\t\t\t} else {\n\t\t\t\t\tme.max = Math.max(me.max, tickOpts.suggestedMax);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (setMin !== setMax) {\n\t\t\t\t// We set the min or the max but not both.\n\t\t\t\t// So ensure that our range is good\n\t\t\t\t// Inverted or 0 length range can happen when\n\t\t\t\t// ticks.min is set, and no datasets are visible\n\t\t\t\tif (me.min >= me.max) {\n\t\t\t\t\tif (setMin) {\n\t\t\t\t\t\tme.max = me.min + 1;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tme.min = me.max - 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (me.min === me.max) {\n\t\t\t\tme.max++;\n\n\t\t\t\tif (!tickOpts.beginAtZero) {\n\t\t\t\t\tme.min--;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tgetTickLimit: noop,\n\t\thandleDirectionalChanges: noop,\n\n\t\tbuildTicks: function() {\n\t\t\tvar me = this;\n\t\t\tvar opts = me.options;\n\t\t\tvar tickOpts = opts.ticks;\n\n\t\t\t// Figure out what the max number of ticks we can support it is based on the size of\n\t\t\t// the axis area. For now, we say that the minimum tick spacing in pixels must be 50\n\t\t\t// We also limit the maximum number of ticks to 11 which gives a nice 10 squares on\n\t\t\t// the graph. Make sure we always have at least 2 ticks\n\t\t\tvar maxTicks = me.getTickLimit();\n\t\t\tmaxTicks = Math.max(2, maxTicks);\n\n\t\t\tvar numericGeneratorOptions = {\n\t\t\t\tmaxTicks: maxTicks,\n\t\t\t\tmin: tickOpts.min,\n\t\t\t\tmax: tickOpts.max,\n\t\t\t\tstepSize: helpers.valueOrDefault(tickOpts.fixedStepSize, tickOpts.stepSize)\n\t\t\t};\n\t\t\tvar ticks = me.ticks = generateTicks(numericGeneratorOptions, me);\n\n\t\t\tme.handleDirectionalChanges();\n\n\t\t\t// At this point, we need to update our max and min given the tick values since we have expanded the\n\t\t\t// range of the scale\n\t\t\tme.max = helpers.max(ticks);\n\t\t\tme.min = helpers.min(ticks);\n\n\t\t\tif (tickOpts.reverse) {\n\t\t\t\tticks.reverse();\n\n\t\t\t\tme.start = me.max;\n\t\t\t\tme.end = me.min;\n\t\t\t} else {\n\t\t\t\tme.start = me.min;\n\t\t\t\tme.end = me.max;\n\t\t\t}\n\t\t},\n\t\tconvertTicksToLabels: function() {\n\t\t\tvar me = this;\n\t\t\tme.ticksAsNumbers = me.ticks.slice();\n\t\t\tme.zeroLineIndex = me.ticks.indexOf(0);\n\n\t\t\tChart.Scale.prototype.convertTicksToLabels.call(me);\n\t\t}\n\t});\n};\n","'use strict';\n\nmodule.exports = function(Chart) {\n\n\t// Default config for a category scale\n\tvar defaultConfig = {\n\t\tposition: 'bottom'\n\t};\n\n\tvar DatasetScale = Chart.Scale.extend({\n\t\t/**\n\t\t* Internal function to get the correct labels. If data.xLabels or data.yLabels are defined, use those\n\t\t* else fall back to data.labels\n\t\t* @private\n\t\t*/\n\t\tgetLabels: function() {\n\t\t\tvar data = this.chart.data;\n\t\t\treturn this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels;\n\t\t},\n\n\t\tdetermineDataLimits: function() {\n\t\t\tvar me = this;\n\t\t\tvar labels = me.getLabels();\n\t\t\tme.minIndex = 0;\n\t\t\tme.maxIndex = labels.length - 1;\n\t\t\tvar findIndex;\n\n\t\t\tif (me.options.ticks.min !== undefined) {\n\t\t\t\t// user specified min value\n\t\t\t\tfindIndex = labels.indexOf(me.options.ticks.min);\n\t\t\t\tme.minIndex = findIndex !== -1 ? findIndex : me.minIndex;\n\t\t\t}\n\n\t\t\tif (me.options.ticks.max !== undefined) {\n\t\t\t\t// user specified max value\n\t\t\t\tfindIndex = labels.indexOf(me.options.ticks.max);\n\t\t\t\tme.maxIndex = findIndex !== -1 ? findIndex : me.maxIndex;\n\t\t\t}\n\n\t\t\tme.min = labels[me.minIndex];\n\t\t\tme.max = labels[me.maxIndex];\n\t\t},\n\n\t\tbuildTicks: function() {\n\t\t\tvar me = this;\n\t\t\tvar labels = me.getLabels();\n\t\t\t// If we are viewing some subset of labels, slice the original array\n\t\t\tme.ticks = (me.minIndex === 0 && me.maxIndex === labels.length - 1) ? labels : labels.slice(me.minIndex, me.maxIndex + 1);\n\t\t},\n\n\t\tgetLabelForIndex: function(index, datasetIndex) {\n\t\t\tvar me = this;\n\t\t\tvar data = me.chart.data;\n\t\t\tvar isHorizontal = me.isHorizontal();\n\n\t\t\tif (data.yLabels && !isHorizontal) {\n\t\t\t\treturn me.getRightValue(data.datasets[datasetIndex].data[index]);\n\t\t\t}\n\t\t\treturn me.ticks[index - me.minIndex];\n\t\t},\n\n\t\t// Used to get data value locations. Value can either be an index or a numerical value\n\t\tgetPixelForValue: function(value, index) {\n\t\t\tvar me = this;\n\t\t\tvar offset = me.options.offset;\n\t\t\t// 1 is added because we need the length but we have the indexes\n\t\t\tvar offsetAmt = Math.max((me.maxIndex + 1 - me.minIndex - (offset ? 0 : 1)), 1);\n\n\t\t\t// If value is a data object, then index is the index in the data array,\n\t\t\t// not the index of the scale. We need to change that.\n\t\t\tvar valueCategory;\n\t\t\tif (value !== undefined && value !== null) {\n\t\t\t\tvalueCategory = me.isHorizontal() ? value.x : value.y;\n\t\t\t}\n\t\t\tif (valueCategory !== undefined || (value !== undefined && isNaN(index))) {\n\t\t\t\tvar labels = me.getLabels();\n\t\t\t\tvalue = valueCategory || value;\n\t\t\t\tvar idx = labels.indexOf(value);\n\t\t\t\tindex = idx !== -1 ? idx : index;\n\t\t\t}\n\n\t\t\tif (me.isHorizontal()) {\n\t\t\t\tvar valueWidth = me.width / offsetAmt;\n\t\t\t\tvar widthOffset = (valueWidth * (index - me.minIndex));\n\n\t\t\t\tif (offset) {\n\t\t\t\t\twidthOffset += (valueWidth / 2);\n\t\t\t\t}\n\n\t\t\t\treturn me.left + Math.round(widthOffset);\n\t\t\t}\n\t\t\tvar valueHeight = me.height / offsetAmt;\n\t\t\tvar heightOffset = (valueHeight * (index - me.minIndex));\n\n\t\t\tif (offset) {\n\t\t\t\theightOffset += (valueHeight / 2);\n\t\t\t}\n\n\t\t\treturn me.top + Math.round(heightOffset);\n\t\t},\n\t\tgetPixelForTick: function(index) {\n\t\t\treturn this.getPixelForValue(this.ticks[index], index + this.minIndex, null);\n\t\t},\n\t\tgetValueForPixel: function(pixel) {\n\t\t\tvar me = this;\n\t\t\tvar offset = me.options.offset;\n\t\t\tvar value;\n\t\t\tvar offsetAmt = Math.max((me._ticks.length - (offset ? 0 : 1)), 1);\n\t\t\tvar horz = me.isHorizontal();\n\t\t\tvar valueDimension = (horz ? me.width : me.height) / offsetAmt;\n\n\t\t\tpixel -= horz ? me.left : me.top;\n\n\t\t\tif (offset) {\n\t\t\t\tpixel -= (valueDimension / 2);\n\t\t\t}\n\n\t\t\tif (pixel <= 0) {\n\t\t\t\tvalue = 0;\n\t\t\t} else {\n\t\t\t\tvalue = Math.round(pixel / valueDimension);\n\t\t\t}\n\n\t\t\treturn value + me.minIndex;\n\t\t},\n\t\tgetBasePixel: function() {\n\t\t\treturn this.bottom;\n\t\t}\n\t});\n\n\tChart.scaleService.registerScaleType('category', DatasetScale, defaultConfig);\n\n};\n","'use strict';\n\nvar defaults = require('../core/core.defaults');\nvar helpers = require('../helpers/index');\nvar Ticks = require('../core/core.ticks');\n\nmodule.exports = function(Chart) {\n\n\tvar defaultConfig = {\n\t\tposition: 'left',\n\t\tticks: {\n\t\t\tcallback: Ticks.formatters.linear\n\t\t}\n\t};\n\n\tvar LinearScale = Chart.LinearScaleBase.extend({\n\n\t\tdetermineDataLimits: function() {\n\t\t\tvar me = this;\n\t\t\tvar opts = me.options;\n\t\t\tvar chart = me.chart;\n\t\t\tvar data = chart.data;\n\t\t\tvar datasets = data.datasets;\n\t\t\tvar isHorizontal = me.isHorizontal();\n\t\t\tvar DEFAULT_MIN = 0;\n\t\t\tvar DEFAULT_MAX = 1;\n\n\t\t\tfunction IDMatches(meta) {\n\t\t\t\treturn isHorizontal ? meta.xAxisID === me.id : meta.yAxisID === me.id;\n\t\t\t}\n\n\t\t\t// First Calculate the range\n\t\t\tme.min = null;\n\t\t\tme.max = null;\n\n\t\t\tvar hasStacks = opts.stacked;\n\t\t\tif (hasStacks === undefined) {\n\t\t\t\thelpers.each(datasets, function(dataset, datasetIndex) {\n\t\t\t\t\tif (hasStacks) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\n\t\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta) &&\n\t\t\t\t\t\tmeta.stack !== undefined) {\n\t\t\t\t\t\thasStacks = true;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (opts.stacked || hasStacks) {\n\t\t\t\tvar valuesPerStack = {};\n\n\t\t\t\thelpers.each(datasets, function(dataset, datasetIndex) {\n\t\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\n\t\t\t\t\tvar key = [\n\t\t\t\t\t\tmeta.type,\n\t\t\t\t\t\t// we have a separate stack for stack=undefined datasets when the opts.stacked is undefined\n\t\t\t\t\t\t((opts.stacked === undefined && meta.stack === undefined) ? datasetIndex : ''),\n\t\t\t\t\t\tmeta.stack\n\t\t\t\t\t].join('.');\n\n\t\t\t\t\tif (valuesPerStack[key] === undefined) {\n\t\t\t\t\t\tvaluesPerStack[key] = {\n\t\t\t\t\t\t\tpositiveValues: [],\n\t\t\t\t\t\t\tnegativeValues: []\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Store these per type\n\t\t\t\t\tvar positiveValues = valuesPerStack[key].positiveValues;\n\t\t\t\t\tvar negativeValues = valuesPerStack[key].negativeValues;\n\n\t\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) {\n\t\t\t\t\t\thelpers.each(dataset.data, function(rawValue, index) {\n\t\t\t\t\t\t\tvar value = +me.getRightValue(rawValue);\n\t\t\t\t\t\t\tif (isNaN(value) || meta.data[index].hidden) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tpositiveValues[index] = positiveValues[index] || 0;\n\t\t\t\t\t\t\tnegativeValues[index] = negativeValues[index] || 0;\n\n\t\t\t\t\t\t\tif (opts.relativePoints) {\n\t\t\t\t\t\t\t\tpositiveValues[index] = 100;\n\t\t\t\t\t\t\t} else if (value < 0) {\n\t\t\t\t\t\t\t\tnegativeValues[index] += value;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tpositiveValues[index] += value;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\thelpers.each(valuesPerStack, function(valuesForType) {\n\t\t\t\t\tvar values = valuesForType.positiveValues.concat(valuesForType.negativeValues);\n\t\t\t\t\tvar minVal = helpers.min(values);\n\t\t\t\t\tvar maxVal = helpers.max(values);\n\t\t\t\t\tme.min = me.min === null ? minVal : Math.min(me.min, minVal);\n\t\t\t\t\tme.max = me.max === null ? maxVal : Math.max(me.max, maxVal);\n\t\t\t\t});\n\n\t\t\t} else {\n\t\t\t\thelpers.each(datasets, function(dataset, datasetIndex) {\n\t\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\n\t\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) {\n\t\t\t\t\t\thelpers.each(dataset.data, function(rawValue, index) {\n\t\t\t\t\t\t\tvar value = +me.getRightValue(rawValue);\n\t\t\t\t\t\t\tif (isNaN(value) || meta.data[index].hidden) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (me.min === null) {\n\t\t\t\t\t\t\t\tme.min = value;\n\t\t\t\t\t\t\t} else if (value < me.min) {\n\t\t\t\t\t\t\t\tme.min = value;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (me.max === null) {\n\t\t\t\t\t\t\t\tme.max = value;\n\t\t\t\t\t\t\t} else if (value > me.max) {\n\t\t\t\t\t\t\t\tme.max = value;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tme.min = isFinite(me.min) && !isNaN(me.min) ? me.min : DEFAULT_MIN;\n\t\t\tme.max = isFinite(me.max) && !isNaN(me.max) ? me.max : DEFAULT_MAX;\n\n\t\t\t// Common base implementation to handle ticks.min, ticks.max, ticks.beginAtZero\n\t\t\tthis.handleTickRangeOptions();\n\t\t},\n\t\tgetTickLimit: function() {\n\t\t\tvar maxTicks;\n\t\t\tvar me = this;\n\t\t\tvar tickOpts = me.options.ticks;\n\n\t\t\tif (me.isHorizontal()) {\n\t\t\t\tmaxTicks = Math.min(tickOpts.maxTicksLimit ? tickOpts.maxTicksLimit : 11, Math.ceil(me.width / 50));\n\t\t\t} else {\n\t\t\t\t// The factor of 2 used to scale the font size has been experimentally determined.\n\t\t\t\tvar tickFontSize = helpers.valueOrDefault(tickOpts.fontSize, defaults.global.defaultFontSize);\n\t\t\t\tmaxTicks = Math.min(tickOpts.maxTicksLimit ? tickOpts.maxTicksLimit : 11, Math.ceil(me.height / (2 * tickFontSize)));\n\t\t\t}\n\n\t\t\treturn maxTicks;\n\t\t},\n\t\t// Called after the ticks are built. We need\n\t\thandleDirectionalChanges: function() {\n\t\t\tif (!this.isHorizontal()) {\n\t\t\t\t// We are in a vertical orientation. The top value is the highest. So reverse the array\n\t\t\t\tthis.ticks.reverse();\n\t\t\t}\n\t\t},\n\t\tgetLabelForIndex: function(index, datasetIndex) {\n\t\t\treturn +this.getRightValue(this.chart.data.datasets[datasetIndex].data[index]);\n\t\t},\n\t\t// Utils\n\t\tgetPixelForValue: function(value) {\n\t\t\t// This must be called after fit has been run so that\n\t\t\t// this.left, this.top, this.right, and this.bottom have been defined\n\t\t\tvar me = this;\n\t\t\tvar start = me.start;\n\n\t\t\tvar rightValue = +me.getRightValue(value);\n\t\t\tvar pixel;\n\t\t\tvar range = me.end - start;\n\n\t\t\tif (me.isHorizontal()) {\n\t\t\t\tpixel = me.left + (me.width / range * (rightValue - start));\n\t\t\t} else {\n\t\t\t\tpixel = me.bottom - (me.height / range * (rightValue - start));\n\t\t\t}\n\t\t\treturn pixel;\n\t\t},\n\t\tgetValueForPixel: function(pixel) {\n\t\t\tvar me = this;\n\t\t\tvar isHorizontal = me.isHorizontal();\n\t\t\tvar innerDimension = isHorizontal ? me.width : me.height;\n\t\t\tvar offset = (isHorizontal ? pixel - me.left : me.bottom - pixel) / innerDimension;\n\t\t\treturn me.start + ((me.end - me.start) * offset);\n\t\t},\n\t\tgetPixelForTick: function(index) {\n\t\t\treturn this.getPixelForValue(this.ticksAsNumbers[index]);\n\t\t}\n\t});\n\tChart.scaleService.registerScaleType('linear', LinearScale, defaultConfig);\n\n};\n","'use strict';\n\nvar helpers = require('../helpers/index');\nvar Ticks = require('../core/core.ticks');\n\n/**\n * Generate a set of logarithmic ticks\n * @param generationOptions the options used to generate the ticks\n * @param dataRange the range of the data\n * @returns {Array} array of tick values\n */\nfunction generateTicks(generationOptions, dataRange) {\n\tvar ticks = [];\n\tvar valueOrDefault = helpers.valueOrDefault;\n\n\t// Figure out what the max number of ticks we can support it is based on the size of\n\t// the axis area. For now, we say that the minimum tick spacing in pixels must be 50\n\t// We also limit the maximum number of ticks to 11 which gives a nice 10 squares on\n\t// the graph\n\tvar tickVal = valueOrDefault(generationOptions.min, Math.pow(10, Math.floor(helpers.log10(dataRange.min))));\n\n\tvar endExp = Math.floor(helpers.log10(dataRange.max));\n\tvar endSignificand = Math.ceil(dataRange.max / Math.pow(10, endExp));\n\tvar exp, significand;\n\n\tif (tickVal === 0) {\n\t\texp = Math.floor(helpers.log10(dataRange.minNotZero));\n\t\tsignificand = Math.floor(dataRange.minNotZero / Math.pow(10, exp));\n\n\t\tticks.push(tickVal);\n\t\ttickVal = significand * Math.pow(10, exp);\n\t} else {\n\t\texp = Math.floor(helpers.log10(tickVal));\n\t\tsignificand = Math.floor(tickVal / Math.pow(10, exp));\n\t}\n\tvar precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n\n\tdo {\n\t\tticks.push(tickVal);\n\n\t\t++significand;\n\t\tif (significand === 10) {\n\t\t\tsignificand = 1;\n\t\t\t++exp;\n\t\t\tprecision = exp >= 0 ? 1 : precision;\n\t\t}\n\n\t\ttickVal = Math.round(significand * Math.pow(10, exp) * precision) / precision;\n\t} while (exp < endExp || (exp === endExp && significand < endSignificand));\n\n\tvar lastTick = valueOrDefault(generationOptions.max, tickVal);\n\tticks.push(lastTick);\n\n\treturn ticks;\n}\n\n\nmodule.exports = function(Chart) {\n\n\tvar defaultConfig = {\n\t\tposition: 'left',\n\n\t\t// label settings\n\t\tticks: {\n\t\t\tcallback: Ticks.formatters.logarithmic\n\t\t}\n\t};\n\n\tvar LogarithmicScale = Chart.Scale.extend({\n\t\tdetermineDataLimits: function() {\n\t\t\tvar me = this;\n\t\t\tvar opts = me.options;\n\t\t\tvar chart = me.chart;\n\t\t\tvar data = chart.data;\n\t\t\tvar datasets = data.datasets;\n\t\t\tvar isHorizontal = me.isHorizontal();\n\t\t\tfunction IDMatches(meta) {\n\t\t\t\treturn isHorizontal ? meta.xAxisID === me.id : meta.yAxisID === me.id;\n\t\t\t}\n\n\t\t\t// Calculate Range\n\t\t\tme.min = null;\n\t\t\tme.max = null;\n\t\t\tme.minNotZero = null;\n\n\t\t\tvar hasStacks = opts.stacked;\n\t\t\tif (hasStacks === undefined) {\n\t\t\t\thelpers.each(datasets, function(dataset, datasetIndex) {\n\t\t\t\t\tif (hasStacks) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\n\t\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta) &&\n\t\t\t\t\t\tmeta.stack !== undefined) {\n\t\t\t\t\t\thasStacks = true;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (opts.stacked || hasStacks) {\n\t\t\t\tvar valuesPerStack = {};\n\n\t\t\t\thelpers.each(datasets, function(dataset, datasetIndex) {\n\t\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\n\t\t\t\t\tvar key = [\n\t\t\t\t\t\tmeta.type,\n\t\t\t\t\t\t// we have a separate stack for stack=undefined datasets when the opts.stacked is undefined\n\t\t\t\t\t\t((opts.stacked === undefined && meta.stack === undefined) ? datasetIndex : ''),\n\t\t\t\t\t\tmeta.stack\n\t\t\t\t\t].join('.');\n\n\t\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) {\n\t\t\t\t\t\tif (valuesPerStack[key] === undefined) {\n\t\t\t\t\t\t\tvaluesPerStack[key] = [];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\thelpers.each(dataset.data, function(rawValue, index) {\n\t\t\t\t\t\t\tvar values = valuesPerStack[key];\n\t\t\t\t\t\t\tvar value = +me.getRightValue(rawValue);\n\t\t\t\t\t\t\t// invalid, hidden and negative values are ignored\n\t\t\t\t\t\t\tif (isNaN(value) || meta.data[index].hidden || value < 0) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvalues[index] = values[index] || 0;\n\t\t\t\t\t\t\tvalues[index] += value;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\thelpers.each(valuesPerStack, function(valuesForType) {\n\t\t\t\t\tif (valuesForType.length > 0) {\n\t\t\t\t\t\tvar minVal = helpers.min(valuesForType);\n\t\t\t\t\t\tvar maxVal = helpers.max(valuesForType);\n\t\t\t\t\t\tme.min = me.min === null ? minVal : Math.min(me.min, minVal);\n\t\t\t\t\t\tme.max = me.max === null ? maxVal : Math.max(me.max, maxVal);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t} else {\n\t\t\t\thelpers.each(datasets, function(dataset, datasetIndex) {\n\t\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\n\t\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) {\n\t\t\t\t\t\thelpers.each(dataset.data, function(rawValue, index) {\n\t\t\t\t\t\t\tvar value = +me.getRightValue(rawValue);\n\t\t\t\t\t\t\t// invalid, hidden and negative values are ignored\n\t\t\t\t\t\t\tif (isNaN(value) || meta.data[index].hidden || value < 0) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (me.min === null) {\n\t\t\t\t\t\t\t\tme.min = value;\n\t\t\t\t\t\t\t} else if (value < me.min) {\n\t\t\t\t\t\t\t\tme.min = value;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (me.max === null) {\n\t\t\t\t\t\t\t\tme.max = value;\n\t\t\t\t\t\t\t} else if (value > me.max) {\n\t\t\t\t\t\t\t\tme.max = value;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (value !== 0 && (me.minNotZero === null || value < me.minNotZero)) {\n\t\t\t\t\t\t\t\tme.minNotZero = value;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Common base implementation to handle ticks.min, ticks.max\n\t\t\tthis.handleTickRangeOptions();\n\t\t},\n\t\thandleTickRangeOptions: function() {\n\t\t\tvar me = this;\n\t\t\tvar opts = me.options;\n\t\t\tvar tickOpts = opts.ticks;\n\t\t\tvar valueOrDefault = helpers.valueOrDefault;\n\t\t\tvar DEFAULT_MIN = 1;\n\t\t\tvar DEFAULT_MAX = 10;\n\n\t\t\tme.min = valueOrDefault(tickOpts.min, me.min);\n\t\t\tme.max = valueOrDefault(tickOpts.max, me.max);\n\n\t\t\tif (me.min === me.max) {\n\t\t\t\tif (me.min !== 0 && me.min !== null) {\n\t\t\t\t\tme.min = Math.pow(10, Math.floor(helpers.log10(me.min)) - 1);\n\t\t\t\t\tme.max = Math.pow(10, Math.floor(helpers.log10(me.max)) + 1);\n\t\t\t\t} else {\n\t\t\t\t\tme.min = DEFAULT_MIN;\n\t\t\t\t\tme.max = DEFAULT_MAX;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (me.min === null) {\n\t\t\t\tme.min = Math.pow(10, Math.floor(helpers.log10(me.max)) - 1);\n\t\t\t}\n\t\t\tif (me.max === null) {\n\t\t\t\tme.max = me.min !== 0\n\t\t\t\t\t? Math.pow(10, Math.floor(helpers.log10(me.min)) + 1)\n\t\t\t\t\t: DEFAULT_MAX;\n\t\t\t}\n\t\t\tif (me.minNotZero === null) {\n\t\t\t\tif (me.min > 0) {\n\t\t\t\t\tme.minNotZero = me.min;\n\t\t\t\t} else if (me.max < 1) {\n\t\t\t\t\tme.minNotZero = Math.pow(10, Math.floor(helpers.log10(me.max)));\n\t\t\t\t} else {\n\t\t\t\t\tme.minNotZero = DEFAULT_MIN;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tbuildTicks: function() {\n\t\t\tvar me = this;\n\t\t\tvar opts = me.options;\n\t\t\tvar tickOpts = opts.ticks;\n\t\t\tvar reverse = !me.isHorizontal();\n\n\t\t\tvar generationOptions = {\n\t\t\t\tmin: tickOpts.min,\n\t\t\t\tmax: tickOpts.max\n\t\t\t};\n\t\t\tvar ticks = me.ticks = generateTicks(generationOptions, me);\n\n\t\t\t// At this point, we need to update our max and min given the tick values since we have expanded the\n\t\t\t// range of the scale\n\t\t\tme.max = helpers.max(ticks);\n\t\t\tme.min = helpers.min(ticks);\n\n\t\t\tif (tickOpts.reverse) {\n\t\t\t\treverse = !reverse;\n\t\t\t\tme.start = me.max;\n\t\t\t\tme.end = me.min;\n\t\t\t} else {\n\t\t\t\tme.start = me.min;\n\t\t\t\tme.end = me.max;\n\t\t\t}\n\t\t\tif (reverse) {\n\t\t\t\tticks.reverse();\n\t\t\t}\n\t\t},\n\t\tconvertTicksToLabels: function() {\n\t\t\tthis.tickValues = this.ticks.slice();\n\n\t\t\tChart.Scale.prototype.convertTicksToLabels.call(this);\n\t\t},\n\t\t// Get the correct tooltip label\n\t\tgetLabelForIndex: function(index, datasetIndex) {\n\t\t\treturn +this.getRightValue(this.chart.data.datasets[datasetIndex].data[index]);\n\t\t},\n\t\tgetPixelForTick: function(index) {\n\t\t\treturn this.getPixelForValue(this.tickValues[index]);\n\t\t},\n\t\t/**\n\t\t * Returns the value of the first tick.\n\t\t * @param {Number} value - The minimum not zero value.\n\t\t * @return {Number} The first tick value.\n\t\t * @private\n\t\t */\n\t\t_getFirstTickValue: function(value) {\n\t\t\tvar exp = Math.floor(helpers.log10(value));\n\t\t\tvar significand = Math.floor(value / Math.pow(10, exp));\n\n\t\t\treturn significand * Math.pow(10, exp);\n\t\t},\n\t\tgetPixelForValue: function(value) {\n\t\t\tvar me = this;\n\t\t\tvar reverse = me.options.ticks.reverse;\n\t\t\tvar log10 = helpers.log10;\n\t\t\tvar firstTickValue = me._getFirstTickValue(me.minNotZero);\n\t\t\tvar offset = 0;\n\t\t\tvar innerDimension, pixel, start, end, sign;\n\n\t\t\tvalue = +me.getRightValue(value);\n\t\t\tif (reverse) {\n\t\t\t\tstart = me.end;\n\t\t\t\tend = me.start;\n\t\t\t\tsign = -1;\n\t\t\t} else {\n\t\t\t\tstart = me.start;\n\t\t\t\tend = me.end;\n\t\t\t\tsign = 1;\n\t\t\t}\n\t\t\tif (me.isHorizontal()) {\n\t\t\t\tinnerDimension = me.width;\n\t\t\t\tpixel = reverse ? me.right : me.left;\n\t\t\t} else {\n\t\t\t\tinnerDimension = me.height;\n\t\t\t\tsign *= -1; // invert, since the upper-left corner of the canvas is at pixel (0, 0)\n\t\t\t\tpixel = reverse ? me.top : me.bottom;\n\t\t\t}\n\t\t\tif (value !== start) {\n\t\t\t\tif (start === 0) { // include zero tick\n\t\t\t\t\toffset = helpers.getValueOrDefault(\n\t\t\t\t\t\tme.options.ticks.fontSize,\n\t\t\t\t\t\tChart.defaults.global.defaultFontSize\n\t\t\t\t\t);\n\t\t\t\t\tinnerDimension -= offset;\n\t\t\t\t\tstart = firstTickValue;\n\t\t\t\t}\n\t\t\t\tif (value !== 0) {\n\t\t\t\t\toffset += innerDimension / (log10(end) - log10(start)) * (log10(value) - log10(start));\n\t\t\t\t}\n\t\t\t\tpixel += sign * offset;\n\t\t\t}\n\t\t\treturn pixel;\n\t\t},\n\t\tgetValueForPixel: function(pixel) {\n\t\t\tvar me = this;\n\t\t\tvar reverse = me.options.ticks.reverse;\n\t\t\tvar log10 = helpers.log10;\n\t\t\tvar firstTickValue = me._getFirstTickValue(me.minNotZero);\n\t\t\tvar innerDimension, start, end, value;\n\n\t\t\tif (reverse) {\n\t\t\t\tstart = me.end;\n\t\t\t\tend = me.start;\n\t\t\t} else {\n\t\t\t\tstart = me.start;\n\t\t\t\tend = me.end;\n\t\t\t}\n\t\t\tif (me.isHorizontal()) {\n\t\t\t\tinnerDimension = me.width;\n\t\t\t\tvalue = reverse ? me.right - pixel : pixel - me.left;\n\t\t\t} else {\n\t\t\t\tinnerDimension = me.height;\n\t\t\t\tvalue = reverse ? pixel - me.top : me.bottom - pixel;\n\t\t\t}\n\t\t\tif (value !== start) {\n\t\t\t\tif (start === 0) { // include zero tick\n\t\t\t\t\tvar offset = helpers.getValueOrDefault(\n\t\t\t\t\t\tme.options.ticks.fontSize,\n\t\t\t\t\t\tChart.defaults.global.defaultFontSize\n\t\t\t\t\t);\n\t\t\t\t\tvalue -= offset;\n\t\t\t\t\tinnerDimension -= offset;\n\t\t\t\t\tstart = firstTickValue;\n\t\t\t\t}\n\t\t\t\tvalue *= log10(end) - log10(start);\n\t\t\t\tvalue /= innerDimension;\n\t\t\t\tvalue = Math.pow(10, log10(start) + value);\n\t\t\t}\n\t\t\treturn value;\n\t\t}\n\t});\n\tChart.scaleService.registerScaleType('logarithmic', LogarithmicScale, defaultConfig);\n\n};\n","'use strict';\n\nvar defaults = require('../core/core.defaults');\nvar helpers = require('../helpers/index');\nvar Ticks = require('../core/core.ticks');\n\nmodule.exports = function(Chart) {\n\n\tvar globalDefaults = defaults.global;\n\n\tvar defaultConfig = {\n\t\tdisplay: true,\n\n\t\t// Boolean - Whether to animate scaling the chart from the centre\n\t\tanimate: true,\n\t\tposition: 'chartArea',\n\n\t\tangleLines: {\n\t\t\tdisplay: true,\n\t\t\tcolor: 'rgba(0, 0, 0, 0.1)',\n\t\t\tlineWidth: 1\n\t\t},\n\n\t\tgridLines: {\n\t\t\tcircular: false\n\t\t},\n\n\t\t// label settings\n\t\tticks: {\n\t\t\t// Boolean - Show a backdrop to the scale label\n\t\t\tshowLabelBackdrop: true,\n\n\t\t\t// String - The colour of the label backdrop\n\t\t\tbackdropColor: 'rgba(255,255,255,0.75)',\n\n\t\t\t// Number - The backdrop padding above & below the label in pixels\n\t\t\tbackdropPaddingY: 2,\n\n\t\t\t// Number - The backdrop padding to the side of the label in pixels\n\t\t\tbackdropPaddingX: 2,\n\n\t\t\tcallback: Ticks.formatters.linear\n\t\t},\n\n\t\tpointLabels: {\n\t\t\t// Boolean - if true, show point labels\n\t\t\tdisplay: true,\n\n\t\t\t// Number - Point label font size in pixels\n\t\t\tfontSize: 10,\n\n\t\t\t// Function - Used to convert point labels\n\t\t\tcallback: function(label) {\n\t\t\t\treturn label;\n\t\t\t}\n\t\t}\n\t};\n\n\tfunction getValueCount(scale) {\n\t\tvar opts = scale.options;\n\t\treturn opts.angleLines.display || opts.pointLabels.display ? scale.chart.data.labels.length : 0;\n\t}\n\n\tfunction getPointLabelFontOptions(scale) {\n\t\tvar pointLabelOptions = scale.options.pointLabels;\n\t\tvar fontSize = helpers.valueOrDefault(pointLabelOptions.fontSize, globalDefaults.defaultFontSize);\n\t\tvar fontStyle = helpers.valueOrDefault(pointLabelOptions.fontStyle, globalDefaults.defaultFontStyle);\n\t\tvar fontFamily = helpers.valueOrDefault(pointLabelOptions.fontFamily, globalDefaults.defaultFontFamily);\n\t\tvar font = helpers.fontString(fontSize, fontStyle, fontFamily);\n\n\t\treturn {\n\t\t\tsize: fontSize,\n\t\t\tstyle: fontStyle,\n\t\t\tfamily: fontFamily,\n\t\t\tfont: font\n\t\t};\n\t}\n\n\tfunction measureLabelSize(ctx, fontSize, label) {\n\t\tif (helpers.isArray(label)) {\n\t\t\treturn {\n\t\t\t\tw: helpers.longestText(ctx, ctx.font, label),\n\t\t\t\th: (label.length * fontSize) + ((label.length - 1) * 1.5 * fontSize)\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tw: ctx.measureText(label).width,\n\t\t\th: fontSize\n\t\t};\n\t}\n\n\tfunction determineLimits(angle, pos, size, min, max) {\n\t\tif (angle === min || angle === max) {\n\t\t\treturn {\n\t\t\t\tstart: pos - (size / 2),\n\t\t\t\tend: pos + (size / 2)\n\t\t\t};\n\t\t} else if (angle < min || angle > max) {\n\t\t\treturn {\n\t\t\t\tstart: pos - size - 5,\n\t\t\t\tend: pos\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tstart: pos,\n\t\t\tend: pos + size + 5\n\t\t};\n\t}\n\n\t/**\n\t * Helper function to fit a radial linear scale with point labels\n\t */\n\tfunction fitWithPointLabels(scale) {\n\t\t/*\n\t\t * Right, this is really confusing and there is a lot of maths going on here\n\t\t * The gist of the problem is here: https://gist.github.com/nnnick/696cc9c55f4b0beb8fe9\n\t\t *\n\t\t * Reaction: https://dl.dropboxusercontent.com/u/34601363/toomuchscience.gif\n\t\t *\n\t\t * Solution:\n\t\t *\n\t\t * We assume the radius of the polygon is half the size of the canvas at first\n\t\t * at each index we check if the text overlaps.\n\t\t *\n\t\t * Where it does, we store that angle and that index.\n\t\t *\n\t\t * After finding the largest index and angle we calculate how much we need to remove\n\t\t * from the shape radius to move the point inwards by that x.\n\t\t *\n\t\t * We average the left and right distances to get the maximum shape radius that can fit in the box\n\t\t * along with labels.\n\t\t *\n\t\t * Once we have that, we can find the centre point for the chart, by taking the x text protrusion\n\t\t * on each side, removing that from the size, halving it and adding the left x protrusion width.\n\t\t *\n\t\t * This will mean we have a shape fitted to the canvas, as large as it can be with the labels\n\t\t * and position it in the most space efficient manner\n\t\t *\n\t\t * https://dl.dropboxusercontent.com/u/34601363/yeahscience.gif\n\t\t */\n\n\t\tvar plFont = getPointLabelFontOptions(scale);\n\n\t\t// Get maximum radius of the polygon. Either half the height (minus the text width) or half the width.\n\t\t// Use this to calculate the offset + change. - Make sure L/R protrusion is at least 0 to stop issues with centre points\n\t\tvar largestPossibleRadius = Math.min(scale.height / 2, scale.width / 2);\n\t\tvar furthestLimits = {\n\t\t\tr: scale.width,\n\t\t\tl: 0,\n\t\t\tt: scale.height,\n\t\t\tb: 0\n\t\t};\n\t\tvar furthestAngles = {};\n\t\tvar i, textSize, pointPosition;\n\n\t\tscale.ctx.font = plFont.font;\n\t\tscale._pointLabelSizes = [];\n\n\t\tvar valueCount = getValueCount(scale);\n\t\tfor (i = 0; i < valueCount; i++) {\n\t\t\tpointPosition = scale.getPointPosition(i, largestPossibleRadius);\n\t\t\ttextSize = measureLabelSize(scale.ctx, plFont.size, scale.pointLabels[i] || '');\n\t\t\tscale._pointLabelSizes[i] = textSize;\n\n\t\t\t// Add quarter circle to make degree 0 mean top of circle\n\t\t\tvar angleRadians = scale.getIndexAngle(i);\n\t\t\tvar angle = helpers.toDegrees(angleRadians) % 360;\n\t\t\tvar hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n\t\t\tvar vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n\n\t\t\tif (hLimits.start < furthestLimits.l) {\n\t\t\t\tfurthestLimits.l = hLimits.start;\n\t\t\t\tfurthestAngles.l = angleRadians;\n\t\t\t}\n\n\t\t\tif (hLimits.end > furthestLimits.r) {\n\t\t\t\tfurthestLimits.r = hLimits.end;\n\t\t\t\tfurthestAngles.r = angleRadians;\n\t\t\t}\n\n\t\t\tif (vLimits.start < furthestLimits.t) {\n\t\t\t\tfurthestLimits.t = vLimits.start;\n\t\t\t\tfurthestAngles.t = angleRadians;\n\t\t\t}\n\n\t\t\tif (vLimits.end > furthestLimits.b) {\n\t\t\t\tfurthestLimits.b = vLimits.end;\n\t\t\t\tfurthestAngles.b = angleRadians;\n\t\t\t}\n\t\t}\n\n\t\tscale.setReductions(largestPossibleRadius, furthestLimits, furthestAngles);\n\t}\n\n\t/**\n\t * Helper function to fit a radial linear scale with no point labels\n\t */\n\tfunction fit(scale) {\n\t\tvar largestPossibleRadius = Math.min(scale.height / 2, scale.width / 2);\n\t\tscale.drawingArea = Math.round(largestPossibleRadius);\n\t\tscale.setCenterPoint(0, 0, 0, 0);\n\t}\n\n\tfunction getTextAlignForAngle(angle) {\n\t\tif (angle === 0 || angle === 180) {\n\t\t\treturn 'center';\n\t\t} else if (angle < 180) {\n\t\t\treturn 'left';\n\t\t}\n\n\t\treturn 'right';\n\t}\n\n\tfunction fillText(ctx, text, position, fontSize) {\n\t\tif (helpers.isArray(text)) {\n\t\t\tvar y = position.y;\n\t\t\tvar spacing = 1.5 * fontSize;\n\n\t\t\tfor (var i = 0; i < text.length; ++i) {\n\t\t\t\tctx.fillText(text[i], position.x, y);\n\t\t\t\ty += spacing;\n\t\t\t}\n\t\t} else {\n\t\t\tctx.fillText(text, position.x, position.y);\n\t\t}\n\t}\n\n\tfunction adjustPointPositionForLabelHeight(angle, textSize, position) {\n\t\tif (angle === 90 || angle === 270) {\n\t\t\tposition.y -= (textSize.h / 2);\n\t\t} else if (angle > 270 || angle < 90) {\n\t\t\tposition.y -= textSize.h;\n\t\t}\n\t}\n\n\tfunction drawPointLabels(scale) {\n\t\tvar ctx = scale.ctx;\n\t\tvar opts = scale.options;\n\t\tvar angleLineOpts = opts.angleLines;\n\t\tvar pointLabelOpts = opts.pointLabels;\n\n\t\tctx.lineWidth = angleLineOpts.lineWidth;\n\t\tctx.strokeStyle = angleLineOpts.color;\n\n\t\tvar outerDistance = scale.getDistanceFromCenterForValue(opts.ticks.reverse ? scale.min : scale.max);\n\n\t\t// Point Label Font\n\t\tvar plFont = getPointLabelFontOptions(scale);\n\n\t\tctx.textBaseline = 'top';\n\n\t\tfor (var i = getValueCount(scale) - 1; i >= 0; i--) {\n\t\t\tif (angleLineOpts.display) {\n\t\t\t\tvar outerPosition = scale.getPointPosition(i, outerDistance);\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.moveTo(scale.xCenter, scale.yCenter);\n\t\t\t\tctx.lineTo(outerPosition.x, outerPosition.y);\n\t\t\t\tctx.stroke();\n\t\t\t\tctx.closePath();\n\t\t\t}\n\n\t\t\tif (pointLabelOpts.display) {\n\t\t\t\t// Extra 3px out for some label spacing\n\t\t\t\tvar pointLabelPosition = scale.getPointPosition(i, outerDistance + 5);\n\n\t\t\t\t// Keep this in loop since we may support array properties here\n\t\t\t\tvar pointLabelFontColor = helpers.valueAtIndexOrDefault(pointLabelOpts.fontColor, i, globalDefaults.defaultFontColor);\n\t\t\t\tctx.font = plFont.font;\n\t\t\t\tctx.fillStyle = pointLabelFontColor;\n\n\t\t\t\tvar angleRadians = scale.getIndexAngle(i);\n\t\t\t\tvar angle = helpers.toDegrees(angleRadians);\n\t\t\t\tctx.textAlign = getTextAlignForAngle(angle);\n\t\t\t\tadjustPointPositionForLabelHeight(angle, scale._pointLabelSizes[i], pointLabelPosition);\n\t\t\t\tfillText(ctx, scale.pointLabels[i] || '', pointLabelPosition, plFont.size);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction drawRadiusLine(scale, gridLineOpts, radius, index) {\n\t\tvar ctx = scale.ctx;\n\t\tctx.strokeStyle = helpers.valueAtIndexOrDefault(gridLineOpts.color, index - 1);\n\t\tctx.lineWidth = helpers.valueAtIndexOrDefault(gridLineOpts.lineWidth, index - 1);\n\n\t\tif (scale.options.gridLines.circular) {\n\t\t\t// Draw circular arcs between the points\n\t\t\tctx.beginPath();\n\t\t\tctx.arc(scale.xCenter, scale.yCenter, radius, 0, Math.PI * 2);\n\t\t\tctx.closePath();\n\t\t\tctx.stroke();\n\t\t} else {\n\t\t\t// Draw straight lines connecting each index\n\t\t\tvar valueCount = getValueCount(scale);\n\n\t\t\tif (valueCount === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tctx.beginPath();\n\t\t\tvar pointPosition = scale.getPointPosition(0, radius);\n\t\t\tctx.moveTo(pointPosition.x, pointPosition.y);\n\n\t\t\tfor (var i = 1; i < valueCount; i++) {\n\t\t\t\tpointPosition = scale.getPointPosition(i, radius);\n\t\t\t\tctx.lineTo(pointPosition.x, pointPosition.y);\n\t\t\t}\n\n\t\t\tctx.closePath();\n\t\t\tctx.stroke();\n\t\t}\n\t}\n\n\tfunction numberOrZero(param) {\n\t\treturn helpers.isNumber(param) ? param : 0;\n\t}\n\n\tvar LinearRadialScale = Chart.LinearScaleBase.extend({\n\t\tsetDimensions: function() {\n\t\t\tvar me = this;\n\t\t\tvar opts = me.options;\n\t\t\tvar tickOpts = opts.ticks;\n\t\t\t// Set the unconstrained dimension before label rotation\n\t\t\tme.width = me.maxWidth;\n\t\t\tme.height = me.maxHeight;\n\t\t\tme.xCenter = Math.round(me.width / 2);\n\t\t\tme.yCenter = Math.round(me.height / 2);\n\n\t\t\tvar minSize = helpers.min([me.height, me.width]);\n\t\t\tvar tickFontSize = helpers.valueOrDefault(tickOpts.fontSize, globalDefaults.defaultFontSize);\n\t\t\tme.drawingArea = opts.display ? (minSize / 2) - (tickFontSize / 2 + tickOpts.backdropPaddingY) : (minSize / 2);\n\t\t},\n\t\tdetermineDataLimits: function() {\n\t\t\tvar me = this;\n\t\t\tvar chart = me.chart;\n\t\t\tvar min = Number.POSITIVE_INFINITY;\n\t\t\tvar max = Number.NEGATIVE_INFINITY;\n\n\t\t\thelpers.each(chart.data.datasets, function(dataset, datasetIndex) {\n\t\t\t\tif (chart.isDatasetVisible(datasetIndex)) {\n\t\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\n\n\t\t\t\t\thelpers.each(dataset.data, function(rawValue, index) {\n\t\t\t\t\t\tvar value = +me.getRightValue(rawValue);\n\t\t\t\t\t\tif (isNaN(value) || meta.data[index].hidden) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tmin = Math.min(value, min);\n\t\t\t\t\t\tmax = Math.max(value, max);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tme.min = (min === Number.POSITIVE_INFINITY ? 0 : min);\n\t\t\tme.max = (max === Number.NEGATIVE_INFINITY ? 0 : max);\n\n\t\t\t// Common base implementation to handle ticks.min, ticks.max, ticks.beginAtZero\n\t\t\tme.handleTickRangeOptions();\n\t\t},\n\t\tgetTickLimit: function() {\n\t\t\tvar tickOpts = this.options.ticks;\n\t\t\tvar tickFontSize = helpers.valueOrDefault(tickOpts.fontSize, globalDefaults.defaultFontSize);\n\t\t\treturn Math.min(tickOpts.maxTicksLimit ? tickOpts.maxTicksLimit : 11, Math.ceil(this.drawingArea / (1.5 * tickFontSize)));\n\t\t},\n\t\tconvertTicksToLabels: function() {\n\t\t\tvar me = this;\n\n\t\t\tChart.LinearScaleBase.prototype.convertTicksToLabels.call(me);\n\n\t\t\t// Point labels\n\t\t\tme.pointLabels = me.chart.data.labels.map(me.options.pointLabels.callback, me);\n\t\t},\n\t\tgetLabelForIndex: function(index, datasetIndex) {\n\t\t\treturn +this.getRightValue(this.chart.data.datasets[datasetIndex].data[index]);\n\t\t},\n\t\tfit: function() {\n\t\t\tif (this.options.pointLabels.display) {\n\t\t\t\tfitWithPointLabels(this);\n\t\t\t} else {\n\t\t\t\tfit(this);\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Set radius reductions and determine new radius and center point\n\t\t * @private\n\t\t */\n\t\tsetReductions: function(largestPossibleRadius, furthestLimits, furthestAngles) {\n\t\t\tvar me = this;\n\t\t\tvar radiusReductionLeft = furthestLimits.l / Math.sin(furthestAngles.l);\n\t\t\tvar radiusReductionRight = Math.max(furthestLimits.r - me.width, 0) / Math.sin(furthestAngles.r);\n\t\t\tvar radiusReductionTop = -furthestLimits.t / Math.cos(furthestAngles.t);\n\t\t\tvar radiusReductionBottom = -Math.max(furthestLimits.b - me.height, 0) / Math.cos(furthestAngles.b);\n\n\t\t\tradiusReductionLeft = numberOrZero(radiusReductionLeft);\n\t\t\tradiusReductionRight = numberOrZero(radiusReductionRight);\n\t\t\tradiusReductionTop = numberOrZero(radiusReductionTop);\n\t\t\tradiusReductionBottom = numberOrZero(radiusReductionBottom);\n\n\t\t\tme.drawingArea = Math.min(\n\t\t\t\tMath.round(largestPossibleRadius - (radiusReductionLeft + radiusReductionRight) / 2),\n\t\t\t\tMath.round(largestPossibleRadius - (radiusReductionTop + radiusReductionBottom) / 2));\n\t\t\tme.setCenterPoint(radiusReductionLeft, radiusReductionRight, radiusReductionTop, radiusReductionBottom);\n\t\t},\n\t\tsetCenterPoint: function(leftMovement, rightMovement, topMovement, bottomMovement) {\n\t\t\tvar me = this;\n\t\t\tvar maxRight = me.width - rightMovement - me.drawingArea;\n\t\t\tvar maxLeft = leftMovement + me.drawingArea;\n\t\t\tvar maxTop = topMovement + me.drawingArea;\n\t\t\tvar maxBottom = me.height - bottomMovement - me.drawingArea;\n\n\t\t\tme.xCenter = Math.round(((maxLeft + maxRight) / 2) + me.left);\n\t\t\tme.yCenter = Math.round(((maxTop + maxBottom) / 2) + me.top);\n\t\t},\n\n\t\tgetIndexAngle: function(index) {\n\t\t\tvar angleMultiplier = (Math.PI * 2) / getValueCount(this);\n\t\t\tvar startAngle = this.chart.options && this.chart.options.startAngle ?\n\t\t\t\tthis.chart.options.startAngle :\n\t\t\t\t0;\n\n\t\t\tvar startAngleRadians = startAngle * Math.PI * 2 / 360;\n\n\t\t\t// Start from the top instead of right, so remove a quarter of the circle\n\t\t\treturn index * angleMultiplier + startAngleRadians;\n\t\t},\n\t\tgetDistanceFromCenterForValue: function(value) {\n\t\t\tvar me = this;\n\n\t\t\tif (value === null) {\n\t\t\t\treturn 0; // null always in center\n\t\t\t}\n\n\t\t\t// Take into account half font size + the yPadding of the top value\n\t\t\tvar scalingFactor = me.drawingArea / (me.max - me.min);\n\t\t\tif (me.options.ticks.reverse) {\n\t\t\t\treturn (me.max - value) * scalingFactor;\n\t\t\t}\n\t\t\treturn (value - me.min) * scalingFactor;\n\t\t},\n\t\tgetPointPosition: function(index, distanceFromCenter) {\n\t\t\tvar me = this;\n\t\t\tvar thisAngle = me.getIndexAngle(index) - (Math.PI / 2);\n\t\t\treturn {\n\t\t\t\tx: Math.round(Math.cos(thisAngle) * distanceFromCenter) + me.xCenter,\n\t\t\t\ty: Math.round(Math.sin(thisAngle) * distanceFromCenter) + me.yCenter\n\t\t\t};\n\t\t},\n\t\tgetPointPositionForValue: function(index, value) {\n\t\t\treturn this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n\t\t},\n\n\t\tgetBasePosition: function() {\n\t\t\tvar me = this;\n\t\t\tvar min = me.min;\n\t\t\tvar max = me.max;\n\n\t\t\treturn me.getPointPositionForValue(0,\n\t\t\t\tme.beginAtZero ? 0 :\n\t\t\t\tmin < 0 && max < 0 ? max :\n\t\t\t\tmin > 0 && max > 0 ? min :\n\t\t\t\t0);\n\t\t},\n\n\t\tdraw: function() {\n\t\t\tvar me = this;\n\t\t\tvar opts = me.options;\n\t\t\tvar gridLineOpts = opts.gridLines;\n\t\t\tvar tickOpts = opts.ticks;\n\t\t\tvar valueOrDefault = helpers.valueOrDefault;\n\n\t\t\tif (opts.display) {\n\t\t\t\tvar ctx = me.ctx;\n\t\t\t\tvar startAngle = this.getIndexAngle(0);\n\n\t\t\t\t// Tick Font\n\t\t\t\tvar tickFontSize = valueOrDefault(tickOpts.fontSize, globalDefaults.defaultFontSize);\n\t\t\t\tvar tickFontStyle = valueOrDefault(tickOpts.fontStyle, globalDefaults.defaultFontStyle);\n\t\t\t\tvar tickFontFamily = valueOrDefault(tickOpts.fontFamily, globalDefaults.defaultFontFamily);\n\t\t\t\tvar tickLabelFont = helpers.fontString(tickFontSize, tickFontStyle, tickFontFamily);\n\n\t\t\t\thelpers.each(me.ticks, function(label, index) {\n\t\t\t\t\t// Don't draw a centre value (if it is minimum)\n\t\t\t\t\tif (index > 0 || tickOpts.reverse) {\n\t\t\t\t\t\tvar yCenterOffset = me.getDistanceFromCenterForValue(me.ticksAsNumbers[index]);\n\n\t\t\t\t\t\t// Draw circular lines around the scale\n\t\t\t\t\t\tif (gridLineOpts.display && index !== 0) {\n\t\t\t\t\t\t\tdrawRadiusLine(me, gridLineOpts, yCenterOffset, index);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (tickOpts.display) {\n\t\t\t\t\t\t\tvar tickFontColor = valueOrDefault(tickOpts.fontColor, globalDefaults.defaultFontColor);\n\t\t\t\t\t\t\tctx.font = tickLabelFont;\n\n\t\t\t\t\t\t\tctx.save();\n\t\t\t\t\t\t\tctx.translate(me.xCenter, me.yCenter);\n\t\t\t\t\t\t\tctx.rotate(startAngle);\n\n\t\t\t\t\t\t\tif (tickOpts.showLabelBackdrop) {\n\t\t\t\t\t\t\t\tvar labelWidth = ctx.measureText(label).width;\n\t\t\t\t\t\t\t\tctx.fillStyle = tickOpts.backdropColor;\n\t\t\t\t\t\t\t\tctx.fillRect(\n\t\t\t\t\t\t\t\t\t-labelWidth / 2 - tickOpts.backdropPaddingX,\n\t\t\t\t\t\t\t\t\t-yCenterOffset - tickFontSize / 2 - tickOpts.backdropPaddingY,\n\t\t\t\t\t\t\t\t\tlabelWidth + tickOpts.backdropPaddingX * 2,\n\t\t\t\t\t\t\t\t\ttickFontSize + tickOpts.backdropPaddingY * 2\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tctx.textAlign = 'center';\n\t\t\t\t\t\t\tctx.textBaseline = 'middle';\n\t\t\t\t\t\t\tctx.fillStyle = tickFontColor;\n\t\t\t\t\t\t\tctx.fillText(label, 0, -yCenterOffset);\n\t\t\t\t\t\t\tctx.restore();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (opts.angleLines.display || opts.pointLabels.display) {\n\t\t\t\t\tdrawPointLabels(me);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\tChart.scaleService.registerScaleType('radialLinear', LinearRadialScale, defaultConfig);\n\n};\n","/* global window: false */\n'use strict';\n\nvar moment = require('moment');\nmoment = typeof moment === 'function' ? moment : window.moment;\n\nvar defaults = require('../core/core.defaults');\nvar helpers = require('../helpers/index');\n\n// Integer constants are from the ES6 spec.\nvar MIN_INTEGER = Number.MIN_SAFE_INTEGER || -9007199254740991;\nvar MAX_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;\n\nvar INTERVALS = {\n\tmillisecond: {\n\t\tcommon: true,\n\t\tsize: 1,\n\t\tsteps: [1, 2, 5, 10, 20, 50, 100, 250, 500]\n\t},\n\tsecond: {\n\t\tcommon: true,\n\t\tsize: 1000,\n\t\tsteps: [1, 2, 5, 10, 30]\n\t},\n\tminute: {\n\t\tcommon: true,\n\t\tsize: 60000,\n\t\tsteps: [1, 2, 5, 10, 30]\n\t},\n\thour: {\n\t\tcommon: true,\n\t\tsize: 3600000,\n\t\tsteps: [1, 2, 3, 6, 12]\n\t},\n\tday: {\n\t\tcommon: true,\n\t\tsize: 86400000,\n\t\tsteps: [1, 2, 5]\n\t},\n\tweek: {\n\t\tcommon: false,\n\t\tsize: 604800000,\n\t\tsteps: [1, 2, 3, 4]\n\t},\n\tmonth: {\n\t\tcommon: true,\n\t\tsize: 2.628e9,\n\t\tsteps: [1, 2, 3]\n\t},\n\tquarter: {\n\t\tcommon: false,\n\t\tsize: 7.884e9,\n\t\tsteps: [1, 2, 3, 4]\n\t},\n\tyear: {\n\t\tcommon: true,\n\t\tsize: 3.154e10\n\t}\n};\n\nvar UNITS = Object.keys(INTERVALS);\n\nfunction sorter(a, b) {\n\treturn a - b;\n}\n\nfunction arrayUnique(items) {\n\tvar hash = {};\n\tvar out = [];\n\tvar i, ilen, item;\n\n\tfor (i = 0, ilen = items.length; i < ilen; ++i) {\n\t\titem = items[i];\n\t\tif (!hash[item]) {\n\t\t\thash[item] = true;\n\t\t\tout.push(item);\n\t\t}\n\t}\n\n\treturn out;\n}\n\n/**\n * Returns an array of {time, pos} objects used to interpolate a specific `time` or position\n * (`pos`) on the scale, by searching entries before and after the requested value. `pos` is\n * a decimal between 0 and 1: 0 being the start of the scale (left or top) and 1 the other\n * extremity (left + width or top + height). Note that it would be more optimized to directly\n * store pre-computed pixels, but the scale dimensions are not guaranteed at the time we need\n * to create the lookup table. The table ALWAYS contains at least two items: min and max.\n *\n * @param {Number[]} timestamps - timestamps sorted from lowest to highest.\n * @param {String} distribution - If 'linear', timestamps will be spread linearly along the min\n * and max range, so basically, the table will contains only two items: {min, 0} and {max, 1}.\n * If 'series', timestamps will be positioned at the same distance from each other. In this\n * case, only timestamps that break the time linearity are registered, meaning that in the\n * best case, all timestamps are linear, the table contains only min and max.\n */\nfunction buildLookupTable(timestamps, min, max, distribution) {\n\tif (distribution === 'linear' || !timestamps.length) {\n\t\treturn [\n\t\t\t{time: min, pos: 0},\n\t\t\t{time: max, pos: 1}\n\t\t];\n\t}\n\n\tvar table = [];\n\tvar items = [min];\n\tvar i, ilen, prev, curr, next;\n\n\tfor (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n\t\tcurr = timestamps[i];\n\t\tif (curr > min && curr < max) {\n\t\t\titems.push(curr);\n\t\t}\n\t}\n\n\titems.push(max);\n\n\tfor (i = 0, ilen = items.length; i < ilen; ++i) {\n\t\tnext = items[i + 1];\n\t\tprev = items[i - 1];\n\t\tcurr = items[i];\n\n\t\t// only add points that breaks the scale linearity\n\t\tif (prev === undefined || next === undefined || Math.round((next + prev) / 2) !== curr) {\n\t\t\ttable.push({time: curr, pos: i / (ilen - 1)});\n\t\t}\n\t}\n\n\treturn table;\n}\n\n// @see adapted from http://www.anujgakhar.com/2014/03/01/binary-search-in-javascript/\nfunction lookup(table, key, value) {\n\tvar lo = 0;\n\tvar hi = table.length - 1;\n\tvar mid, i0, i1;\n\n\twhile (lo >= 0 && lo <= hi) {\n\t\tmid = (lo + hi) >> 1;\n\t\ti0 = table[mid - 1] || null;\n\t\ti1 = table[mid];\n\n\t\tif (!i0) {\n\t\t\t// given value is outside table (before first item)\n\t\t\treturn {lo: null, hi: i1};\n\t\t} else if (i1[key] < value) {\n\t\t\tlo = mid + 1;\n\t\t} else if (i0[key] > value) {\n\t\t\thi = mid - 1;\n\t\t} else {\n\t\t\treturn {lo: i0, hi: i1};\n\t\t}\n\t}\n\n\t// given value is outside table (after last item)\n\treturn {lo: i1, hi: null};\n}\n\n/**\n * Linearly interpolates the given source `value` using the table items `skey` values and\n * returns the associated `tkey` value. For example, interpolate(table, 'time', 42, 'pos')\n * returns the position for a timestamp equal to 42. If value is out of bounds, values at\n * index [0, 1] or [n - 1, n] are used for the interpolation.\n */\nfunction interpolate(table, skey, sval, tkey) {\n\tvar range = lookup(table, skey, sval);\n\n\t// Note: the lookup table ALWAYS contains at least 2 items (min and max)\n\tvar prev = !range.lo ? table[0] : !range.hi ? table[table.length - 2] : range.lo;\n\tvar next = !range.lo ? table[1] : !range.hi ? table[table.length - 1] : range.hi;\n\n\tvar span = next[skey] - prev[skey];\n\tvar ratio = span ? (sval - prev[skey]) / span : 0;\n\tvar offset = (next[tkey] - prev[tkey]) * ratio;\n\n\treturn prev[tkey] + offset;\n}\n\n/**\n * Convert the given value to a moment object using the given time options.\n * @see http://momentjs.com/docs/#/parsing/\n */\nfunction momentify(value, options) {\n\tvar parser = options.parser;\n\tvar format = options.parser || options.format;\n\n\tif (typeof parser === 'function') {\n\t\treturn parser(value);\n\t}\n\n\tif (typeof value === 'string' && typeof format === 'string') {\n\t\treturn moment(value, format);\n\t}\n\n\tif (!(value instanceof moment)) {\n\t\tvalue = moment(value);\n\t}\n\n\tif (value.isValid()) {\n\t\treturn value;\n\t}\n\n\t// Labels are in an incompatible moment format and no `parser` has been provided.\n\t// The user might still use the deprecated `format` option to convert his inputs.\n\tif (typeof format === 'function') {\n\t\treturn format(value);\n\t}\n\n\treturn value;\n}\n\nfunction parse(input, scale) {\n\tif (helpers.isNullOrUndef(input)) {\n\t\treturn null;\n\t}\n\n\tvar options = scale.options.time;\n\tvar value = momentify(scale.getRightValue(input), options);\n\tif (!value.isValid()) {\n\t\treturn null;\n\t}\n\n\tif (options.round) {\n\t\tvalue.startOf(options.round);\n\t}\n\n\treturn value.valueOf();\n}\n\n/**\n * Returns the number of unit to skip to be able to display up to `capacity` number of ticks\n * in `unit` for the given `min` / `max` range and respecting the interval steps constraints.\n */\nfunction determineStepSize(min, max, unit, capacity) {\n\tvar range = max - min;\n\tvar interval = INTERVALS[unit];\n\tvar milliseconds = interval.size;\n\tvar steps = interval.steps;\n\tvar i, ilen, factor;\n\n\tif (!steps) {\n\t\treturn Math.ceil(range / (capacity * milliseconds));\n\t}\n\n\tfor (i = 0, ilen = steps.length; i < ilen; ++i) {\n\t\tfactor = steps[i];\n\t\tif (Math.ceil(range / (milliseconds * factor)) <= capacity) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn factor;\n}\n\n/**\n * Figures out what unit results in an appropriate number of auto-generated ticks\n */\nfunction determineUnitForAutoTicks(minUnit, min, max, capacity) {\n\tvar ilen = UNITS.length;\n\tvar i, interval, factor;\n\n\tfor (i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) {\n\t\tinterval = INTERVALS[UNITS[i]];\n\t\tfactor = interval.steps ? interval.steps[interval.steps.length - 1] : MAX_INTEGER;\n\n\t\tif (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n\t\t\treturn UNITS[i];\n\t\t}\n\t}\n\n\treturn UNITS[ilen - 1];\n}\n\n/**\n * Figures out what unit to format a set of ticks with\n */\nfunction determineUnitForFormatting(ticks, minUnit, min, max) {\n\tvar duration = moment.duration(moment(max).diff(moment(min)));\n\tvar ilen = UNITS.length;\n\tvar i, unit;\n\n\tfor (i = ilen - 1; i >= UNITS.indexOf(minUnit); i--) {\n\t\tunit = UNITS[i];\n\t\tif (INTERVALS[unit].common && duration.as(unit) >= ticks.length) {\n\t\t\treturn unit;\n\t\t}\n\t}\n\n\treturn UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\n\nfunction determineMajorUnit(unit) {\n\tfor (var i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) {\n\t\tif (INTERVALS[UNITS[i]].common) {\n\t\t\treturn UNITS[i];\n\t\t}\n\t}\n}\n\n/**\n * Generates a maximum of `capacity` timestamps between min and max, rounded to the\n * `minor` unit, aligned on the `major` unit and using the given scale time `options`.\n * Important: this method can return ticks outside the min and max range, it's the\n * responsibility of the calling code to clamp values if needed.\n */\nfunction generate(min, max, capacity, options) {\n\tvar timeOpts = options.time;\n\tvar minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, capacity);\n\tvar major = determineMajorUnit(minor);\n\tvar stepSize = helpers.valueOrDefault(timeOpts.stepSize, timeOpts.unitStepSize);\n\tvar weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n\tvar majorTicksEnabled = options.ticks.major.enabled;\n\tvar interval = INTERVALS[minor];\n\tvar first = moment(min);\n\tvar last = moment(max);\n\tvar ticks = [];\n\tvar time;\n\n\tif (!stepSize) {\n\t\tstepSize = determineStepSize(min, max, minor, capacity);\n\t}\n\n\t// For 'week' unit, handle the first day of week option\n\tif (weekday) {\n\t\tfirst = first.isoWeekday(weekday);\n\t\tlast = last.isoWeekday(weekday);\n\t}\n\n\t// Align first/last ticks on unit\n\tfirst = first.startOf(weekday ? 'day' : minor);\n\tlast = last.startOf(weekday ? 'day' : minor);\n\n\t// Make sure that the last tick include max\n\tif (last < max) {\n\t\tlast.add(1, minor);\n\t}\n\n\ttime = moment(first);\n\n\tif (majorTicksEnabled && major && !weekday && !timeOpts.round) {\n\t\t// Align the first tick on the previous `minor` unit aligned on the `major` unit:\n\t\t// we first aligned time on the previous `major` unit then add the number of full\n\t\t// stepSize there is between first and the previous major time.\n\t\ttime.startOf(major);\n\t\ttime.add(~~((first - time) / (interval.size * stepSize)) * stepSize, minor);\n\t}\n\n\tfor (; time < last; time.add(stepSize, minor)) {\n\t\tticks.push(+time);\n\t}\n\n\tticks.push(+time);\n\n\treturn ticks;\n}\n\n/**\n * Returns the right and left offsets from edges in the form of {left, right}.\n * Offsets are added when the `offset` option is true.\n */\nfunction computeOffsets(table, ticks, min, max, options) {\n\tvar left = 0;\n\tvar right = 0;\n\tvar upper, lower;\n\n\tif (options.offset && ticks.length) {\n\t\tif (!options.time.min) {\n\t\t\tupper = ticks.length > 1 ? ticks[1] : max;\n\t\t\tlower = ticks[0];\n\t\t\tleft = (\n\t\t\t\tinterpolate(table, 'time', upper, 'pos') -\n\t\t\t\tinterpolate(table, 'time', lower, 'pos')\n\t\t\t) / 2;\n\t\t}\n\t\tif (!options.time.max) {\n\t\t\tupper = ticks[ticks.length - 1];\n\t\t\tlower = ticks.length > 1 ? ticks[ticks.length - 2] : min;\n\t\t\tright = (\n\t\t\t\tinterpolate(table, 'time', upper, 'pos') -\n\t\t\t\tinterpolate(table, 'time', lower, 'pos')\n\t\t\t) / 2;\n\t\t}\n\t}\n\n\treturn {left: left, right: right};\n}\n\nfunction ticksFromTimestamps(values, majorUnit) {\n\tvar ticks = [];\n\tvar i, ilen, value, major;\n\n\tfor (i = 0, ilen = values.length; i < ilen; ++i) {\n\t\tvalue = values[i];\n\t\tmajor = majorUnit ? value === +moment(value).startOf(majorUnit) : false;\n\n\t\tticks.push({\n\t\t\tvalue: value,\n\t\t\tmajor: major\n\t\t});\n\t}\n\n\treturn ticks;\n}\n\nfunction determineLabelFormat(data, timeOpts) {\n\tvar i, momentDate, hasTime;\n\tvar ilen = data.length;\n\n\t// find the label with the most parts (milliseconds, minutes, etc.)\n\t// format all labels with the same level of detail as the most specific label\n\tfor (i = 0; i < ilen; i++) {\n\t\tmomentDate = momentify(data[i], timeOpts);\n\t\tif (momentDate.millisecond() !== 0) {\n\t\t\treturn 'MMM D, YYYY h:mm:ss.SSS a';\n\t\t}\n\t\tif (momentDate.second() !== 0 || momentDate.minute() !== 0 || momentDate.hour() !== 0) {\n\t\t\thasTime = true;\n\t\t}\n\t}\n\tif (hasTime) {\n\t\treturn 'MMM D, YYYY h:mm:ss a';\n\t}\n\treturn 'MMM D, YYYY';\n}\n\nmodule.exports = function(Chart) {\n\n\tvar defaultConfig = {\n\t\tposition: 'bottom',\n\n\t\t/**\n\t\t * Data distribution along the scale:\n\t\t * - 'linear': data are spread according to their time (distances can vary),\n\t\t * - 'series': data are spread at the same distance from each other.\n\t\t * @see https://github.com/chartjs/Chart.js/pull/4507\n\t\t * @since 2.7.0\n\t\t */\n\t\tdistribution: 'linear',\n\n\t\t/**\n\t\t * Scale boundary strategy (bypassed by min/max time options)\n\t\t * - `data`: make sure data are fully visible, ticks outside are removed\n\t\t * - `ticks`: make sure ticks are fully visible, data outside are truncated\n\t\t * @see https://github.com/chartjs/Chart.js/pull/4556\n\t\t * @since 2.7.0\n\t\t */\n\t\tbounds: 'data',\n\n\t\ttime: {\n\t\t\tparser: false, // false == a pattern string from http://momentjs.com/docs/#/parsing/string-format/ or a custom callback that converts its argument to a moment\n\t\t\tformat: false, // DEPRECATED false == date objects, moment object, callback or a pattern string from http://momentjs.com/docs/#/parsing/string-format/\n\t\t\tunit: false, // false == automatic or override with week, month, year, etc.\n\t\t\tround: false, // none, or override with week, month, year, etc.\n\t\t\tdisplayFormat: false, // DEPRECATED\n\t\t\tisoWeekday: false, // override week start day - see http://momentjs.com/docs/#/get-set/iso-weekday/\n\t\t\tminUnit: 'millisecond',\n\n\t\t\t// defaults to unit's corresponding unitFormat below or override using pattern string from http://momentjs.com/docs/#/displaying/format/\n\t\t\tdisplayFormats: {\n\t\t\t\tmillisecond: 'h:mm:ss.SSS a', // 11:20:01.123 AM,\n\t\t\t\tsecond: 'h:mm:ss a', // 11:20:01 AM\n\t\t\t\tminute: 'h:mm a', // 11:20 AM\n\t\t\t\thour: 'hA', // 5PM\n\t\t\t\tday: 'MMM D', // Sep 4\n\t\t\t\tweek: 'll', // Week 46, or maybe \"[W]WW - YYYY\" ?\n\t\t\t\tmonth: 'MMM YYYY', // Sept 2015\n\t\t\t\tquarter: '[Q]Q - YYYY', // Q3\n\t\t\t\tyear: 'YYYY' // 2015\n\t\t\t},\n\t\t},\n\t\tticks: {\n\t\t\tautoSkip: false,\n\n\t\t\t/**\n\t\t\t * Ticks generation input values:\n\t\t\t * - 'auto': generates \"optimal\" ticks based on scale size and time options.\n\t\t\t * - 'data': generates ticks from data (including labels from data {t|x|y} objects).\n\t\t\t * - 'labels': generates ticks from user given `data.labels` values ONLY.\n\t\t\t * @see https://github.com/chartjs/Chart.js/pull/4507\n\t\t\t * @since 2.7.0\n\t\t\t */\n\t\t\tsource: 'auto',\n\n\t\t\tmajor: {\n\t\t\t\tenabled: false\n\t\t\t}\n\t\t}\n\t};\n\n\tvar TimeScale = Chart.Scale.extend({\n\t\tinitialize: function() {\n\t\t\tif (!moment) {\n\t\t\t\tthrow new Error('Chart.js - Moment.js could not be found! You must include it before Chart.js to use the time scale. Download at https://momentjs.com');\n\t\t\t}\n\n\t\t\tthis.mergeTicksOptions();\n\n\t\t\tChart.Scale.prototype.initialize.call(this);\n\t\t},\n\n\t\tupdate: function() {\n\t\t\tvar me = this;\n\t\t\tvar options = me.options;\n\n\t\t\t// DEPRECATIONS: output a message only one time per update\n\t\t\tif (options.time && options.time.format) {\n\t\t\t\tconsole.warn('options.time.format is deprecated and replaced by options.time.parser.');\n\t\t\t}\n\n\t\t\treturn Chart.Scale.prototype.update.apply(me, arguments);\n\t\t},\n\n\t\t/**\n\t\t * Allows data to be referenced via 't' attribute\n\t\t */\n\t\tgetRightValue: function(rawValue) {\n\t\t\tif (rawValue && rawValue.t !== undefined) {\n\t\t\t\trawValue = rawValue.t;\n\t\t\t}\n\t\t\treturn Chart.Scale.prototype.getRightValue.call(this, rawValue);\n\t\t},\n\n\t\tdetermineDataLimits: function() {\n\t\t\tvar me = this;\n\t\t\tvar chart = me.chart;\n\t\t\tvar timeOpts = me.options.time;\n\t\t\tvar unit = timeOpts.unit || 'day';\n\t\t\tvar min = MAX_INTEGER;\n\t\t\tvar max = MIN_INTEGER;\n\t\t\tvar timestamps = [];\n\t\t\tvar datasets = [];\n\t\t\tvar labels = [];\n\t\t\tvar i, j, ilen, jlen, data, timestamp;\n\n\t\t\t// Convert labels to timestamps\n\t\t\tfor (i = 0, ilen = chart.data.labels.length; i < ilen; ++i) {\n\t\t\t\tlabels.push(parse(chart.data.labels[i], me));\n\t\t\t}\n\n\t\t\t// Convert data to timestamps\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\n\t\t\t\tif (chart.isDatasetVisible(i)) {\n\t\t\t\t\tdata = chart.data.datasets[i].data;\n\n\t\t\t\t\t// Let's consider that all data have the same format.\n\t\t\t\t\tif (helpers.isObject(data[0])) {\n\t\t\t\t\t\tdatasets[i] = [];\n\n\t\t\t\t\t\tfor (j = 0, jlen = data.length; j < jlen; ++j) {\n\t\t\t\t\t\t\ttimestamp = parse(data[j], me);\n\t\t\t\t\t\t\ttimestamps.push(timestamp);\n\t\t\t\t\t\t\tdatasets[i][j] = timestamp;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttimestamps.push.apply(timestamps, labels);\n\t\t\t\t\t\tdatasets[i] = labels.slice(0);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tdatasets[i] = [];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (labels.length) {\n\t\t\t\t// Sort labels **after** data have been converted\n\t\t\t\tlabels = arrayUnique(labels).sort(sorter);\n\t\t\t\tmin = Math.min(min, labels[0]);\n\t\t\t\tmax = Math.max(max, labels[labels.length - 1]);\n\t\t\t}\n\n\t\t\tif (timestamps.length) {\n\t\t\t\ttimestamps = arrayUnique(timestamps).sort(sorter);\n\t\t\t\tmin = Math.min(min, timestamps[0]);\n\t\t\t\tmax = Math.max(max, timestamps[timestamps.length - 1]);\n\t\t\t}\n\n\t\t\tmin = parse(timeOpts.min, me) || min;\n\t\t\tmax = parse(timeOpts.max, me) || max;\n\n\t\t\t// In case there is no valid min/max, set limits based on unit time option\n\t\t\tmin = min === MAX_INTEGER ? +moment().startOf(unit) : min;\n\t\t\tmax = max === MIN_INTEGER ? +moment().endOf(unit) + 1 : max;\n\n\t\t\t// Make sure that max is strictly higher than min (required by the lookup table)\n\t\t\tme.min = Math.min(min, max);\n\t\t\tme.max = Math.max(min + 1, max);\n\n\t\t\t// PRIVATE\n\t\t\tme._horizontal = me.isHorizontal();\n\t\t\tme._table = [];\n\t\t\tme._timestamps = {\n\t\t\t\tdata: timestamps,\n\t\t\t\tdatasets: datasets,\n\t\t\t\tlabels: labels\n\t\t\t};\n\t\t},\n\n\t\tbuildTicks: function() {\n\t\t\tvar me = this;\n\t\t\tvar min = me.min;\n\t\t\tvar max = me.max;\n\t\t\tvar options = me.options;\n\t\t\tvar timeOpts = options.time;\n\t\t\tvar timestamps = [];\n\t\t\tvar ticks = [];\n\t\t\tvar i, ilen, timestamp;\n\n\t\t\tswitch (options.ticks.source) {\n\t\t\tcase 'data':\n\t\t\t\ttimestamps = me._timestamps.data;\n\t\t\t\tbreak;\n\t\t\tcase 'labels':\n\t\t\t\ttimestamps = me._timestamps.labels;\n\t\t\t\tbreak;\n\t\t\tcase 'auto':\n\t\t\tdefault:\n\t\t\t\ttimestamps = generate(min, max, me.getLabelCapacity(min), options);\n\t\t\t}\n\n\t\t\tif (options.bounds === 'ticks' && timestamps.length) {\n\t\t\t\tmin = timestamps[0];\n\t\t\t\tmax = timestamps[timestamps.length - 1];\n\t\t\t}\n\n\t\t\t// Enforce limits with user min/max options\n\t\t\tmin = parse(timeOpts.min, me) || min;\n\t\t\tmax = parse(timeOpts.max, me) || max;\n\n\t\t\t// Remove ticks outside the min/max range\n\t\t\tfor (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n\t\t\t\ttimestamp = timestamps[i];\n\t\t\t\tif (timestamp >= min && timestamp <= max) {\n\t\t\t\t\tticks.push(timestamp);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tme.min = min;\n\t\t\tme.max = max;\n\n\t\t\t// PRIVATE\n\t\t\tme._unit = timeOpts.unit || determineUnitForFormatting(ticks, timeOpts.minUnit, me.min, me.max);\n\t\t\tme._majorUnit = determineMajorUnit(me._unit);\n\t\t\tme._table = buildLookupTable(me._timestamps.data, min, max, options.distribution);\n\t\t\tme._offsets = computeOffsets(me._table, ticks, min, max, options);\n\t\t\tme._labelFormat = determineLabelFormat(me._timestamps.data, timeOpts);\n\n\t\t\treturn ticksFromTimestamps(ticks, me._majorUnit);\n\t\t},\n\n\t\tgetLabelForIndex: function(index, datasetIndex) {\n\t\t\tvar me = this;\n\t\t\tvar data = me.chart.data;\n\t\t\tvar timeOpts = me.options.time;\n\t\t\tvar label = data.labels && index < data.labels.length ? data.labels[index] : '';\n\t\t\tvar value = data.datasets[datasetIndex].data[index];\n\n\t\t\tif (helpers.isObject(value)) {\n\t\t\t\tlabel = me.getRightValue(value);\n\t\t\t}\n\t\t\tif (timeOpts.tooltipFormat) {\n\t\t\t\treturn momentify(label, timeOpts).format(timeOpts.tooltipFormat);\n\t\t\t}\n\t\t\tif (typeof label === 'string') {\n\t\t\t\treturn label;\n\t\t\t}\n\n\t\t\treturn momentify(label, timeOpts).format(me._labelFormat);\n\t\t},\n\n\t\t/**\n\t\t * Function to format an individual tick mark\n\t\t * @private\n\t\t */\n\t\ttickFormatFunction: function(tick, index, ticks, formatOverride) {\n\t\t\tvar me = this;\n\t\t\tvar options = me.options;\n\t\t\tvar time = tick.valueOf();\n\t\t\tvar formats = options.time.displayFormats;\n\t\t\tvar minorFormat = formats[me._unit];\n\t\t\tvar majorUnit = me._majorUnit;\n\t\t\tvar majorFormat = formats[majorUnit];\n\t\t\tvar majorTime = tick.clone().startOf(majorUnit).valueOf();\n\t\t\tvar majorTickOpts = options.ticks.major;\n\t\t\tvar major = majorTickOpts.enabled && majorUnit && majorFormat && time === majorTime;\n\t\t\tvar label = tick.format(formatOverride ? formatOverride : major ? majorFormat : minorFormat);\n\t\t\tvar tickOpts = major ? majorTickOpts : options.ticks.minor;\n\t\t\tvar formatter = helpers.valueOrDefault(tickOpts.callback, tickOpts.userCallback);\n\n\t\t\treturn formatter ? formatter(label, index, ticks) : label;\n\t\t},\n\n\t\tconvertTicksToLabels: function(ticks) {\n\t\t\tvar labels = [];\n\t\t\tvar i, ilen;\n\n\t\t\tfor (i = 0, ilen = ticks.length; i < ilen; ++i) {\n\t\t\t\tlabels.push(this.tickFormatFunction(moment(ticks[i].value), i, ticks));\n\t\t\t}\n\n\t\t\treturn labels;\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tgetPixelForOffset: function(time) {\n\t\t\tvar me = this;\n\t\t\tvar size = me._horizontal ? me.width : me.height;\n\t\t\tvar start = me._horizontal ? me.left : me.top;\n\t\t\tvar pos = interpolate(me._table, 'time', time, 'pos');\n\n\t\t\treturn start + size * (me._offsets.left + pos) / (me._offsets.left + 1 + me._offsets.right);\n\t\t},\n\n\t\tgetPixelForValue: function(value, index, datasetIndex) {\n\t\t\tvar me = this;\n\t\t\tvar time = null;\n\n\t\t\tif (index !== undefined && datasetIndex !== undefined) {\n\t\t\t\ttime = me._timestamps.datasets[datasetIndex][index];\n\t\t\t}\n\n\t\t\tif (time === null) {\n\t\t\t\ttime = parse(value, me);\n\t\t\t}\n\n\t\t\tif (time !== null) {\n\t\t\t\treturn me.getPixelForOffset(time);\n\t\t\t}\n\t\t},\n\n\t\tgetPixelForTick: function(index) {\n\t\t\tvar ticks = this.getTicks();\n\t\t\treturn index >= 0 && index < ticks.length ?\n\t\t\t\tthis.getPixelForOffset(ticks[index].value) :\n\t\t\t\tnull;\n\t\t},\n\n\t\tgetValueForPixel: function(pixel) {\n\t\t\tvar me = this;\n\t\t\tvar size = me._horizontal ? me.width : me.height;\n\t\t\tvar start = me._horizontal ? me.left : me.top;\n\t\t\tvar pos = (size ? (pixel - start) / size : 0) * (me._offsets.left + 1 + me._offsets.left) - me._offsets.right;\n\t\t\tvar time = interpolate(me._table, 'pos', pos, 'time');\n\n\t\t\treturn moment(time);\n\t\t},\n\n\t\t/**\n\t\t * Crude approximation of what the label width might be\n\t\t * @private\n\t\t */\n\t\tgetLabelWidth: function(label) {\n\t\t\tvar me = this;\n\t\t\tvar ticksOpts = me.options.ticks;\n\t\t\tvar tickLabelWidth = me.ctx.measureText(label).width;\n\t\t\tvar angle = helpers.toRadians(ticksOpts.maxRotation);\n\t\t\tvar cosRotation = Math.cos(angle);\n\t\t\tvar sinRotation = Math.sin(angle);\n\t\t\tvar tickFontSize = helpers.valueOrDefault(ticksOpts.fontSize, defaults.global.defaultFontSize);\n\n\t\t\treturn (tickLabelWidth * cosRotation) + (tickFontSize * sinRotation);\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tgetLabelCapacity: function(exampleTime) {\n\t\t\tvar me = this;\n\n\t\t\tvar formatOverride = me.options.time.displayFormats.millisecond;\t// Pick the longest format for guestimation\n\n\t\t\tvar exampleLabel = me.tickFormatFunction(moment(exampleTime), 0, [], formatOverride);\n\t\t\tvar tickLabelWidth = me.getLabelWidth(exampleLabel);\n\t\t\tvar innerWidth = me.isHorizontal() ? me.width : me.height;\n\n\t\t\tvar capacity = Math.floor(innerWidth / tickLabelWidth);\n\t\t\treturn capacity > 0 ? capacity : 1;\n\t\t}\n\t});\n\n\tChart.scaleService.registerScaleType('time', TimeScale, defaultConfig);\n};\n","'use strict';\n\nvar defaults = require('../core/core.defaults');\nvar elements = require('../elements/index');\nvar helpers = require('../helpers/index');\n\ndefaults._set('bar', {\n\thover: {\n\t\tmode: 'label'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'category',\n\n\t\t\t// Specific to Bar Controller\n\t\t\tcategoryPercentage: 0.8,\n\t\t\tbarPercentage: 0.9,\n\n\t\t\t// offset settings\n\t\t\toffset: true,\n\n\t\t\t// grid line settings\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\ndefaults._set('horizontalBar', {\n\thover: {\n\t\tmode: 'index',\n\t\taxis: 'y'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'linear',\n\t\t\tposition: 'bottom'\n\t\t}],\n\n\t\tyAxes: [{\n\t\t\tposition: 'left',\n\t\t\ttype: 'category',\n\n\t\t\t// Specific to Horizontal Bar Controller\n\t\t\tcategoryPercentage: 0.8,\n\t\t\tbarPercentage: 0.9,\n\n\t\t\t// offset settings\n\t\t\toffset: true,\n\n\t\t\t// grid line settings\n\t\t\tgridLines: {\n\t\t\t\toffsetGridLines: true\n\t\t\t}\n\t\t}]\n\t},\n\n\telements: {\n\t\trectangle: {\n\t\t\tborderSkipped: 'left'\n\t\t}\n\t},\n\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function(item, data) {\n\t\t\t\t// Pick first xLabel for now\n\t\t\t\tvar title = '';\n\n\t\t\t\tif (item.length > 0) {\n\t\t\t\t\tif (item[0].yLabel) {\n\t\t\t\t\t\ttitle = item[0].yLabel;\n\t\t\t\t\t} else if (data.labels.length > 0 && item[0].index < data.labels.length) {\n\t\t\t\t\t\ttitle = data.labels[item[0].index];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn title;\n\t\t\t},\n\n\t\t\tlabel: function(item, data) {\n\t\t\t\tvar datasetLabel = data.datasets[item.datasetIndex].label || '';\n\t\t\t\treturn datasetLabel + ': ' + item.xLabel;\n\t\t\t}\n\t\t},\n\t\tmode: 'index',\n\t\taxis: 'y'\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, 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.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 end extremity.\n\t\tprev = curr - (next === null ? ruler.end - curr : 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 - prev) / 2) * percent;\n\tsize = ((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\nmodule.exports = function(Chart) {\n\n\tChart.controllers.bar = Chart.DatasetController.extend({\n\n\t\tdataElementType: elements.Rectangle,\n\n\t\tinitialize: function() {\n\t\t\tvar me = this;\n\t\t\tvar meta;\n\n\t\t\tChart.DatasetController.prototype.initialize.apply(me, arguments);\n\n\t\t\tmeta = me.getMeta();\n\t\t\tmeta.stack = me.getDataset().stack;\n\t\t\tmeta.bar = true;\n\t\t},\n\n\t\tupdate: function(reset) {\n\t\t\tvar me = this;\n\t\t\tvar rects = me.getMeta().data;\n\t\t\tvar i, ilen;\n\n\t\t\tme._ruler = me.getRuler();\n\n\t\t\tfor (i = 0, ilen = rects.length; i < ilen; ++i) {\n\t\t\t\tme.updateElement(rects[i], i, reset);\n\t\t\t}\n\t\t},\n\n\t\tupdateElement: function(rectangle, index, reset) {\n\t\t\tvar me = this;\n\t\t\tvar chart = me.chart;\n\t\t\tvar meta = me.getMeta();\n\t\t\tvar dataset = me.getDataset();\n\t\t\tvar custom = rectangle.custom || {};\n\t\t\tvar rectangleOptions = chart.options.elements.rectangle;\n\n\t\t\trectangle._xScale = me.getScaleForId(meta.xAxisID);\n\t\t\trectangle._yScale = me.getScaleForId(meta.yAxisID);\n\t\t\trectangle._datasetIndex = me.index;\n\t\t\trectangle._index = index;\n\n\t\t\trectangle._model = {\n\t\t\t\tdatasetLabel: dataset.label,\n\t\t\t\tlabel: chart.data.labels[index],\n\t\t\t\tborderSkipped: custom.borderSkipped ? custom.borderSkipped : rectangleOptions.borderSkipped,\n\t\t\t\tbackgroundColor: custom.backgroundColor ? custom.backgroundColor : helpers.valueAtIndexOrDefault(dataset.backgroundColor, index, rectangleOptions.backgroundColor),\n\t\t\t\tborderColor: custom.borderColor ? custom.borderColor : helpers.valueAtIndexOrDefault(dataset.borderColor, index, rectangleOptions.borderColor),\n\t\t\t\tborderWidth: custom.borderWidth ? custom.borderWidth : helpers.valueAtIndexOrDefault(dataset.borderWidth, index, rectangleOptions.borderWidth)\n\t\t\t};\n\n\t\t\tme.updateElementGeometry(rectangle, index, reset);\n\n\t\t\trectangle.pivot();\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tupdateElementGeometry: function(rectangle, index, reset) {\n\t\t\tvar me = this;\n\t\t\tvar model = rectangle._model;\n\t\t\tvar vscale = me.getValueScale();\n\t\t\tvar base = vscale.getBasePixel();\n\t\t\tvar horizontal = vscale.isHorizontal();\n\t\t\tvar ruler = me._ruler || me.getRuler();\n\t\t\tvar vpixels = me.calculateBarValuePixels(me.index, index);\n\t\t\tvar ipixels = me.calculateBarIndexPixels(me.index, index, ruler);\n\n\t\t\tmodel.horizontal = horizontal;\n\t\t\tmodel.base = reset ? base : vpixels.base;\n\t\t\tmodel.x = horizontal ? reset ? base : vpixels.head : ipixels.center;\n\t\t\tmodel.y = horizontal ? ipixels.center : reset ? base : vpixels.head;\n\t\t\tmodel.height = horizontal ? ipixels.size : undefined;\n\t\t\tmodel.width = horizontal ? undefined : ipixels.size;\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tgetValueScaleId: function() {\n\t\t\treturn this.getMeta().yAxisID;\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tgetIndexScaleId: function() {\n\t\t\treturn this.getMeta().xAxisID;\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tgetValueScale: function() {\n\t\t\treturn this.getScaleForId(this.getValueScaleId());\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tgetIndexScale: function() {\n\t\t\treturn this.getScaleForId(this.getIndexScaleId());\n\t\t},\n\n\t\t/**\n\t\t * Returns the stacks based on groups and bar visibility.\n\t\t * @param {Number} [last] - The dataset index\n\t\t * @returns {Array} The stack list\n\t\t * @private\n\t\t */\n\t\t_getStacks: function(last) {\n\t\t\tvar me = this;\n\t\t\tvar chart = me.chart;\n\t\t\tvar scale = me.getIndexScale();\n\t\t\tvar stacked = scale.options.stacked;\n\t\t\tvar ilen = last === undefined ? chart.data.datasets.length : last + 1;\n\t\t\tvar stacks = [];\n\t\t\tvar i, meta;\n\n\t\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\t\tif (meta.bar && chart.isDatasetVisible(i) &&\n\t\t\t\t\t(stacked === false ||\n\t\t\t\t\t(stacked === true && stacks.indexOf(meta.stack) === -1) ||\n\t\t\t\t\t(stacked === undefined && (meta.stack === undefined || stacks.indexOf(meta.stack) === -1)))) {\n\t\t\t\t\tstacks.push(meta.stack);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn stacks;\n\t\t},\n\n\t\t/**\n\t\t * Returns the effective number of stacks based on groups and bar visibility.\n\t\t * @private\n\t\t */\n\t\tgetStackCount: function() {\n\t\t\treturn this._getStacks().length;\n\t\t},\n\n\t\t/**\n\t\t * Returns the stack index for the given dataset based on groups and bar visibility.\n\t\t * @param {Number} [datasetIndex] - The dataset index\n\t\t * @param {String} [name] - The stack name to find\n\t\t * @returns {Number} The stack index\n\t\t * @private\n\t\t */\n\t\tgetStackIndex: function(datasetIndex, name) {\n\t\t\tvar stacks = this._getStacks(datasetIndex);\n\t\t\tvar index = (name !== undefined)\n\t\t\t\t? stacks.indexOf(name)\n\t\t\t\t: -1; // indexOf returns -1 if element is not present\n\n\t\t\treturn (index === -1)\n\t\t\t\t? stacks.length - 1\n\t\t\t\t: index;\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tgetRuler: function() {\n\t\t\tvar me = this;\n\t\t\tvar scale = me.getIndexScale();\n\t\t\tvar stackCount = me.getStackCount();\n\t\t\tvar datasetIndex = me.index;\n\t\t\tvar isHorizontal = scale.isHorizontal();\n\t\t\tvar start = isHorizontal ? scale.left : scale.top;\n\t\t\tvar end = start + (isHorizontal ? scale.width : scale.height);\n\t\t\tvar pixels = [];\n\t\t\tvar i, ilen, min;\n\n\t\t\tfor (i = 0, ilen = me.getMeta().data.length; i < ilen; ++i) {\n\t\t\t\tpixels.push(scale.getPixelForValue(null, i, datasetIndex));\n\t\t\t}\n\n\t\t\tmin = helpers.isNullOrUndef(scale.options.barThickness)\n\t\t\t\t? computeMinSampleSize(scale, pixels)\n\t\t\t\t: -1;\n\n\t\t\treturn {\n\t\t\t\tmin: min,\n\t\t\t\tpixels: pixels,\n\t\t\t\tstart: start,\n\t\t\t\tend: end,\n\t\t\t\tstackCount: stackCount,\n\t\t\t\tscale: scale\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * Note: pixel values are not clamped to the scale area.\n\t\t * @private\n\t\t */\n\t\tcalculateBarValuePixels: function(datasetIndex, index) {\n\t\t\tvar me = this;\n\t\t\tvar chart = me.chart;\n\t\t\tvar meta = me.getMeta();\n\t\t\tvar scale = me.getValueScale();\n\t\t\tvar datasets = chart.data.datasets;\n\t\t\tvar value = scale.getRightValue(datasets[datasetIndex].data[index]);\n\t\t\tvar stacked = scale.options.stacked;\n\t\t\tvar stack = meta.stack;\n\t\t\tvar start = 0;\n\t\t\tvar i, imeta, ivalue, base, head, size;\n\n\t\t\tif (stacked || (stacked === undefined && stack !== undefined)) {\n\t\t\t\tfor (i = 0; i < datasetIndex; ++i) {\n\t\t\t\t\timeta = chart.getDatasetMeta(i);\n\n\t\t\t\t\tif (imeta.bar &&\n\t\t\t\t\t\timeta.stack === stack &&\n\t\t\t\t\t\timeta.controller.getValueScaleId() === scale.id &&\n\t\t\t\t\t\tchart.isDatasetVisible(i)) {\n\n\t\t\t\t\t\tivalue = scale.getRightValue(datasets[i].data[index]);\n\t\t\t\t\t\tif ((value < 0 && ivalue < 0) || (value >= 0 && ivalue > 0)) {\n\t\t\t\t\t\t\tstart += ivalue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tbase = scale.getPixelForValue(start);\n\t\t\thead = scale.getPixelForValue(start + value);\n\t\t\tsize = (head - base) / 2;\n\n\t\t\treturn {\n\t\t\t\tsize: size,\n\t\t\t\tbase: base,\n\t\t\t\thead: head,\n\t\t\t\tcenter: head + size / 2\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tcalculateBarIndexPixels: function(datasetIndex, index, ruler) {\n\t\t\tvar me = this;\n\t\t\tvar options = ruler.scale.options;\n\t\t\tvar range = options.barThickness === 'flex'\n\t\t\t\t? computeFlexCategoryTraits(index, ruler, options)\n\t\t\t\t: computeFitCategoryTraits(index, ruler, options);\n\n\t\t\tvar stackIndex = me.getStackIndex(datasetIndex, me.getMeta().stack);\n\t\t\tvar center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\n\t\t\tvar size = Math.min(\n\t\t\t\thelpers.valueOrDefault(options.maxBarThickness, Infinity),\n\t\t\t\trange.chunk * range.ratio);\n\n\t\t\treturn {\n\t\t\t\tbase: center - size / 2,\n\t\t\t\thead: center + size / 2,\n\t\t\t\tcenter: center,\n\t\t\t\tsize: size\n\t\t\t};\n\t\t},\n\n\t\tdraw: function() {\n\t\t\tvar me = this;\n\t\t\tvar chart = me.chart;\n\t\t\tvar scale = me.getValueScale();\n\t\t\tvar rects = me.getMeta().data;\n\t\t\tvar dataset = me.getDataset();\n\t\t\tvar ilen = rects.length;\n\t\t\tvar i = 0;\n\n\t\t\thelpers.canvas.clipArea(chart.ctx, chart.chartArea);\n\n\t\t\tfor (; i < ilen; ++i) {\n\t\t\t\tif (!isNaN(scale.getRightValue(dataset.data[i]))) {\n\t\t\t\t\trects[i].draw();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\thelpers.canvas.unclipArea(chart.ctx);\n\t\t},\n\n\t\tsetHoverStyle: function(rectangle) {\n\t\t\tvar dataset = this.chart.data.datasets[rectangle._datasetIndex];\n\t\t\tvar index = rectangle._index;\n\t\t\tvar custom = rectangle.custom || {};\n\t\t\tvar model = rectangle._model;\n\n\t\t\tmodel.backgroundColor = custom.hoverBackgroundColor ? custom.hoverBackgroundColor : helpers.valueAtIndexOrDefault(dataset.hoverBackgroundColor, index, helpers.getHoverColor(model.backgroundColor));\n\t\t\tmodel.borderColor = custom.hoverBorderColor ? custom.hoverBorderColor : helpers.valueAtIndexOrDefault(dataset.hoverBorderColor, index, helpers.getHoverColor(model.borderColor));\n\t\t\tmodel.borderWidth = custom.hoverBorderWidth ? custom.hoverBorderWidth : helpers.valueAtIndexOrDefault(dataset.hoverBorderWidth, index, model.borderWidth);\n\t\t},\n\n\t\tremoveHoverStyle: function(rectangle) {\n\t\t\tvar dataset = this.chart.data.datasets[rectangle._datasetIndex];\n\t\t\tvar index = rectangle._index;\n\t\t\tvar custom = rectangle.custom || {};\n\t\t\tvar model = rectangle._model;\n\t\t\tvar rectangleElementOptions = this.chart.options.elements.rectangle;\n\n\t\t\tmodel.backgroundColor = custom.backgroundColor ? custom.backgroundColor : helpers.valueAtIndexOrDefault(dataset.backgroundColor, index, rectangleElementOptions.backgroundColor);\n\t\t\tmodel.borderColor = custom.borderColor ? custom.borderColor : helpers.valueAtIndexOrDefault(dataset.borderColor, index, rectangleElementOptions.borderColor);\n\t\t\tmodel.borderWidth = custom.borderWidth ? custom.borderWidth : helpers.valueAtIndexOrDefault(dataset.borderWidth, index, rectangleElementOptions.borderWidth);\n\t\t}\n\t});\n\n\tChart.controllers.horizontalBar = Chart.controllers.bar.extend({\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tgetValueScaleId: function() {\n\t\t\treturn this.getMeta().xAxisID;\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tgetIndexScaleId: function() {\n\t\t\treturn this.getMeta().yAxisID;\n\t\t}\n\t});\n};\n","'use strict';\n\nvar defaults = require('../core/core.defaults');\nvar elements = require('../elements/index');\nvar helpers = require('../helpers/index');\n\ndefaults._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\n\nmodule.exports = function(Chart) {\n\n\tChart.controllers.bubble = Chart.DatasetController.extend({\n\t\t/**\n\t\t * @protected\n\t\t */\n\t\tdataElementType: elements.Point,\n\n\t\t/**\n\t\t * @protected\n\t\t */\n\t\tupdate: function(reset) {\n\t\t\tvar me = this;\n\t\t\tvar meta = me.getMeta();\n\t\t\tvar points = meta.data;\n\n\t\t\t// Update Points\n\t\t\thelpers.each(points, function(point, index) {\n\t\t\t\tme.updateElement(point, index, reset);\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * @protected\n\t\t */\n\t\tupdateElement: function(point, index, reset) {\n\t\t\tvar me = this;\n\t\t\tvar meta = me.getMeta();\n\t\t\tvar custom = point.custom || {};\n\t\t\tvar xScale = me.getScaleForId(meta.xAxisID);\n\t\t\tvar yScale = me.getScaleForId(meta.yAxisID);\n\t\t\tvar options = me._resolveElementOptions(point, index);\n\t\t\tvar data = me.getDataset().data[index];\n\t\t\tvar dsIndex = me.index;\n\n\t\t\tvar x = reset ? xScale.getPixelForDecimal(0.5) : xScale.getPixelForValue(typeof data === 'object' ? data : NaN, index, dsIndex);\n\t\t\tvar y = reset ? yScale.getBasePixel() : yScale.getPixelForValue(data, index, dsIndex);\n\n\t\t\tpoint._xScale = xScale;\n\t\t\tpoint._yScale = yScale;\n\t\t\tpoint._options = options;\n\t\t\tpoint._datasetIndex = dsIndex;\n\t\t\tpoint._index = index;\n\t\t\tpoint._model = {\n\t\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\t\tborderColor: options.borderColor,\n\t\t\t\tborderWidth: options.borderWidth,\n\t\t\t\thitRadius: options.hitRadius,\n\t\t\t\tpointStyle: options.pointStyle,\n\t\t\t\tradius: reset ? 0 : options.radius,\n\t\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\n\t\t\t\tx: x,\n\t\t\t\ty: y,\n\t\t\t};\n\n\t\t\tpoint.pivot();\n\t\t},\n\n\t\t/**\n\t\t * @protected\n\t\t */\n\t\tsetHoverStyle: function(point) {\n\t\t\tvar model = point._model;\n\t\t\tvar options = point._options;\n\n\t\t\tmodel.backgroundColor = helpers.valueOrDefault(options.hoverBackgroundColor, helpers.getHoverColor(options.backgroundColor));\n\t\t\tmodel.borderColor = helpers.valueOrDefault(options.hoverBorderColor, helpers.getHoverColor(options.borderColor));\n\t\t\tmodel.borderWidth = helpers.valueOrDefault(options.hoverBorderWidth, options.borderWidth);\n\t\t\tmodel.radius = options.radius + options.hoverRadius;\n\t\t},\n\n\t\t/**\n\t\t * @protected\n\t\t */\n\t\tremoveHoverStyle: function(point) {\n\t\t\tvar model = point._model;\n\t\t\tvar options = point._options;\n\n\t\t\tmodel.backgroundColor = options.backgroundColor;\n\t\t\tmodel.borderColor = options.borderColor;\n\t\t\tmodel.borderWidth = options.borderWidth;\n\t\t\tmodel.radius = options.radius;\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\t_resolveElementOptions: function(point, index) {\n\t\t\tvar me = this;\n\t\t\tvar chart = me.chart;\n\t\t\tvar datasets = chart.data.datasets;\n\t\t\tvar dataset = datasets[me.index];\n\t\t\tvar custom = point.custom || {};\n\t\t\tvar options = chart.options.elements.point;\n\t\t\tvar resolve = helpers.options.resolve;\n\t\t\tvar data = dataset.data[index];\n\t\t\tvar values = {};\n\t\t\tvar i, ilen, key;\n\n\t\t\t// Scriptable options\n\t\t\tvar context = {\n\t\t\t\tchart: chart,\n\t\t\t\tdataIndex: index,\n\t\t\t\tdataset: dataset,\n\t\t\t\tdatasetIndex: me.index\n\t\t\t};\n\n\t\t\tvar keys = [\n\t\t\t\t'backgroundColor',\n\t\t\t\t'borderColor',\n\t\t\t\t'borderWidth',\n\t\t\t\t'hoverBackgroundColor',\n\t\t\t\t'hoverBorderColor',\n\t\t\t\t'hoverBorderWidth',\n\t\t\t\t'hoverRadius',\n\t\t\t\t'hitRadius',\n\t\t\t\t'pointStyle'\n\t\t\t];\n\n\t\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\t\t\tkey = keys[i];\n\t\t\t\tvalues[key] = resolve([\n\t\t\t\t\tcustom[key],\n\t\t\t\t\tdataset[key],\n\t\t\t\t\toptions[key]\n\t\t\t\t], context, index);\n\t\t\t}\n\n\t\t\t// Custom radius resolution\n\t\t\tvalues.radius = resolve([\n\t\t\t\tcustom.radius,\n\t\t\t\tdata ? data.r : undefined,\n\t\t\t\tdataset.radius,\n\t\t\t\toptions.radius\n\t\t\t], context, index);\n\n\t\t\treturn values;\n\t\t}\n\t});\n};\n","'use strict';\n\nvar defaults = require('../core/core.defaults');\nvar elements = require('../elements/index');\nvar helpers = require('../helpers/index');\n\ndefaults._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('');\n\t\treturn text.join('');\n\t},\n\tlegend: {\n\t\tlabels: {\n\t\t\tgenerateLabels: function(chart) {\n\t\t\t\tvar data = chart.data;\n\t\t\t\tif (data.labels.length && data.datasets.length) {\n\t\t\t\t\treturn data.labels.map(function(label, i) {\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\n\t\t\t\t\t\tvar ds = data.datasets[0];\n\t\t\t\t\t\tvar arc = meta.data[i];\n\t\t\t\t\t\tvar custom = arc && arc.custom || {};\n\t\t\t\t\t\tvar valueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n\t\t\t\t\t\tvar arcOpts = chart.options.elements.arc;\n\t\t\t\t\t\tvar fill = custom.backgroundColor ? custom.backgroundColor : valueAtIndexOrDefault(ds.backgroundColor, i, arcOpts.backgroundColor);\n\t\t\t\t\t\tvar stroke = custom.borderColor ? custom.borderColor : valueAtIndexOrDefault(ds.borderColor, i, arcOpts.borderColor);\n\t\t\t\t\t\tvar bw = custom.borderWidth ? custom.borderWidth : valueAtIndexOrDefault(ds.borderWidth, i, arcOpts.borderWidth);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttext: label,\n\t\t\t\t\t\t\tfillStyle: fill,\n\t\t\t\t\t\t\tstrokeStyle: stroke,\n\t\t\t\t\t\t\tlineWidth: bw,\n\t\t\t\t\t\t\thidden: isNaN(ds.data[i]) || meta.data[i].hidden,\n\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\n\t\t\t\t\t\t\tindex: i\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t},\n\n\t\tonClick: function(e, legendItem) {\n\t\t\tvar index = legendItem.index;\n\t\t\tvar chart = this.chart;\n\t\t\tvar i, ilen, meta;\n\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\n\t\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\t\t// toggle visibility of index if exists\n\t\t\t\tif (meta.data[index]) {\n\t\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tchart.update();\n\t\t}\n\t},\n\n\t// The percentage of the chart that we cut out of the middle.\n\tcutoutPercentage: 50,\n\n\t// The rotation of the chart, where the first data arc begins.\n\trotation: Math.PI * -0.5,\n\n\t// The total circumference of the chart.\n\tcircumference: Math.PI * 2.0,\n\n\t// Need to override these to give a nice default\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\treturn '';\n\t\t\t},\n\t\t\tlabel: function(tooltipItem, data) {\n\t\t\t\tvar dataLabel = data.labels[tooltipItem.index];\n\t\t\t\tvar value = ': ' + data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];\n\n\t\t\t\tif (helpers.isArray(dataLabel)) {\n\t\t\t\t\t// show value on first line of multiline label\n\t\t\t\t\t// need to clone because we are changing the value\n\t\t\t\t\tdataLabel = dataLabel.slice();\n\t\t\t\t\tdataLabel[0] += value;\n\t\t\t\t} else {\n\t\t\t\t\tdataLabel += value;\n\t\t\t\t}\n\n\t\t\t\treturn dataLabel;\n\t\t\t}\n\t\t}\n\t}\n});\n\ndefaults._set('pie', helpers.clone(defaults.doughnut));\ndefaults._set('pie', {\n\tcutoutPercentage: 0\n});\n\nmodule.exports = function(Chart) {\n\n\tChart.controllers.doughnut = Chart.controllers.pie = Chart.DatasetController.extend({\n\n\t\tdataElementType: elements.Arc,\n\n\t\tlinkScales: helpers.noop,\n\n\t\t// Get index of the dataset in relation to the visible datasets. This allows determining the inner and outer radius correctly\n\t\tgetRingIndex: function(datasetIndex) {\n\t\t\tvar ringIndex = 0;\n\n\t\t\tfor (var j = 0; j < datasetIndex; ++j) {\n\t\t\t\tif (this.chart.isDatasetVisible(j)) {\n\t\t\t\t\t++ringIndex;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn ringIndex;\n\t\t},\n\n\t\tupdate: function(reset) {\n\t\t\tvar me = this;\n\t\t\tvar chart = me.chart;\n\t\t\tvar chartArea = chart.chartArea;\n\t\t\tvar opts = chart.options;\n\t\t\tvar arcOpts = opts.elements.arc;\n\t\t\tvar availableWidth = chartArea.right - chartArea.left - arcOpts.borderWidth;\n\t\t\tvar availableHeight = chartArea.bottom - chartArea.top - arcOpts.borderWidth;\n\t\t\tvar minSize = Math.min(availableWidth, availableHeight);\n\t\t\tvar offset = {x: 0, y: 0};\n\t\t\tvar meta = me.getMeta();\n\t\t\tvar cutoutPercentage = opts.cutoutPercentage;\n\t\t\tvar circumference = opts.circumference;\n\n\t\t\t// If the chart's circumference isn't a full circle, calculate minSize as a ratio of the width/height of the arc\n\t\t\tif (circumference < Math.PI * 2.0) {\n\t\t\t\tvar startAngle = opts.rotation % (Math.PI * 2.0);\n\t\t\t\tstartAngle += Math.PI * 2.0 * (startAngle >= Math.PI ? -1 : startAngle < -Math.PI ? 1 : 0);\n\t\t\t\tvar endAngle = startAngle + circumference;\n\t\t\t\tvar start = {x: Math.cos(startAngle), y: Math.sin(startAngle)};\n\t\t\t\tvar end = {x: Math.cos(endAngle), y: Math.sin(endAngle)};\n\t\t\t\tvar contains0 = (startAngle <= 0 && endAngle >= 0) || (startAngle <= Math.PI * 2.0 && Math.PI * 2.0 <= endAngle);\n\t\t\t\tvar contains90 = (startAngle <= Math.PI * 0.5 && Math.PI * 0.5 <= endAngle) || (startAngle <= Math.PI * 2.5 && Math.PI * 2.5 <= endAngle);\n\t\t\t\tvar contains180 = (startAngle <= -Math.PI && -Math.PI <= endAngle) || (startAngle <= Math.PI && Math.PI <= endAngle);\n\t\t\t\tvar contains270 = (startAngle <= -Math.PI * 0.5 && -Math.PI * 0.5 <= endAngle) || (startAngle <= Math.PI * 1.5 && Math.PI * 1.5 <= endAngle);\n\t\t\t\tvar cutout = cutoutPercentage / 100.0;\n\t\t\t\tvar min = {x: contains180 ? -1 : Math.min(start.x * (start.x < 0 ? 1 : cutout), end.x * (end.x < 0 ? 1 : cutout)), y: contains270 ? -1 : Math.min(start.y * (start.y < 0 ? 1 : cutout), end.y * (end.y < 0 ? 1 : cutout))};\n\t\t\t\tvar max = {x: contains0 ? 1 : Math.max(start.x * (start.x > 0 ? 1 : cutout), end.x * (end.x > 0 ? 1 : cutout)), y: contains90 ? 1 : Math.max(start.y * (start.y > 0 ? 1 : cutout), end.y * (end.y > 0 ? 1 : cutout))};\n\t\t\t\tvar size = {width: (max.x - min.x) * 0.5, height: (max.y - min.y) * 0.5};\n\t\t\t\tminSize = Math.min(availableWidth / size.width, availableHeight / size.height);\n\t\t\t\toffset = {x: (max.x + min.x) * -0.5, y: (max.y + min.y) * -0.5};\n\t\t\t}\n\n\t\t\tchart.borderWidth = me.getMaxBorderWidth(meta.data);\n\t\t\tchart.outerRadius = Math.max((minSize - chart.borderWidth) / 2, 0);\n\t\t\tchart.innerRadius = Math.max(cutoutPercentage ? (chart.outerRadius / 100) * (cutoutPercentage) : 0, 0);\n\t\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\n\t\t\tchart.offsetX = offset.x * chart.outerRadius;\n\t\t\tchart.offsetY = offset.y * chart.outerRadius;\n\n\t\t\tmeta.total = me.calculateTotal();\n\n\t\t\tme.outerRadius = chart.outerRadius - (chart.radiusLength * me.getRingIndex(me.index));\n\t\t\tme.innerRadius = Math.max(me.outerRadius - chart.radiusLength, 0);\n\n\t\t\thelpers.each(meta.data, function(arc, index) {\n\t\t\t\tme.updateElement(arc, index, reset);\n\t\t\t});\n\t\t},\n\n\t\tupdateElement: function(arc, index, reset) {\n\t\t\tvar me = this;\n\t\t\tvar chart = me.chart;\n\t\t\tvar chartArea = chart.chartArea;\n\t\t\tvar opts = chart.options;\n\t\t\tvar animationOpts = opts.animation;\n\t\t\tvar centerX = (chartArea.left + chartArea.right) / 2;\n\t\t\tvar centerY = (chartArea.top + chartArea.bottom) / 2;\n\t\t\tvar startAngle = opts.rotation; // non reset case handled later\n\t\t\tvar endAngle = opts.rotation; // non reset case handled later\n\t\t\tvar dataset = me.getDataset();\n\t\t\tvar circumference = reset && animationOpts.animateRotate ? 0 : arc.hidden ? 0 : me.calculateCircumference(dataset.data[index]) * (opts.circumference / (2.0 * Math.PI));\n\t\t\tvar innerRadius = reset && animationOpts.animateScale ? 0 : me.innerRadius;\n\t\t\tvar outerRadius = reset && animationOpts.animateScale ? 0 : me.outerRadius;\n\t\t\tvar valueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n\n\t\t\thelpers.extend(arc, {\n\t\t\t\t// Utility\n\t\t\t\t_datasetIndex: me.index,\n\t\t\t\t_index: index,\n\n\t\t\t\t// Desired view properties\n\t\t\t\t_model: {\n\t\t\t\t\tx: centerX + chart.offsetX,\n\t\t\t\t\ty: centerY + chart.offsetY,\n\t\t\t\t\tstartAngle: startAngle,\n\t\t\t\t\tendAngle: endAngle,\n\t\t\t\t\tcircumference: circumference,\n\t\t\t\t\touterRadius: outerRadius,\n\t\t\t\t\tinnerRadius: innerRadius,\n\t\t\t\t\tlabel: valueAtIndexOrDefault(dataset.label, index, chart.data.labels[index])\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tvar model = arc._model;\n\t\t\t// Resets the visual styles\n\t\t\tthis.removeHoverStyle(arc);\n\n\t\t\t// Set correct angles if not resetting\n\t\t\tif (!reset || !animationOpts.animateRotate) {\n\t\t\t\tif (index === 0) {\n\t\t\t\t\tmodel.startAngle = opts.rotation;\n\t\t\t\t} else {\n\t\t\t\t\tmodel.startAngle = me.getMeta().data[index - 1]._model.endAngle;\n\t\t\t\t}\n\n\t\t\t\tmodel.endAngle = model.startAngle + model.circumference;\n\t\t\t}\n\n\t\t\tarc.pivot();\n\t\t},\n\n\t\tremoveHoverStyle: function(arc) {\n\t\t\tChart.DatasetController.prototype.removeHoverStyle.call(this, arc, this.chart.options.elements.arc);\n\t\t},\n\n\t\tcalculateTotal: function() {\n\t\t\tvar dataset = this.getDataset();\n\t\t\tvar meta = this.getMeta();\n\t\t\tvar total = 0;\n\t\t\tvar value;\n\n\t\t\thelpers.each(meta.data, function(element, index) {\n\t\t\t\tvalue = dataset.data[index];\n\t\t\t\tif (!isNaN(value) && !element.hidden) {\n\t\t\t\t\ttotal += Math.abs(value);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t/* if (total === 0) {\n\t\t\t\ttotal = NaN;\n\t\t\t}*/\n\n\t\t\treturn total;\n\t\t},\n\n\t\tcalculateCircumference: function(value) {\n\t\t\tvar total = this.getMeta().total;\n\t\t\tif (total > 0 && !isNaN(value)) {\n\t\t\t\treturn (Math.PI * 2.0) * (Math.abs(value) / total);\n\t\t\t}\n\t\t\treturn 0;\n\t\t},\n\n\t\t// gets the max border or hover width to properly scale pie charts\n\t\tgetMaxBorderWidth: function(arcs) {\n\t\t\tvar max = 0;\n\t\t\tvar index = this.index;\n\t\t\tvar length = arcs.length;\n\t\t\tvar borderWidth;\n\t\t\tvar hoverWidth;\n\n\t\t\tfor (var i = 0; i < length; i++) {\n\t\t\t\tborderWidth = arcs[i]._model ? arcs[i]._model.borderWidth : 0;\n\t\t\t\thoverWidth = arcs[i]._chart ? arcs[i]._chart.config.data.datasets[index].hoverBorderWidth : 0;\n\n\t\t\t\tmax = borderWidth > max ? borderWidth : max;\n\t\t\t\tmax = hoverWidth > max ? hoverWidth : max;\n\t\t\t}\n\t\t\treturn max;\n\t\t}\n\t});\n};\n","'use strict';\n\nvar defaults = require('../core/core.defaults');\nvar elements = require('../elements/index');\nvar helpers = require('../helpers/index');\n\ndefaults._set('line', {\n\tshowLines: true,\n\tspanGaps: false,\n\n\thover: {\n\t\tmode: 'label'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'category',\n\t\t\tid: 'x-axis-0'\n\t\t}],\n\t\tyAxes: [{\n\t\t\ttype: 'linear',\n\t\t\tid: 'y-axis-0'\n\t\t}]\n\t}\n});\n\nmodule.exports = function(Chart) {\n\n\tfunction lineEnabled(dataset, options) {\n\t\treturn helpers.valueOrDefault(dataset.showLine, options.showLines);\n\t}\n\n\tChart.controllers.line = Chart.DatasetController.extend({\n\n\t\tdatasetElementType: elements.Line,\n\n\t\tdataElementType: elements.Point,\n\n\t\tupdate: function(reset) {\n\t\t\tvar me = this;\n\t\t\tvar meta = me.getMeta();\n\t\t\tvar line = meta.dataset;\n\t\t\tvar points = meta.data || [];\n\t\t\tvar options = me.chart.options;\n\t\t\tvar lineElementOptions = options.elements.line;\n\t\t\tvar scale = me.getScaleForId(meta.yAxisID);\n\t\t\tvar i, ilen, custom;\n\t\t\tvar dataset = me.getDataset();\n\t\t\tvar showLine = lineEnabled(dataset, options);\n\n\t\t\t// Update Line\n\t\t\tif (showLine) {\n\t\t\t\tcustom = line.custom || {};\n\n\t\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\n\t\t\t\tif ((dataset.tension !== undefined) && (dataset.lineTension === undefined)) {\n\t\t\t\t\tdataset.lineTension = dataset.tension;\n\t\t\t\t}\n\n\t\t\t\t// Utility\n\t\t\t\tline._scale = scale;\n\t\t\t\tline._datasetIndex = me.index;\n\t\t\t\t// Data\n\t\t\t\tline._children = points;\n\t\t\t\t// Model\n\t\t\t\tline._model = {\n\t\t\t\t\t// Appearance\n\t\t\t\t\t// The default behavior of lines is to break at null values, according\n\t\t\t\t\t// to https://github.com/chartjs/Chart.js/issues/2435#issuecomment-216718158\n\t\t\t\t\t// This option gives lines the ability to span gaps\n\t\t\t\t\tspanGaps: dataset.spanGaps ? dataset.spanGaps : options.spanGaps,\n\t\t\t\t\ttension: custom.tension ? custom.tension : helpers.valueOrDefault(dataset.lineTension, lineElementOptions.tension),\n\t\t\t\t\tbackgroundColor: custom.backgroundColor ? custom.backgroundColor : (dataset.backgroundColor || lineElementOptions.backgroundColor),\n\t\t\t\t\tborderWidth: custom.borderWidth ? custom.borderWidth : (dataset.borderWidth || lineElementOptions.borderWidth),\n\t\t\t\t\tborderColor: custom.borderColor ? custom.borderColor : (dataset.borderColor || lineElementOptions.borderColor),\n\t\t\t\t\tborderCapStyle: custom.borderCapStyle ? custom.borderCapStyle : (dataset.borderCapStyle || lineElementOptions.borderCapStyle),\n\t\t\t\t\tborderDash: custom.borderDash ? custom.borderDash : (dataset.borderDash || lineElementOptions.borderDash),\n\t\t\t\t\tborderDashOffset: custom.borderDashOffset ? custom.borderDashOffset : (dataset.borderDashOffset || lineElementOptions.borderDashOffset),\n\t\t\t\t\tborderJoinStyle: custom.borderJoinStyle ? custom.borderJoinStyle : (dataset.borderJoinStyle || lineElementOptions.borderJoinStyle),\n\t\t\t\t\tfill: custom.fill ? custom.fill : (dataset.fill !== undefined ? dataset.fill : lineElementOptions.fill),\n\t\t\t\t\tsteppedLine: custom.steppedLine ? custom.steppedLine : helpers.valueOrDefault(dataset.steppedLine, lineElementOptions.stepped),\n\t\t\t\t\tcubicInterpolationMode: custom.cubicInterpolationMode ? custom.cubicInterpolationMode : helpers.valueOrDefault(dataset.cubicInterpolationMode, lineElementOptions.cubicInterpolationMode),\n\t\t\t\t};\n\n\t\t\t\tline.pivot();\n\t\t\t}\n\n\t\t\t// Update Points\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\t\tme.updateElement(points[i], i, reset);\n\t\t\t}\n\n\t\t\tif (showLine && line._model.tension !== 0) {\n\t\t\t\tme.updateBezierControlPoints();\n\t\t\t}\n\n\t\t\t// Now pivot the point for animation\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\t\tpoints[i].pivot();\n\t\t\t}\n\t\t},\n\n\t\tgetPointBackgroundColor: function(point, index) {\n\t\t\tvar backgroundColor = this.chart.options.elements.point.backgroundColor;\n\t\t\tvar dataset = this.getDataset();\n\t\t\tvar custom = point.custom || {};\n\n\t\t\tif (custom.backgroundColor) {\n\t\t\t\tbackgroundColor = custom.backgroundColor;\n\t\t\t} else if (dataset.pointBackgroundColor) {\n\t\t\t\tbackgroundColor = helpers.valueAtIndexOrDefault(dataset.pointBackgroundColor, index, backgroundColor);\n\t\t\t} else if (dataset.backgroundColor) {\n\t\t\t\tbackgroundColor = dataset.backgroundColor;\n\t\t\t}\n\n\t\t\treturn backgroundColor;\n\t\t},\n\n\t\tgetPointBorderColor: function(point, index) {\n\t\t\tvar borderColor = this.chart.options.elements.point.borderColor;\n\t\t\tvar dataset = this.getDataset();\n\t\t\tvar custom = point.custom || {};\n\n\t\t\tif (custom.borderColor) {\n\t\t\t\tborderColor = custom.borderColor;\n\t\t\t} else if (dataset.pointBorderColor) {\n\t\t\t\tborderColor = helpers.valueAtIndexOrDefault(dataset.pointBorderColor, index, borderColor);\n\t\t\t} else if (dataset.borderColor) {\n\t\t\t\tborderColor = dataset.borderColor;\n\t\t\t}\n\n\t\t\treturn borderColor;\n\t\t},\n\n\t\tgetPointBorderWidth: function(point, index) {\n\t\t\tvar borderWidth = this.chart.options.elements.point.borderWidth;\n\t\t\tvar dataset = this.getDataset();\n\t\t\tvar custom = point.custom || {};\n\n\t\t\tif (!isNaN(custom.borderWidth)) {\n\t\t\t\tborderWidth = custom.borderWidth;\n\t\t\t} else if (!isNaN(dataset.pointBorderWidth) || helpers.isArray(dataset.pointBorderWidth)) {\n\t\t\t\tborderWidth = helpers.valueAtIndexOrDefault(dataset.pointBorderWidth, index, borderWidth);\n\t\t\t} else if (!isNaN(dataset.borderWidth)) {\n\t\t\t\tborderWidth = dataset.borderWidth;\n\t\t\t}\n\n\t\t\treturn borderWidth;\n\t\t},\n\n\t\tupdateElement: function(point, index, reset) {\n\t\t\tvar me = this;\n\t\t\tvar meta = me.getMeta();\n\t\t\tvar custom = point.custom || {};\n\t\t\tvar dataset = me.getDataset();\n\t\t\tvar datasetIndex = me.index;\n\t\t\tvar value = dataset.data[index];\n\t\t\tvar yScale = me.getScaleForId(meta.yAxisID);\n\t\t\tvar xScale = me.getScaleForId(meta.xAxisID);\n\t\t\tvar pointOptions = me.chart.options.elements.point;\n\t\t\tvar x, y;\n\n\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\n\t\t\tif ((dataset.radius !== undefined) && (dataset.pointRadius === undefined)) {\n\t\t\t\tdataset.pointRadius = dataset.radius;\n\t\t\t}\n\t\t\tif ((dataset.hitRadius !== undefined) && (dataset.pointHitRadius === undefined)) {\n\t\t\t\tdataset.pointHitRadius = dataset.hitRadius;\n\t\t\t}\n\n\t\t\tx = xScale.getPixelForValue(typeof value === 'object' ? value : NaN, index, datasetIndex);\n\t\t\ty = reset ? yScale.getBasePixel() : me.calculatePointY(value, index, datasetIndex);\n\n\t\t\t// Utility\n\t\t\tpoint._xScale = xScale;\n\t\t\tpoint._yScale = yScale;\n\t\t\tpoint._datasetIndex = datasetIndex;\n\t\t\tpoint._index = index;\n\n\t\t\t// Desired view properties\n\t\t\tpoint._model = {\n\t\t\t\tx: x,\n\t\t\t\ty: y,\n\t\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\n\t\t\t\t// Appearance\n\t\t\t\tradius: custom.radius || helpers.valueAtIndexOrDefault(dataset.pointRadius, index, pointOptions.radius),\n\t\t\t\tpointStyle: custom.pointStyle || helpers.valueAtIndexOrDefault(dataset.pointStyle, index, pointOptions.pointStyle),\n\t\t\t\tbackgroundColor: me.getPointBackgroundColor(point, index),\n\t\t\t\tborderColor: me.getPointBorderColor(point, index),\n\t\t\t\tborderWidth: me.getPointBorderWidth(point, index),\n\t\t\t\ttension: meta.dataset._model ? meta.dataset._model.tension : 0,\n\t\t\t\tsteppedLine: meta.dataset._model ? meta.dataset._model.steppedLine : false,\n\t\t\t\t// Tooltip\n\t\t\t\thitRadius: custom.hitRadius || helpers.valueAtIndexOrDefault(dataset.pointHitRadius, index, pointOptions.hitRadius)\n\t\t\t};\n\t\t},\n\n\t\tcalculatePointY: function(value, index, datasetIndex) {\n\t\t\tvar me = this;\n\t\t\tvar chart = me.chart;\n\t\t\tvar meta = me.getMeta();\n\t\t\tvar yScale = me.getScaleForId(meta.yAxisID);\n\t\t\tvar sumPos = 0;\n\t\t\tvar sumNeg = 0;\n\t\t\tvar i, ds, dsMeta;\n\n\t\t\tif (yScale.options.stacked) {\n\t\t\t\tfor (i = 0; i < datasetIndex; i++) {\n\t\t\t\t\tds = chart.data.datasets[i];\n\t\t\t\t\tdsMeta = chart.getDatasetMeta(i);\n\t\t\t\t\tif (dsMeta.type === 'line' && dsMeta.yAxisID === yScale.id && chart.isDatasetVisible(i)) {\n\t\t\t\t\t\tvar stackedRightValue = Number(yScale.getRightValue(ds.data[index]));\n\t\t\t\t\t\tif (stackedRightValue < 0) {\n\t\t\t\t\t\t\tsumNeg += stackedRightValue || 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsumPos += stackedRightValue || 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar rightValue = Number(yScale.getRightValue(value));\n\t\t\t\tif (rightValue < 0) {\n\t\t\t\t\treturn yScale.getPixelForValue(sumNeg + rightValue);\n\t\t\t\t}\n\t\t\t\treturn yScale.getPixelForValue(sumPos + rightValue);\n\t\t\t}\n\n\t\t\treturn yScale.getPixelForValue(value);\n\t\t},\n\n\t\tupdateBezierControlPoints: function() {\n\t\t\tvar me = this;\n\t\t\tvar meta = me.getMeta();\n\t\t\tvar area = me.chart.chartArea;\n\t\t\tvar points = (meta.data || []);\n\t\t\tvar i, ilen, point, model, controlPoints;\n\n\t\t\t// Only consider points that are drawn in case the spanGaps option is used\n\t\t\tif (meta.dataset._model.spanGaps) {\n\t\t\t\tpoints = points.filter(function(pt) {\n\t\t\t\t\treturn !pt._model.skip;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tfunction capControlPoint(pt, min, max) {\n\t\t\t\treturn Math.max(Math.min(pt, max), min);\n\t\t\t}\n\n\t\t\tif (meta.dataset._model.cubicInterpolationMode === 'monotone') {\n\t\t\t\thelpers.splineCurveMonotone(points);\n\t\t\t} else {\n\t\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\t\t\tpoint = points[i];\n\t\t\t\t\tmodel = point._model;\n\t\t\t\t\tcontrolPoints = helpers.splineCurve(\n\t\t\t\t\t\thelpers.previousItem(points, i)._model,\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\thelpers.nextItem(points, i)._model,\n\t\t\t\t\t\tmeta.dataset._model.tension\n\t\t\t\t\t);\n\t\t\t\t\tmodel.controlPointPreviousX = controlPoints.previous.x;\n\t\t\t\t\tmodel.controlPointPreviousY = controlPoints.previous.y;\n\t\t\t\t\tmodel.controlPointNextX = controlPoints.next.x;\n\t\t\t\t\tmodel.controlPointNextY = controlPoints.next.y;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (me.chart.options.elements.line.capBezierPoints) {\n\t\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\t\t\tmodel = points[i]._model;\n\t\t\t\t\tmodel.controlPointPreviousX = capControlPoint(model.controlPointPreviousX, area.left, area.right);\n\t\t\t\t\tmodel.controlPointPreviousY = capControlPoint(model.controlPointPreviousY, area.top, area.bottom);\n\t\t\t\t\tmodel.controlPointNextX = capControlPoint(model.controlPointNextX, area.left, area.right);\n\t\t\t\t\tmodel.controlPointNextY = capControlPoint(model.controlPointNextY, area.top, area.bottom);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tdraw: function() {\n\t\t\tvar me = this;\n\t\t\tvar chart = me.chart;\n\t\t\tvar meta = me.getMeta();\n\t\t\tvar points = meta.data || [];\n\t\t\tvar area = chart.chartArea;\n\t\t\tvar ilen = points.length;\n\t\t\tvar i = 0;\n\n\t\t\thelpers.canvas.clipArea(chart.ctx, area);\n\n\t\t\tif (lineEnabled(me.getDataset(), chart.options)) {\n\t\t\t\tmeta.dataset.draw();\n\t\t\t}\n\n\t\t\thelpers.canvas.unclipArea(chart.ctx);\n\n\t\t\t// Draw the points\n\t\t\tfor (; i < ilen; ++i) {\n\t\t\t\tpoints[i].draw(area);\n\t\t\t}\n\t\t},\n\n\t\tsetHoverStyle: function(point) {\n\t\t\t// Point\n\t\t\tvar dataset = this.chart.data.datasets[point._datasetIndex];\n\t\t\tvar index = point._index;\n\t\t\tvar custom = point.custom || {};\n\t\t\tvar model = point._model;\n\n\t\t\tmodel.radius = custom.hoverRadius || helpers.valueAtIndexOrDefault(dataset.pointHoverRadius, index, this.chart.options.elements.point.hoverRadius);\n\t\t\tmodel.backgroundColor = custom.hoverBackgroundColor || helpers.valueAtIndexOrDefault(dataset.pointHoverBackgroundColor, index, helpers.getHoverColor(model.backgroundColor));\n\t\t\tmodel.borderColor = custom.hoverBorderColor || helpers.valueAtIndexOrDefault(dataset.pointHoverBorderColor, index, helpers.getHoverColor(model.borderColor));\n\t\t\tmodel.borderWidth = custom.hoverBorderWidth || helpers.valueAtIndexOrDefault(dataset.pointHoverBorderWidth, index, model.borderWidth);\n\t\t},\n\n\t\tremoveHoverStyle: function(point) {\n\t\t\tvar me = this;\n\t\t\tvar dataset = me.chart.data.datasets[point._datasetIndex];\n\t\t\tvar index = point._index;\n\t\t\tvar custom = point.custom || {};\n\t\t\tvar model = point._model;\n\n\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\n\t\t\tif ((dataset.radius !== undefined) && (dataset.pointRadius === undefined)) {\n\t\t\t\tdataset.pointRadius = dataset.radius;\n\t\t\t}\n\n\t\t\tmodel.radius = custom.radius || helpers.valueAtIndexOrDefault(dataset.pointRadius, index, me.chart.options.elements.point.radius);\n\t\t\tmodel.backgroundColor = me.getPointBackgroundColor(point, index);\n\t\t\tmodel.borderColor = me.getPointBorderColor(point, index);\n\t\t\tmodel.borderWidth = me.getPointBorderWidth(point, index);\n\t\t}\n\t});\n};\n","'use strict';\n\nvar defaults = require('../core/core.defaults');\nvar elements = require('../elements/index');\nvar helpers = require('../helpers/index');\n\ndefaults._set('polarArea', {\n\tscale: {\n\t\ttype: 'radialLinear',\n\t\tangleLines: {\n\t\t\tdisplay: false\n\t\t},\n\t\tgridLines: {\n\t\t\tcircular: true\n\t\t},\n\t\tpointLabels: {\n\t\t\tdisplay: false\n\t\t},\n\t\tticks: {\n\t\t\tbeginAtZero: true\n\t\t}\n\t},\n\n\t// Boolean - Whether to animate the rotation of the chart\n\tanimation: {\n\t\tanimateRotate: true,\n\t\tanimateScale: true\n\t},\n\n\tstartAngle: -0.5 * Math.PI,\n\tlegendCallback: function(chart) {\n\t\tvar text = [];\n\t\ttext.push('');\n\t\treturn text.join('');\n\t},\n\tlegend: {\n\t\tlabels: {\n\t\t\tgenerateLabels: function(chart) {\n\t\t\t\tvar data = chart.data;\n\t\t\t\tif (data.labels.length && data.datasets.length) {\n\t\t\t\t\treturn data.labels.map(function(label, i) {\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\n\t\t\t\t\t\tvar ds = data.datasets[0];\n\t\t\t\t\t\tvar arc = meta.data[i];\n\t\t\t\t\t\tvar custom = arc.custom || {};\n\t\t\t\t\t\tvar valueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n\t\t\t\t\t\tvar arcOpts = chart.options.elements.arc;\n\t\t\t\t\t\tvar fill = custom.backgroundColor ? custom.backgroundColor : valueAtIndexOrDefault(ds.backgroundColor, i, arcOpts.backgroundColor);\n\t\t\t\t\t\tvar stroke = custom.borderColor ? custom.borderColor : valueAtIndexOrDefault(ds.borderColor, i, arcOpts.borderColor);\n\t\t\t\t\t\tvar bw = custom.borderWidth ? custom.borderWidth : valueAtIndexOrDefault(ds.borderWidth, i, arcOpts.borderWidth);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttext: label,\n\t\t\t\t\t\t\tfillStyle: fill,\n\t\t\t\t\t\t\tstrokeStyle: stroke,\n\t\t\t\t\t\t\tlineWidth: bw,\n\t\t\t\t\t\t\thidden: isNaN(ds.data[i]) || meta.data[i].hidden,\n\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\n\t\t\t\t\t\t\tindex: i\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t},\n\n\t\tonClick: function(e, legendItem) {\n\t\t\tvar index = legendItem.index;\n\t\t\tvar chart = this.chart;\n\t\t\tvar i, ilen, meta;\n\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\n\t\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\n\t\t\t}\n\n\t\t\tchart.update();\n\t\t}\n\t},\n\n\t// Need to override these to give a nice default\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\treturn '';\n\t\t\t},\n\t\t\tlabel: function(item, data) {\n\t\t\t\treturn data.labels[item.index] + ': ' + item.yLabel;\n\t\t\t}\n\t\t}\n\t}\n});\n\nmodule.exports = function(Chart) {\n\n\tChart.controllers.polarArea = Chart.DatasetController.extend({\n\n\t\tdataElementType: elements.Arc,\n\n\t\tlinkScales: helpers.noop,\n\n\t\tupdate: function(reset) {\n\t\t\tvar me = this;\n\t\t\tvar chart = me.chart;\n\t\t\tvar chartArea = chart.chartArea;\n\t\t\tvar meta = me.getMeta();\n\t\t\tvar opts = chart.options;\n\t\t\tvar arcOpts = opts.elements.arc;\n\t\t\tvar minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n\t\t\tchart.outerRadius = Math.max((minSize - arcOpts.borderWidth / 2) / 2, 0);\n\t\t\tchart.innerRadius = Math.max(opts.cutoutPercentage ? (chart.outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\n\t\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\n\n\t\t\tme.outerRadius = chart.outerRadius - (chart.radiusLength * me.index);\n\t\t\tme.innerRadius = me.outerRadius - chart.radiusLength;\n\n\t\t\tmeta.count = me.countVisibleElements();\n\n\t\t\thelpers.each(meta.data, function(arc, index) {\n\t\t\t\tme.updateElement(arc, index, reset);\n\t\t\t});\n\t\t},\n\n\t\tupdateElement: function(arc, index, reset) {\n\t\t\tvar me = this;\n\t\t\tvar chart = me.chart;\n\t\t\tvar dataset = me.getDataset();\n\t\t\tvar opts = chart.options;\n\t\t\tvar animationOpts = opts.animation;\n\t\t\tvar scale = chart.scale;\n\t\t\tvar labels = chart.data.labels;\n\n\t\t\tvar circumference = me.calculateCircumference(dataset.data[index]);\n\t\t\tvar centerX = scale.xCenter;\n\t\t\tvar centerY = scale.yCenter;\n\n\t\t\t// If there is NaN data before us, we need to calculate the starting angle correctly.\n\t\t\t// We could be way more efficient here, but its unlikely that the polar area chart will have a lot of data\n\t\t\tvar visibleCount = 0;\n\t\t\tvar meta = me.getMeta();\n\t\t\tfor (var i = 0; i < index; ++i) {\n\t\t\t\tif (!isNaN(dataset.data[i]) && !meta.data[i].hidden) {\n\t\t\t\t\t++visibleCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// var negHalfPI = -0.5 * Math.PI;\n\t\t\tvar datasetStartAngle = opts.startAngle;\n\t\t\tvar distance = arc.hidden ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\n\t\t\tvar startAngle = datasetStartAngle + (circumference * visibleCount);\n\t\t\tvar endAngle = startAngle + (arc.hidden ? 0 : circumference);\n\n\t\t\tvar resetRadius = animationOpts.animateScale ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\n\n\t\t\thelpers.extend(arc, {\n\t\t\t\t// Utility\n\t\t\t\t_datasetIndex: me.index,\n\t\t\t\t_index: index,\n\t\t\t\t_scale: scale,\n\n\t\t\t\t// Desired view properties\n\t\t\t\t_model: {\n\t\t\t\t\tx: centerX,\n\t\t\t\t\ty: centerY,\n\t\t\t\t\tinnerRadius: 0,\n\t\t\t\t\touterRadius: reset ? resetRadius : distance,\n\t\t\t\t\tstartAngle: reset && animationOpts.animateRotate ? datasetStartAngle : startAngle,\n\t\t\t\t\tendAngle: reset && animationOpts.animateRotate ? datasetStartAngle : endAngle,\n\t\t\t\t\tlabel: helpers.valueAtIndexOrDefault(labels, index, labels[index])\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Apply border and fill style\n\t\t\tme.removeHoverStyle(arc);\n\n\t\t\tarc.pivot();\n\t\t},\n\n\t\tremoveHoverStyle: function(arc) {\n\t\t\tChart.DatasetController.prototype.removeHoverStyle.call(this, arc, this.chart.options.elements.arc);\n\t\t},\n\n\t\tcountVisibleElements: function() {\n\t\t\tvar dataset = this.getDataset();\n\t\t\tvar meta = this.getMeta();\n\t\t\tvar count = 0;\n\n\t\t\thelpers.each(meta.data, function(element, index) {\n\t\t\t\tif (!isNaN(dataset.data[index]) && !element.hidden) {\n\t\t\t\t\tcount++;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn count;\n\t\t},\n\n\t\tcalculateCircumference: function(value) {\n\t\t\tvar count = this.getMeta().count;\n\t\t\tif (count > 0 && !isNaN(value)) {\n\t\t\t\treturn (2 * Math.PI) / count;\n\t\t\t}\n\t\t\treturn 0;\n\t\t}\n\t});\n};\n","'use strict';\n\nvar defaults = require('../core/core.defaults');\nvar elements = require('../elements/index');\nvar helpers = require('../helpers/index');\n\ndefaults._set('radar', {\n\tscale: {\n\t\ttype: 'radialLinear'\n\t},\n\telements: {\n\t\tline: {\n\t\t\ttension: 0 // no bezier in radar\n\t\t}\n\t}\n});\n\nmodule.exports = function(Chart) {\n\n\tChart.controllers.radar = Chart.DatasetController.extend({\n\n\t\tdatasetElementType: elements.Line,\n\n\t\tdataElementType: elements.Point,\n\n\t\tlinkScales: helpers.noop,\n\n\t\tupdate: function(reset) {\n\t\t\tvar me = this;\n\t\t\tvar meta = me.getMeta();\n\t\t\tvar line = meta.dataset;\n\t\t\tvar points = meta.data;\n\t\t\tvar custom = line.custom || {};\n\t\t\tvar dataset = me.getDataset();\n\t\t\tvar lineElementOptions = me.chart.options.elements.line;\n\t\t\tvar scale = me.chart.scale;\n\n\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\n\t\t\tif ((dataset.tension !== undefined) && (dataset.lineTension === undefined)) {\n\t\t\t\tdataset.lineTension = dataset.tension;\n\t\t\t}\n\n\t\t\thelpers.extend(meta.dataset, {\n\t\t\t\t// Utility\n\t\t\t\t_datasetIndex: me.index,\n\t\t\t\t_scale: scale,\n\t\t\t\t// Data\n\t\t\t\t_children: points,\n\t\t\t\t_loop: true,\n\t\t\t\t// Model\n\t\t\t\t_model: {\n\t\t\t\t\t// Appearance\n\t\t\t\t\ttension: custom.tension ? custom.tension : helpers.valueOrDefault(dataset.lineTension, lineElementOptions.tension),\n\t\t\t\t\tbackgroundColor: custom.backgroundColor ? custom.backgroundColor : (dataset.backgroundColor || lineElementOptions.backgroundColor),\n\t\t\t\t\tborderWidth: custom.borderWidth ? custom.borderWidth : (dataset.borderWidth || lineElementOptions.borderWidth),\n\t\t\t\t\tborderColor: custom.borderColor ? custom.borderColor : (dataset.borderColor || lineElementOptions.borderColor),\n\t\t\t\t\tfill: custom.fill ? custom.fill : (dataset.fill !== undefined ? dataset.fill : lineElementOptions.fill),\n\t\t\t\t\tborderCapStyle: custom.borderCapStyle ? custom.borderCapStyle : (dataset.borderCapStyle || lineElementOptions.borderCapStyle),\n\t\t\t\t\tborderDash: custom.borderDash ? custom.borderDash : (dataset.borderDash || lineElementOptions.borderDash),\n\t\t\t\t\tborderDashOffset: custom.borderDashOffset ? custom.borderDashOffset : (dataset.borderDashOffset || lineElementOptions.borderDashOffset),\n\t\t\t\t\tborderJoinStyle: custom.borderJoinStyle ? custom.borderJoinStyle : (dataset.borderJoinStyle || lineElementOptions.borderJoinStyle),\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tmeta.dataset.pivot();\n\n\t\t\t// Update Points\n\t\t\thelpers.each(points, function(point, index) {\n\t\t\t\tme.updateElement(point, index, reset);\n\t\t\t}, me);\n\n\t\t\t// Update bezier control points\n\t\t\tme.updateBezierControlPoints();\n\t\t},\n\t\tupdateElement: function(point, index, reset) {\n\t\t\tvar me = this;\n\t\t\tvar custom = point.custom || {};\n\t\t\tvar dataset = me.getDataset();\n\t\t\tvar scale = me.chart.scale;\n\t\t\tvar pointElementOptions = me.chart.options.elements.point;\n\t\t\tvar pointPosition = scale.getPointPositionForValue(index, dataset.data[index]);\n\n\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\n\t\t\tif ((dataset.radius !== undefined) && (dataset.pointRadius === undefined)) {\n\t\t\t\tdataset.pointRadius = dataset.radius;\n\t\t\t}\n\t\t\tif ((dataset.hitRadius !== undefined) && (dataset.pointHitRadius === undefined)) {\n\t\t\t\tdataset.pointHitRadius = dataset.hitRadius;\n\t\t\t}\n\n\t\t\thelpers.extend(point, {\n\t\t\t\t// Utility\n\t\t\t\t_datasetIndex: me.index,\n\t\t\t\t_index: index,\n\t\t\t\t_scale: scale,\n\n\t\t\t\t// Desired view properties\n\t\t\t\t_model: {\n\t\t\t\t\tx: reset ? scale.xCenter : pointPosition.x, // value not used in dataset scale, but we want a consistent API between scales\n\t\t\t\t\ty: reset ? scale.yCenter : pointPosition.y,\n\n\t\t\t\t\t// Appearance\n\t\t\t\t\ttension: custom.tension ? custom.tension : helpers.valueOrDefault(dataset.lineTension, me.chart.options.elements.line.tension),\n\t\t\t\t\tradius: custom.radius ? custom.radius : helpers.valueAtIndexOrDefault(dataset.pointRadius, index, pointElementOptions.radius),\n\t\t\t\t\tbackgroundColor: custom.backgroundColor ? custom.backgroundColor : helpers.valueAtIndexOrDefault(dataset.pointBackgroundColor, index, pointElementOptions.backgroundColor),\n\t\t\t\t\tborderColor: custom.borderColor ? custom.borderColor : helpers.valueAtIndexOrDefault(dataset.pointBorderColor, index, pointElementOptions.borderColor),\n\t\t\t\t\tborderWidth: custom.borderWidth ? custom.borderWidth : helpers.valueAtIndexOrDefault(dataset.pointBorderWidth, index, pointElementOptions.borderWidth),\n\t\t\t\t\tpointStyle: custom.pointStyle ? custom.pointStyle : helpers.valueAtIndexOrDefault(dataset.pointStyle, index, pointElementOptions.pointStyle),\n\n\t\t\t\t\t// Tooltip\n\t\t\t\t\thitRadius: custom.hitRadius ? custom.hitRadius : helpers.valueAtIndexOrDefault(dataset.pointHitRadius, index, pointElementOptions.hitRadius)\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tpoint._model.skip = custom.skip ? custom.skip : (isNaN(point._model.x) || isNaN(point._model.y));\n\t\t},\n\t\tupdateBezierControlPoints: function() {\n\t\t\tvar chartArea = this.chart.chartArea;\n\t\t\tvar meta = this.getMeta();\n\n\t\t\thelpers.each(meta.data, function(point, index) {\n\t\t\t\tvar model = point._model;\n\t\t\t\tvar controlPoints = helpers.splineCurve(\n\t\t\t\t\thelpers.previousItem(meta.data, index, true)._model,\n\t\t\t\t\tmodel,\n\t\t\t\t\thelpers.nextItem(meta.data, index, true)._model,\n\t\t\t\t\tmodel.tension\n\t\t\t\t);\n\n\t\t\t\t// Prevent the bezier going outside of the bounds of the graph\n\t\t\t\tmodel.controlPointPreviousX = Math.max(Math.min(controlPoints.previous.x, chartArea.right), chartArea.left);\n\t\t\t\tmodel.controlPointPreviousY = Math.max(Math.min(controlPoints.previous.y, chartArea.bottom), chartArea.top);\n\n\t\t\t\tmodel.controlPointNextX = Math.max(Math.min(controlPoints.next.x, chartArea.right), chartArea.left);\n\t\t\t\tmodel.controlPointNextY = Math.max(Math.min(controlPoints.next.y, chartArea.bottom), chartArea.top);\n\n\t\t\t\t// Now pivot the point for animation\n\t\t\t\tpoint.pivot();\n\t\t\t});\n\t\t},\n\n\t\tsetHoverStyle: function(point) {\n\t\t\t// Point\n\t\t\tvar dataset = this.chart.data.datasets[point._datasetIndex];\n\t\t\tvar custom = point.custom || {};\n\t\t\tvar index = point._index;\n\t\t\tvar model = point._model;\n\n\t\t\tmodel.radius = custom.hoverRadius ? custom.hoverRadius : helpers.valueAtIndexOrDefault(dataset.pointHoverRadius, index, this.chart.options.elements.point.hoverRadius);\n\t\t\tmodel.backgroundColor = custom.hoverBackgroundColor ? custom.hoverBackgroundColor : helpers.valueAtIndexOrDefault(dataset.pointHoverBackgroundColor, index, helpers.getHoverColor(model.backgroundColor));\n\t\t\tmodel.borderColor = custom.hoverBorderColor ? custom.hoverBorderColor : helpers.valueAtIndexOrDefault(dataset.pointHoverBorderColor, index, helpers.getHoverColor(model.borderColor));\n\t\t\tmodel.borderWidth = custom.hoverBorderWidth ? custom.hoverBorderWidth : helpers.valueAtIndexOrDefault(dataset.pointHoverBorderWidth, index, model.borderWidth);\n\t\t},\n\n\t\tremoveHoverStyle: function(point) {\n\t\t\tvar dataset = this.chart.data.datasets[point._datasetIndex];\n\t\t\tvar custom = point.custom || {};\n\t\t\tvar index = point._index;\n\t\t\tvar model = point._model;\n\t\t\tvar pointElementOptions = this.chart.options.elements.point;\n\n\t\t\tmodel.radius = custom.radius ? custom.radius : helpers.valueAtIndexOrDefault(dataset.pointRadius, index, pointElementOptions.radius);\n\t\t\tmodel.backgroundColor = custom.backgroundColor ? custom.backgroundColor : helpers.valueAtIndexOrDefault(dataset.pointBackgroundColor, index, pointElementOptions.backgroundColor);\n\t\t\tmodel.borderColor = custom.borderColor ? custom.borderColor : helpers.valueAtIndexOrDefault(dataset.pointBorderColor, index, pointElementOptions.borderColor);\n\t\t\tmodel.borderWidth = custom.borderWidth ? custom.borderWidth : helpers.valueAtIndexOrDefault(dataset.pointBorderWidth, index, pointElementOptions.borderWidth);\n\t\t}\n\t});\n};\n","'use strict';\n\nvar defaults = require('../core/core.defaults');\n\ndefaults._set('scatter', {\n\thover: {\n\t\tmode: 'single'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\tid: 'x-axis-1', // need an ID so datasets can reference the scale\n\t\t\ttype: 'linear', // scatter should not use a category axis\n\t\t\tposition: 'bottom'\n\t\t}],\n\t\tyAxes: [{\n\t\t\tid: 'y-axis-1',\n\t\t\ttype: 'linear',\n\t\t\tposition: 'left'\n\t\t}]\n\t},\n\n\tshowLines: false,\n\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\treturn ''; // doesn't make sense for scatter since data are formatted as a point\n\t\t\t},\n\t\t\tlabel: function(item) {\n\t\t\t\treturn '(' + item.xLabel + ', ' + item.yLabel + ')';\n\t\t\t}\n\t\t}\n\t}\n});\n\nmodule.exports = function(Chart) {\n\n\t// Scatter charts use line controllers\n\tChart.controllers.scatter = Chart.controllers.line;\n\n};\n","'use strict';\n\nmodule.exports = function(Chart) {\n\n\tChart.Bar = function(context, config) {\n\t\tconfig.type = 'bar';\n\n\t\treturn new Chart(context, config);\n\t};\n\n};\n","'use strict';\n\nmodule.exports = function(Chart) {\n\n\tChart.Bubble = function(context, config) {\n\t\tconfig.type = 'bubble';\n\t\treturn new Chart(context, config);\n\t};\n\n};\n","'use strict';\n\nmodule.exports = function(Chart) {\n\n\tChart.Doughnut = function(context, config) {\n\t\tconfig.type = 'doughnut';\n\n\t\treturn new Chart(context, config);\n\t};\n\n};\n","'use strict';\n\nmodule.exports = function(Chart) {\n\n\tChart.Line = function(context, config) {\n\t\tconfig.type = 'line';\n\n\t\treturn new Chart(context, config);\n\t};\n\n};\n","'use strict';\n\nmodule.exports = function(Chart) {\n\n\tChart.PolarArea = function(context, config) {\n\t\tconfig.type = 'polarArea';\n\n\t\treturn new Chart(context, config);\n\t};\n\n};\n","'use strict';\n\nmodule.exports = function(Chart) {\n\n\tChart.Radar = function(context, config) {\n\t\tconfig.type = 'radar';\n\n\t\treturn new Chart(context, config);\n\t};\n\n};\n","'use strict';\n\nmodule.exports = function(Chart) {\n\tChart.Scatter = function(context, config) {\n\t\tconfig.type = 'scatter';\n\t\treturn new Chart(context, config);\n\t};\n};\n","'use strict';\n\nmodule.exports = {};\nmodule.exports.filler = require('./plugin.filler');\nmodule.exports.legend = require('./plugin.legend');\nmodule.exports.title = require('./plugin.title');\n","/**\n * Plugin based on discussion from the following Chart.js issues:\n * @see https://github.com/chartjs/Chart.js/issues/2380#issuecomment-279961569\n * @see https://github.com/chartjs/Chart.js/issues/2440#issuecomment-256461897\n */\n\n'use strict';\n\nvar defaults = require('../core/core.defaults');\nvar elements = require('../elements/index');\nvar helpers = require('../helpers/index');\n\ndefaults._set('global', {\n\tplugins: {\n\t\tfiller: {\n\t\t\tpropagate: true\n\t\t}\n\t}\n});\n\nvar mappers = {\n\tdataset: function(source) {\n\t\tvar index = source.fill;\n\t\tvar chart = source.chart;\n\t\tvar meta = chart.getDatasetMeta(index);\n\t\tvar visible = meta && chart.isDatasetVisible(index);\n\t\tvar points = (visible && meta.dataset._children) || [];\n\t\tvar length = points.length || 0;\n\n\t\treturn !length ? null : function(point, i) {\n\t\t\treturn (i < length && points[i]._view) || null;\n\t\t};\n\t},\n\n\tboundary: function(source) {\n\t\tvar boundary = source.boundary;\n\t\tvar x = boundary ? boundary.x : null;\n\t\tvar y = boundary ? boundary.y : null;\n\n\t\treturn function(point) {\n\t\t\treturn {\n\t\t\t\tx: x === null ? point.x : x,\n\t\t\t\ty: y === null ? point.y : y,\n\t\t\t};\n\t\t};\n\t}\n};\n\n// @todo if (fill[0] === '#')\nfunction decodeFill(el, index, count) {\n\tvar model = el._model || {};\n\tvar fill = model.fill;\n\tvar target;\n\n\tif (fill === undefined) {\n\t\tfill = !!model.backgroundColor;\n\t}\n\n\tif (fill === false || fill === null) {\n\t\treturn false;\n\t}\n\n\tif (fill === true) {\n\t\treturn 'origin';\n\t}\n\n\ttarget = parseFloat(fill, 10);\n\tif (isFinite(target) && Math.floor(target) === target) {\n\t\tif (fill[0] === '-' || fill[0] === '+') {\n\t\t\ttarget = index + target;\n\t\t}\n\n\t\tif (target === index || target < 0 || target >= count) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn target;\n\t}\n\n\tswitch (fill) {\n\t// compatibility\n\tcase 'bottom':\n\t\treturn 'start';\n\tcase 'top':\n\t\treturn 'end';\n\tcase 'zero':\n\t\treturn 'origin';\n\t// supported boundaries\n\tcase 'origin':\n\tcase 'start':\n\tcase 'end':\n\t\treturn fill;\n\t// invalid fill values\n\tdefault:\n\t\treturn false;\n\t}\n}\n\nfunction computeBoundary(source) {\n\tvar model = source.el._model || {};\n\tvar scale = source.el._scale || {};\n\tvar fill = source.fill;\n\tvar target = null;\n\tvar horizontal;\n\n\tif (isFinite(fill)) {\n\t\treturn null;\n\t}\n\n\t// Backward compatibility: until v3, we still need to support boundary values set on\n\t// the model (scaleTop, scaleBottom and scaleZero) because some external plugins and\n\t// controllers might still use it (e.g. the Smith chart).\n\n\tif (fill === 'start') {\n\t\ttarget = model.scaleBottom === undefined ? scale.bottom : model.scaleBottom;\n\t} else if (fill === 'end') {\n\t\ttarget = model.scaleTop === undefined ? scale.top : model.scaleTop;\n\t} else if (model.scaleZero !== undefined) {\n\t\ttarget = model.scaleZero;\n\t} else if (scale.getBasePosition) {\n\t\ttarget = scale.getBasePosition();\n\t} else if (scale.getBasePixel) {\n\t\ttarget = scale.getBasePixel();\n\t}\n\n\tif (target !== undefined && target !== null) {\n\t\tif (target.x !== undefined && target.y !== undefined) {\n\t\t\treturn target;\n\t\t}\n\n\t\tif (typeof target === 'number' && isFinite(target)) {\n\t\t\thorizontal = scale.isHorizontal();\n\t\t\treturn {\n\t\t\t\tx: horizontal ? target : null,\n\t\t\t\ty: horizontal ? null : target\n\t\t\t};\n\t\t}\n\t}\n\n\treturn null;\n}\n\nfunction resolveTarget(sources, index, propagate) {\n\tvar source = sources[index];\n\tvar fill = source.fill;\n\tvar visited = [index];\n\tvar target;\n\n\tif (!propagate) {\n\t\treturn fill;\n\t}\n\n\twhile (fill !== false && visited.indexOf(fill) === -1) {\n\t\tif (!isFinite(fill)) {\n\t\t\treturn fill;\n\t\t}\n\n\t\ttarget = sources[fill];\n\t\tif (!target) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (target.visible) {\n\t\t\treturn fill;\n\t\t}\n\n\t\tvisited.push(fill);\n\t\tfill = target.fill;\n\t}\n\n\treturn false;\n}\n\nfunction createMapper(source) {\n\tvar fill = source.fill;\n\tvar type = 'dataset';\n\n\tif (fill === false) {\n\t\treturn null;\n\t}\n\n\tif (!isFinite(fill)) {\n\t\ttype = 'boundary';\n\t}\n\n\treturn mappers[type](source);\n}\n\nfunction isDrawable(point) {\n\treturn point && !point.skip;\n}\n\nfunction drawArea(ctx, curve0, curve1, len0, len1) {\n\tvar i;\n\n\tif (!len0 || !len1) {\n\t\treturn;\n\t}\n\n\t// building first area curve (normal)\n\tctx.moveTo(curve0[0].x, curve0[0].y);\n\tfor (i = 1; i < len0; ++i) {\n\t\thelpers.canvas.lineTo(ctx, curve0[i - 1], curve0[i]);\n\t}\n\n\t// joining the two area curves\n\tctx.lineTo(curve1[len1 - 1].x, curve1[len1 - 1].y);\n\n\t// building opposite area curve (reverse)\n\tfor (i = len1 - 1; i > 0; --i) {\n\t\thelpers.canvas.lineTo(ctx, curve1[i], curve1[i - 1], true);\n\t}\n}\n\nfunction doFill(ctx, points, mapper, view, color, loop) {\n\tvar count = points.length;\n\tvar span = view.spanGaps;\n\tvar curve0 = [];\n\tvar curve1 = [];\n\tvar len0 = 0;\n\tvar len1 = 0;\n\tvar i, ilen, index, p0, p1, d0, d1;\n\n\tctx.beginPath();\n\n\tfor (i = 0, ilen = (count + !!loop); i < ilen; ++i) {\n\t\tindex = i % count;\n\t\tp0 = points[index]._view;\n\t\tp1 = mapper(p0, index, view);\n\t\td0 = isDrawable(p0);\n\t\td1 = isDrawable(p1);\n\n\t\tif (d0 && d1) {\n\t\t\tlen0 = curve0.push(p0);\n\t\t\tlen1 = curve1.push(p1);\n\t\t} else if (len0 && len1) {\n\t\t\tif (!span) {\n\t\t\t\tdrawArea(ctx, curve0, curve1, len0, len1);\n\t\t\t\tlen0 = len1 = 0;\n\t\t\t\tcurve0 = [];\n\t\t\t\tcurve1 = [];\n\t\t\t} else {\n\t\t\t\tif (d0) {\n\t\t\t\t\tcurve0.push(p0);\n\t\t\t\t}\n\t\t\t\tif (d1) {\n\t\t\t\t\tcurve1.push(p1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tdrawArea(ctx, curve0, curve1, len0, len1);\n\n\tctx.closePath();\n\tctx.fillStyle = color;\n\tctx.fill();\n}\n\nmodule.exports = {\n\tid: 'filler',\n\n\tafterDatasetsUpdate: function(chart, options) {\n\t\tvar count = (chart.data.datasets || []).length;\n\t\tvar propagate = options.propagate;\n\t\tvar sources = [];\n\t\tvar meta, i, el, source;\n\n\t\tfor (i = 0; i < count; ++i) {\n\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\tel = meta.dataset;\n\t\t\tsource = null;\n\n\t\t\tif (el && el._model && el instanceof elements.Line) {\n\t\t\t\tsource = {\n\t\t\t\t\tvisible: chart.isDatasetVisible(i),\n\t\t\t\t\tfill: decodeFill(el, i, count),\n\t\t\t\t\tchart: chart,\n\t\t\t\t\tel: el\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tmeta.$filler = source;\n\t\t\tsources.push(source);\n\t\t}\n\n\t\tfor (i = 0; i < count; ++i) {\n\t\t\tsource = sources[i];\n\t\t\tif (!source) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tsource.fill = resolveTarget(sources, i, propagate);\n\t\t\tsource.boundary = computeBoundary(source);\n\t\t\tsource.mapper = createMapper(source);\n\t\t}\n\t},\n\n\tbeforeDatasetDraw: function(chart, args) {\n\t\tvar meta = args.meta.$filler;\n\t\tif (!meta) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar ctx = chart.ctx;\n\t\tvar el = meta.el;\n\t\tvar view = el._view;\n\t\tvar points = el._children || [];\n\t\tvar mapper = meta.mapper;\n\t\tvar color = view.backgroundColor || defaults.global.defaultColor;\n\n\t\tif (mapper && color && points.length) {\n\t\t\thelpers.canvas.clipArea(ctx, chart.chartArea);\n\t\t\tdoFill(ctx, points, mapper, view, color, el._loop);\n\t\t\thelpers.canvas.unclipArea(ctx);\n\t\t}\n\t}\n};\n","'use strict';\n\nvar defaults = require('../core/core.defaults');\nvar Element = require('../core/core.element');\nvar helpers = require('../helpers/index');\nvar layouts = require('../core/core.layouts');\n\nvar noop = helpers.noop;\n\ndefaults._set('global', {\n\tlegend: {\n\t\tdisplay: true,\n\t\tposition: 'top',\n\t\tfullWidth: true,\n\t\treverse: false,\n\t\tweight: 1000,\n\n\t\t// a callback that will handle\n\t\tonClick: function(e, legendItem) {\n\t\t\tvar index = legendItem.datasetIndex;\n\t\t\tvar ci = this.chart;\n\t\t\tvar meta = ci.getDatasetMeta(index);\n\n\t\t\t// See controller.isDatasetVisible comment\n\t\t\tmeta.hidden = meta.hidden === null ? !ci.data.datasets[index].hidden : null;\n\n\t\t\t// We hid a dataset ... rerender the chart\n\t\t\tci.update();\n\t\t},\n\n\t\tonHover: null,\n\n\t\tlabels: {\n\t\t\tboxWidth: 40,\n\t\t\tpadding: 10,\n\t\t\t// Generates labels shown in the legend\n\t\t\t// Valid properties to return:\n\t\t\t// text : text to display\n\t\t\t// fillStyle : fill of coloured box\n\t\t\t// strokeStyle: stroke of coloured box\n\t\t\t// hidden : if this legend item refers to a hidden item\n\t\t\t// lineCap : cap style for line\n\t\t\t// lineDash\n\t\t\t// lineDashOffset :\n\t\t\t// lineJoin :\n\t\t\t// lineWidth :\n\t\t\tgenerateLabels: function(chart) {\n\t\t\t\tvar data = chart.data;\n\t\t\t\treturn helpers.isArray(data.datasets) ? data.datasets.map(function(dataset, i) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttext: dataset.label,\n\t\t\t\t\t\tfillStyle: (!helpers.isArray(dataset.backgroundColor) ? dataset.backgroundColor : dataset.backgroundColor[0]),\n\t\t\t\t\t\thidden: !chart.isDatasetVisible(i),\n\t\t\t\t\t\tlineCap: dataset.borderCapStyle,\n\t\t\t\t\t\tlineDash: dataset.borderDash,\n\t\t\t\t\t\tlineDashOffset: dataset.borderDashOffset,\n\t\t\t\t\t\tlineJoin: dataset.borderJoinStyle,\n\t\t\t\t\t\tlineWidth: dataset.borderWidth,\n\t\t\t\t\t\tstrokeStyle: dataset.borderColor,\n\t\t\t\t\t\tpointStyle: dataset.pointStyle,\n\n\t\t\t\t\t\t// Below is extra data used for toggling the datasets\n\t\t\t\t\t\tdatasetIndex: i\n\t\t\t\t\t};\n\t\t\t\t}, this) : [];\n\t\t\t}\n\t\t}\n\t},\n\n\tlegendCallback: function(chart) {\n\t\tvar text = [];\n\t\ttext.push('');\n\t\treturn text.join('');\n\t}\n});\n\n/**\n * Helper function to get the box width based on the usePointStyle option\n * @param labelopts {Object} the label options on the legend\n * @param fontSize {Number} the label font size\n * @return {Number} width of the color box area\n */\nfunction getBoxWidth(labelOpts, fontSize) {\n\treturn labelOpts.usePointStyle ?\n\t\tfontSize * Math.SQRT2 :\n\t\tlabelOpts.boxWidth;\n}\n\n/**\n * IMPORTANT: this class is exposed publicly as Chart.Legend, backward compatibility required!\n */\nvar Legend = Element.extend({\n\n\tinitialize: function(config) {\n\t\thelpers.extend(this, config);\n\n\t\t// Contains hit boxes for each dataset (in dataset order)\n\t\tthis.legendHitBoxes = [];\n\n\t\t// Are we in doughnut mode which has a different data type\n\t\tthis.doughnutMode = false;\n\t},\n\n\t// These methods are ordered by lifecycle. Utilities then follow.\n\t// Any function defined here is inherited by all legend types.\n\t// Any function can be extended by the legend type\n\n\tbeforeUpdate: noop,\n\tupdate: function(maxWidth, maxHeight, margins) {\n\t\tvar me = this;\n\n\t\t// Update Lifecycle - Probably don't want to ever extend or overwrite this function ;)\n\t\tme.beforeUpdate();\n\n\t\t// Absorb the master measurements\n\t\tme.maxWidth = maxWidth;\n\t\tme.maxHeight = maxHeight;\n\t\tme.margins = margins;\n\n\t\t// Dimensions\n\t\tme.beforeSetDimensions();\n\t\tme.setDimensions();\n\t\tme.afterSetDimensions();\n\t\t// Labels\n\t\tme.beforeBuildLabels();\n\t\tme.buildLabels();\n\t\tme.afterBuildLabels();\n\n\t\t// Fit\n\t\tme.beforeFit();\n\t\tme.fit();\n\t\tme.afterFit();\n\t\t//\n\t\tme.afterUpdate();\n\n\t\treturn me.minSize;\n\t},\n\tafterUpdate: noop,\n\n\t//\n\n\tbeforeSetDimensions: noop,\n\tsetDimensions: function() {\n\t\tvar me = this;\n\t\t// Set the unconstrained dimension before label rotation\n\t\tif (me.isHorizontal()) {\n\t\t\t// Reset position before calculating rotation\n\t\t\tme.width = me.maxWidth;\n\t\t\tme.left = 0;\n\t\t\tme.right = me.width;\n\t\t} else {\n\t\t\tme.height = me.maxHeight;\n\n\t\t\t// Reset position before calculating rotation\n\t\t\tme.top = 0;\n\t\t\tme.bottom = me.height;\n\t\t}\n\n\t\t// Reset padding\n\t\tme.paddingLeft = 0;\n\t\tme.paddingTop = 0;\n\t\tme.paddingRight = 0;\n\t\tme.paddingBottom = 0;\n\n\t\t// Reset minSize\n\t\tme.minSize = {\n\t\t\twidth: 0,\n\t\t\theight: 0\n\t\t};\n\t},\n\tafterSetDimensions: noop,\n\n\t//\n\n\tbeforeBuildLabels: noop,\n\tbuildLabels: function() {\n\t\tvar me = this;\n\t\tvar labelOpts = me.options.labels || {};\n\t\tvar legendItems = helpers.callback(labelOpts.generateLabels, [me.chart], me) || [];\n\n\t\tif (labelOpts.filter) {\n\t\t\tlegendItems = legendItems.filter(function(item) {\n\t\t\t\treturn labelOpts.filter(item, me.chart.data);\n\t\t\t});\n\t\t}\n\n\t\tif (me.options.reverse) {\n\t\t\tlegendItems.reverse();\n\t\t}\n\n\t\tme.legendItems = legendItems;\n\t},\n\tafterBuildLabels: noop,\n\n\t//\n\n\tbeforeFit: noop,\n\tfit: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar labelOpts = opts.labels;\n\t\tvar display = opts.display;\n\n\t\tvar ctx = me.ctx;\n\n\t\tvar globalDefault = defaults.global;\n\t\tvar valueOrDefault = helpers.valueOrDefault;\n\t\tvar fontSize = valueOrDefault(labelOpts.fontSize, globalDefault.defaultFontSize);\n\t\tvar fontStyle = valueOrDefault(labelOpts.fontStyle, globalDefault.defaultFontStyle);\n\t\tvar fontFamily = valueOrDefault(labelOpts.fontFamily, globalDefault.defaultFontFamily);\n\t\tvar labelFont = helpers.fontString(fontSize, fontStyle, fontFamily);\n\n\t\t// Reset hit boxes\n\t\tvar hitboxes = me.legendHitBoxes = [];\n\n\t\tvar minSize = me.minSize;\n\t\tvar isHorizontal = me.isHorizontal();\n\n\t\tif (isHorizontal) {\n\t\t\tminSize.width = me.maxWidth; // fill all the width\n\t\t\tminSize.height = display ? 10 : 0;\n\t\t} else {\n\t\t\tminSize.width = display ? 10 : 0;\n\t\t\tminSize.height = me.maxHeight; // fill all the height\n\t\t}\n\n\t\t// Increase sizes here\n\t\tif (display) {\n\t\t\tctx.font = labelFont;\n\n\t\t\tif (isHorizontal) {\n\t\t\t\t// Labels\n\n\t\t\t\t// Width of each line of legend boxes. Labels wrap onto multiple lines when there are too many to fit on one\n\t\t\t\tvar lineWidths = me.lineWidths = [0];\n\t\t\t\tvar totalHeight = me.legendItems.length ? fontSize + (labelOpts.padding) : 0;\n\n\t\t\t\tctx.textAlign = 'left';\n\t\t\t\tctx.textBaseline = 'top';\n\n\t\t\t\thelpers.each(me.legendItems, function(legendItem, i) {\n\t\t\t\t\tvar boxWidth = getBoxWidth(labelOpts, fontSize);\n\t\t\t\t\tvar width = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n\n\t\t\t\t\tif (lineWidths[lineWidths.length - 1] + width + labelOpts.padding >= me.width) {\n\t\t\t\t\t\ttotalHeight += fontSize + (labelOpts.padding);\n\t\t\t\t\t\tlineWidths[lineWidths.length] = me.left;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Store the hitbox width and height here. Final position will be updated in `draw`\n\t\t\t\t\thitboxes[i] = {\n\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\twidth: width,\n\t\t\t\t\t\theight: fontSize\n\t\t\t\t\t};\n\n\t\t\t\t\tlineWidths[lineWidths.length - 1] += width + labelOpts.padding;\n\t\t\t\t});\n\n\t\t\t\tminSize.height += totalHeight;\n\n\t\t\t} else {\n\t\t\t\tvar vPadding = labelOpts.padding;\n\t\t\t\tvar columnWidths = me.columnWidths = [];\n\t\t\t\tvar totalWidth = labelOpts.padding;\n\t\t\t\tvar currentColWidth = 0;\n\t\t\t\tvar currentColHeight = 0;\n\t\t\t\tvar itemHeight = fontSize + vPadding;\n\n\t\t\t\thelpers.each(me.legendItems, function(legendItem, i) {\n\t\t\t\t\tvar boxWidth = getBoxWidth(labelOpts, fontSize);\n\t\t\t\t\tvar itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n\n\t\t\t\t\t// If too tall, go to new column\n\t\t\t\t\tif (currentColHeight + itemHeight > minSize.height) {\n\t\t\t\t\t\ttotalWidth += currentColWidth + labelOpts.padding;\n\t\t\t\t\t\tcolumnWidths.push(currentColWidth); // previous column width\n\n\t\t\t\t\t\tcurrentColWidth = 0;\n\t\t\t\t\t\tcurrentColHeight = 0;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Get max width\n\t\t\t\t\tcurrentColWidth = Math.max(currentColWidth, itemWidth);\n\t\t\t\t\tcurrentColHeight += itemHeight;\n\n\t\t\t\t\t// Store the hitbox width and height here. Final position will be updated in `draw`\n\t\t\t\t\thitboxes[i] = {\n\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\twidth: itemWidth,\n\t\t\t\t\t\theight: fontSize\n\t\t\t\t\t};\n\t\t\t\t});\n\n\t\t\t\ttotalWidth += currentColWidth;\n\t\t\t\tcolumnWidths.push(currentColWidth);\n\t\t\t\tminSize.width += totalWidth;\n\t\t\t}\n\t\t}\n\n\t\tme.width = minSize.width;\n\t\tme.height = minSize.height;\n\t},\n\tafterFit: noop,\n\n\t// Shared Methods\n\tisHorizontal: function() {\n\t\treturn this.options.position === 'top' || this.options.position === 'bottom';\n\t},\n\n\t// Actually draw the legend on the canvas\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar labelOpts = opts.labels;\n\t\tvar globalDefault = defaults.global;\n\t\tvar lineDefault = globalDefault.elements.line;\n\t\tvar legendWidth = me.width;\n\t\tvar lineWidths = me.lineWidths;\n\n\t\tif (opts.display) {\n\t\t\tvar ctx = me.ctx;\n\t\t\tvar valueOrDefault = helpers.valueOrDefault;\n\t\t\tvar fontColor = valueOrDefault(labelOpts.fontColor, globalDefault.defaultFontColor);\n\t\t\tvar fontSize = valueOrDefault(labelOpts.fontSize, globalDefault.defaultFontSize);\n\t\t\tvar fontStyle = valueOrDefault(labelOpts.fontStyle, globalDefault.defaultFontStyle);\n\t\t\tvar fontFamily = valueOrDefault(labelOpts.fontFamily, globalDefault.defaultFontFamily);\n\t\t\tvar labelFont = helpers.fontString(fontSize, fontStyle, fontFamily);\n\t\t\tvar cursor;\n\n\t\t\t// Canvas setup\n\t\t\tctx.textAlign = 'left';\n\t\t\tctx.textBaseline = 'middle';\n\t\t\tctx.lineWidth = 0.5;\n\t\t\tctx.strokeStyle = fontColor; // for strikethrough effect\n\t\t\tctx.fillStyle = fontColor; // render in correct colour\n\t\t\tctx.font = labelFont;\n\n\t\t\tvar boxWidth = getBoxWidth(labelOpts, fontSize);\n\t\t\tvar hitboxes = me.legendHitBoxes;\n\n\t\t\t// current position\n\t\t\tvar drawLegendBox = function(x, y, legendItem) {\n\t\t\t\tif (isNaN(boxWidth) || boxWidth <= 0) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Set the ctx for the box\n\t\t\t\tctx.save();\n\n\t\t\t\tctx.fillStyle = valueOrDefault(legendItem.fillStyle, globalDefault.defaultColor);\n\t\t\t\tctx.lineCap = valueOrDefault(legendItem.lineCap, lineDefault.borderCapStyle);\n\t\t\t\tctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, lineDefault.borderDashOffset);\n\t\t\t\tctx.lineJoin = valueOrDefault(legendItem.lineJoin, lineDefault.borderJoinStyle);\n\t\t\t\tctx.lineWidth = valueOrDefault(legendItem.lineWidth, lineDefault.borderWidth);\n\t\t\t\tctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, globalDefault.defaultColor);\n\t\t\t\tvar isLineWidthZero = (valueOrDefault(legendItem.lineWidth, lineDefault.borderWidth) === 0);\n\n\t\t\t\tif (ctx.setLineDash) {\n\t\t\t\t\t// IE 9 and 10 do not support line dash\n\t\t\t\t\tctx.setLineDash(valueOrDefault(legendItem.lineDash, lineDefault.borderDash));\n\t\t\t\t}\n\n\t\t\t\tif (opts.labels && opts.labels.usePointStyle) {\n\t\t\t\t\t// Recalculate x and y for drawPoint() because its expecting\n\t\t\t\t\t// x and y to be center of figure (instead of top left)\n\t\t\t\t\tvar radius = fontSize * Math.SQRT2 / 2;\n\t\t\t\t\tvar offSet = radius / Math.SQRT2;\n\t\t\t\t\tvar centerX = x + offSet;\n\t\t\t\t\tvar centerY = y + offSet;\n\n\t\t\t\t\t// Draw pointStyle as legend symbol\n\t\t\t\t\thelpers.canvas.drawPoint(ctx, legendItem.pointStyle, radius, centerX, centerY);\n\t\t\t\t} else {\n\t\t\t\t\t// Draw box as legend symbol\n\t\t\t\t\tif (!isLineWidthZero) {\n\t\t\t\t\t\tctx.strokeRect(x, y, boxWidth, fontSize);\n\t\t\t\t\t}\n\t\t\t\t\tctx.fillRect(x, y, boxWidth, fontSize);\n\t\t\t\t}\n\n\t\t\t\tctx.restore();\n\t\t\t};\n\t\t\tvar fillText = function(x, y, legendItem, textWidth) {\n\t\t\t\tvar halfFontSize = fontSize / 2;\n\t\t\t\tvar xLeft = boxWidth + halfFontSize + x;\n\t\t\t\tvar yMiddle = y + halfFontSize;\n\n\t\t\t\tctx.fillText(legendItem.text, xLeft, yMiddle);\n\n\t\t\t\tif (legendItem.hidden) {\n\t\t\t\t\t// Strikethrough the text if hidden\n\t\t\t\t\tctx.beginPath();\n\t\t\t\t\tctx.lineWidth = 2;\n\t\t\t\t\tctx.moveTo(xLeft, yMiddle);\n\t\t\t\t\tctx.lineTo(xLeft + textWidth, yMiddle);\n\t\t\t\t\tctx.stroke();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t// Horizontal\n\t\t\tvar isHorizontal = me.isHorizontal();\n\t\t\tif (isHorizontal) {\n\t\t\t\tcursor = {\n\t\t\t\t\tx: me.left + ((legendWidth - lineWidths[0]) / 2),\n\t\t\t\t\ty: me.top + labelOpts.padding,\n\t\t\t\t\tline: 0\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tcursor = {\n\t\t\t\t\tx: me.left + labelOpts.padding,\n\t\t\t\t\ty: me.top + labelOpts.padding,\n\t\t\t\t\tline: 0\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tvar itemHeight = fontSize + labelOpts.padding;\n\t\t\thelpers.each(me.legendItems, function(legendItem, i) {\n\t\t\t\tvar textWidth = ctx.measureText(legendItem.text).width;\n\t\t\t\tvar width = boxWidth + (fontSize / 2) + textWidth;\n\t\t\t\tvar x = cursor.x;\n\t\t\t\tvar y = cursor.y;\n\n\t\t\t\tif (isHorizontal) {\n\t\t\t\t\tif (x + width >= legendWidth) {\n\t\t\t\t\t\ty = cursor.y += itemHeight;\n\t\t\t\t\t\tcursor.line++;\n\t\t\t\t\t\tx = cursor.x = me.left + ((legendWidth - lineWidths[cursor.line]) / 2);\n\t\t\t\t\t}\n\t\t\t\t} else if (y + itemHeight > me.bottom) {\n\t\t\t\t\tx = cursor.x = x + me.columnWidths[cursor.line] + labelOpts.padding;\n\t\t\t\t\ty = cursor.y = me.top + labelOpts.padding;\n\t\t\t\t\tcursor.line++;\n\t\t\t\t}\n\n\t\t\t\tdrawLegendBox(x, y, legendItem);\n\n\t\t\t\thitboxes[i].left = x;\n\t\t\t\thitboxes[i].top = y;\n\n\t\t\t\t// Fill the actual label\n\t\t\t\tfillText(x, y, legendItem, textWidth);\n\n\t\t\t\tif (isHorizontal) {\n\t\t\t\t\tcursor.x += width + (labelOpts.padding);\n\t\t\t\t} else {\n\t\t\t\t\tcursor.y += itemHeight;\n\t\t\t\t}\n\n\t\t\t});\n\t\t}\n\t},\n\n\t/**\n\t * Handle an event\n\t * @private\n\t * @param {IEvent} event - The event to handle\n\t * @return {Boolean} true if a change occured\n\t */\n\thandleEvent: function(e) {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar type = e.type === 'mouseup' ? 'click' : e.type;\n\t\tvar changed = false;\n\n\t\tif (type === 'mousemove') {\n\t\t\tif (!opts.onHover) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else if (type === 'click') {\n\t\t\tif (!opts.onClick) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else {\n\t\t\treturn;\n\t\t}\n\n\t\t// Chart event already has relative position in it\n\t\tvar x = e.x;\n\t\tvar y = e.y;\n\n\t\tif (x >= me.left && x <= me.right && y >= me.top && y <= me.bottom) {\n\t\t\t// See if we are touching one of the dataset boxes\n\t\t\tvar lh = me.legendHitBoxes;\n\t\t\tfor (var i = 0; i < lh.length; ++i) {\n\t\t\t\tvar hitBox = lh[i];\n\n\t\t\t\tif (x >= hitBox.left && x <= hitBox.left + hitBox.width && y >= hitBox.top && y <= hitBox.top + hitBox.height) {\n\t\t\t\t\t// Touching an element\n\t\t\t\t\tif (type === 'click') {\n\t\t\t\t\t\t// use e.native for backwards compatibility\n\t\t\t\t\t\topts.onClick.call(me, e.native, me.legendItems[i]);\n\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t} else if (type === 'mousemove') {\n\t\t\t\t\t\t// use e.native for backwards compatibility\n\t\t\t\t\t\topts.onHover.call(me, e.native, me.legendItems[i]);\n\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn changed;\n\t}\n});\n\nfunction createNewLegendAndAttach(chart, legendOpts) {\n\tvar legend = new Legend({\n\t\tctx: chart.ctx,\n\t\toptions: legendOpts,\n\t\tchart: chart\n\t});\n\n\tlayouts.configure(chart, legend, legendOpts);\n\tlayouts.addBox(chart, legend);\n\tchart.legend = legend;\n}\n\nmodule.exports = {\n\tid: 'legend',\n\n\t/**\n\t * Backward compatibility: since 2.1.5, the legend is registered as a plugin, making\n\t * Chart.Legend obsolete. To avoid a breaking change, we export the Legend as part of\n\t * the plugin, which one will be re-exposed in the chart.js file.\n\t * https://github.com/chartjs/Chart.js/pull/2640\n\t * @private\n\t */\n\t_element: Legend,\n\n\tbeforeInit: function(chart) {\n\t\tvar legendOpts = chart.options.legend;\n\n\t\tif (legendOpts) {\n\t\t\tcreateNewLegendAndAttach(chart, legendOpts);\n\t\t}\n\t},\n\n\tbeforeUpdate: function(chart) {\n\t\tvar legendOpts = chart.options.legend;\n\t\tvar legend = chart.legend;\n\n\t\tif (legendOpts) {\n\t\t\thelpers.mergeIf(legendOpts, defaults.global.legend);\n\n\t\t\tif (legend) {\n\t\t\t\tlayouts.configure(chart, legend, legendOpts);\n\t\t\t\tlegend.options = legendOpts;\n\t\t\t} else {\n\t\t\t\tcreateNewLegendAndAttach(chart, legendOpts);\n\t\t\t}\n\t\t} else if (legend) {\n\t\t\tlayouts.removeBox(chart, legend);\n\t\t\tdelete chart.legend;\n\t\t}\n\t},\n\n\tafterEvent: function(chart, e) {\n\t\tvar legend = chart.legend;\n\t\tif (legend) {\n\t\t\tlegend.handleEvent(e);\n\t\t}\n\t}\n};\n","'use strict';\n\nvar defaults = require('../core/core.defaults');\nvar Element = require('../core/core.element');\nvar helpers = require('../helpers/index');\nvar layouts = require('../core/core.layouts');\n\nvar noop = helpers.noop;\n\ndefaults._set('global', {\n\ttitle: {\n\t\tdisplay: false,\n\t\tfontStyle: 'bold',\n\t\tfullWidth: true,\n\t\tlineHeight: 1.2,\n\t\tpadding: 10,\n\t\tposition: 'top',\n\t\ttext: '',\n\t\tweight: 2000 // by default greater than legend (1000) to be above\n\t}\n});\n\n/**\n * IMPORTANT: this class is exposed publicly as Chart.Legend, backward compatibility required!\n */\nvar Title = Element.extend({\n\tinitialize: function(config) {\n\t\tvar me = this;\n\t\thelpers.extend(me, config);\n\n\t\t// Contains hit boxes for each dataset (in dataset order)\n\t\tme.legendHitBoxes = [];\n\t},\n\n\t// These methods are ordered by lifecycle. Utilities then follow.\n\n\tbeforeUpdate: noop,\n\tupdate: function(maxWidth, maxHeight, margins) {\n\t\tvar me = this;\n\n\t\t// Update Lifecycle - Probably don't want to ever extend or overwrite this function ;)\n\t\tme.beforeUpdate();\n\n\t\t// Absorb the master measurements\n\t\tme.maxWidth = maxWidth;\n\t\tme.maxHeight = maxHeight;\n\t\tme.margins = margins;\n\n\t\t// Dimensions\n\t\tme.beforeSetDimensions();\n\t\tme.setDimensions();\n\t\tme.afterSetDimensions();\n\t\t// Labels\n\t\tme.beforeBuildLabels();\n\t\tme.buildLabels();\n\t\tme.afterBuildLabels();\n\n\t\t// Fit\n\t\tme.beforeFit();\n\t\tme.fit();\n\t\tme.afterFit();\n\t\t//\n\t\tme.afterUpdate();\n\n\t\treturn me.minSize;\n\n\t},\n\tafterUpdate: noop,\n\n\t//\n\n\tbeforeSetDimensions: noop,\n\tsetDimensions: function() {\n\t\tvar me = this;\n\t\t// Set the unconstrained dimension before label rotation\n\t\tif (me.isHorizontal()) {\n\t\t\t// Reset position before calculating rotation\n\t\t\tme.width = me.maxWidth;\n\t\t\tme.left = 0;\n\t\t\tme.right = me.width;\n\t\t} else {\n\t\t\tme.height = me.maxHeight;\n\n\t\t\t// Reset position before calculating rotation\n\t\t\tme.top = 0;\n\t\t\tme.bottom = me.height;\n\t\t}\n\n\t\t// Reset padding\n\t\tme.paddingLeft = 0;\n\t\tme.paddingTop = 0;\n\t\tme.paddingRight = 0;\n\t\tme.paddingBottom = 0;\n\n\t\t// Reset minSize\n\t\tme.minSize = {\n\t\t\twidth: 0,\n\t\t\theight: 0\n\t\t};\n\t},\n\tafterSetDimensions: noop,\n\n\t//\n\n\tbeforeBuildLabels: noop,\n\tbuildLabels: noop,\n\tafterBuildLabels: noop,\n\n\t//\n\n\tbeforeFit: noop,\n\tfit: function() {\n\t\tvar me = this;\n\t\tvar valueOrDefault = helpers.valueOrDefault;\n\t\tvar opts = me.options;\n\t\tvar display = opts.display;\n\t\tvar fontSize = valueOrDefault(opts.fontSize, defaults.global.defaultFontSize);\n\t\tvar minSize = me.minSize;\n\t\tvar lineCount = helpers.isArray(opts.text) ? opts.text.length : 1;\n\t\tvar lineHeight = helpers.options.toLineHeight(opts.lineHeight, fontSize);\n\t\tvar textSize = display ? (lineCount * lineHeight) + (opts.padding * 2) : 0;\n\n\t\tif (me.isHorizontal()) {\n\t\t\tminSize.width = me.maxWidth; // fill all the width\n\t\t\tminSize.height = textSize;\n\t\t} else {\n\t\t\tminSize.width = textSize;\n\t\t\tminSize.height = me.maxHeight; // fill all the height\n\t\t}\n\n\t\tme.width = minSize.width;\n\t\tme.height = minSize.height;\n\n\t},\n\tafterFit: noop,\n\n\t// Shared Methods\n\tisHorizontal: function() {\n\t\tvar pos = this.options.position;\n\t\treturn pos === 'top' || pos === 'bottom';\n\t},\n\n\t// Actually draw the title block on the canvas\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar ctx = me.ctx;\n\t\tvar valueOrDefault = helpers.valueOrDefault;\n\t\tvar opts = me.options;\n\t\tvar globalDefaults = defaults.global;\n\n\t\tif (opts.display) {\n\t\t\tvar fontSize = valueOrDefault(opts.fontSize, globalDefaults.defaultFontSize);\n\t\t\tvar fontStyle = valueOrDefault(opts.fontStyle, globalDefaults.defaultFontStyle);\n\t\t\tvar fontFamily = valueOrDefault(opts.fontFamily, globalDefaults.defaultFontFamily);\n\t\t\tvar titleFont = helpers.fontString(fontSize, fontStyle, fontFamily);\n\t\t\tvar lineHeight = helpers.options.toLineHeight(opts.lineHeight, fontSize);\n\t\t\tvar offset = lineHeight / 2 + opts.padding;\n\t\t\tvar rotation = 0;\n\t\t\tvar top = me.top;\n\t\t\tvar left = me.left;\n\t\t\tvar bottom = me.bottom;\n\t\t\tvar right = me.right;\n\t\t\tvar maxWidth, titleX, titleY;\n\n\t\t\tctx.fillStyle = valueOrDefault(opts.fontColor, globalDefaults.defaultFontColor); // render in correct colour\n\t\t\tctx.font = titleFont;\n\n\t\t\t// Horizontal\n\t\t\tif (me.isHorizontal()) {\n\t\t\t\ttitleX = left + ((right - left) / 2); // midpoint of the width\n\t\t\t\ttitleY = top + offset;\n\t\t\t\tmaxWidth = right - left;\n\t\t\t} else {\n\t\t\t\ttitleX = opts.position === 'left' ? left + offset : right - offset;\n\t\t\t\ttitleY = top + ((bottom - top) / 2);\n\t\t\t\tmaxWidth = bottom - top;\n\t\t\t\trotation = Math.PI * (opts.position === 'left' ? -0.5 : 0.5);\n\t\t\t}\n\n\t\t\tctx.save();\n\t\t\tctx.translate(titleX, titleY);\n\t\t\tctx.rotate(rotation);\n\t\t\tctx.textAlign = 'center';\n\t\t\tctx.textBaseline = 'middle';\n\n\t\t\tvar text = opts.text;\n\t\t\tif (helpers.isArray(text)) {\n\t\t\t\tvar y = 0;\n\t\t\t\tfor (var i = 0; i < text.length; ++i) {\n\t\t\t\t\tctx.fillText(text[i], 0, y, maxWidth);\n\t\t\t\t\ty += lineHeight;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tctx.fillText(text, 0, 0, maxWidth);\n\t\t\t}\n\n\t\t\tctx.restore();\n\t\t}\n\t}\n});\n\nfunction createNewTitleBlockAndAttach(chart, titleOpts) {\n\tvar title = new Title({\n\t\tctx: chart.ctx,\n\t\toptions: titleOpts,\n\t\tchart: chart\n\t});\n\n\tlayouts.configure(chart, title, titleOpts);\n\tlayouts.addBox(chart, title);\n\tchart.titleBlock = title;\n}\n\nmodule.exports = {\n\tid: 'title',\n\n\t/**\n\t * Backward compatibility: since 2.1.5, the title is registered as a plugin, making\n\t * Chart.Title obsolete. To avoid a breaking change, we export the Title as part of\n\t * the plugin, which one will be re-exposed in the chart.js file.\n\t * https://github.com/chartjs/Chart.js/pull/2640\n\t * @private\n\t */\n\t_element: Title,\n\n\tbeforeInit: function(chart) {\n\t\tvar titleOpts = chart.options.title;\n\n\t\tif (titleOpts) {\n\t\t\tcreateNewTitleBlockAndAttach(chart, titleOpts);\n\t\t}\n\t},\n\n\tbeforeUpdate: function(chart) {\n\t\tvar titleOpts = chart.options.title;\n\t\tvar titleBlock = chart.titleBlock;\n\n\t\tif (titleOpts) {\n\t\t\thelpers.mergeIf(titleOpts, defaults.global.title);\n\n\t\t\tif (titleBlock) {\n\t\t\t\tlayouts.configure(chart, titleBlock, titleOpts);\n\t\t\t\ttitleBlock.options = titleOpts;\n\t\t\t} else {\n\t\t\t\tcreateNewTitleBlockAndAttach(chart, titleOpts);\n\t\t\t}\n\t\t} else if (titleBlock) {\n\t\t\tlayouts.removeBox(chart, titleBlock);\n\t\t\tdelete chart.titleBlock;\n\t\t}\n\t}\n};\n","import Mousetrap from 'mousetrap';\nimport findAndFollowLink from '../../lib/utils/navigation_utility';\nimport Shortcuts from './shortcuts';\n\nexport default class ShortcutsNavigation extends Shortcuts {\n constructor() {\n super();\n\n Mousetrap.bind('g p', () => findAndFollowLink('.shortcuts-project'));\n Mousetrap.bind('g v', () => findAndFollowLink('.shortcuts-project-activity'));\n Mousetrap.bind('g r', () => findAndFollowLink('.shortcuts-project-releases'));\n Mousetrap.bind('g f', () => findAndFollowLink('.shortcuts-tree'));\n Mousetrap.bind('g c', () => findAndFollowLink('.shortcuts-commits'));\n Mousetrap.bind('g j', () => findAndFollowLink('.shortcuts-builds'));\n Mousetrap.bind('g n', () => findAndFollowLink('.shortcuts-network'));\n Mousetrap.bind('g d', () => findAndFollowLink('.shortcuts-repository-charts'));\n Mousetrap.bind('g i', () => findAndFollowLink('.shortcuts-issues'));\n Mousetrap.bind('g b', () => findAndFollowLink('.shortcuts-issue-boards'));\n Mousetrap.bind('g m', () => findAndFollowLink('.shortcuts-merge_requests'));\n Mousetrap.bind('g w', () => findAndFollowLink('.shortcuts-wiki'));\n Mousetrap.bind('g s', () => findAndFollowLink('.shortcuts-snippets'));\n Mousetrap.bind('g k', () => findAndFollowLink('.shortcuts-kubernetes'));\n Mousetrap.bind('g e', () => findAndFollowLink('.shortcuts-environments'));\n Mousetrap.bind('g l', () => findAndFollowLink('.shortcuts-metrics'));\n Mousetrap.bind('i', () => findAndFollowLink('.shortcuts-new-issue'));\n\n this.enabledHelp.push('.hidden-shortcut.project');\n }\n}\n","import $ from 'jquery';\nimport AccessorUtilities from './lib/utils/accessor';\n\nexport default class ProjectSelectComboButton {\n constructor(select) {\n this.projectSelectInput = $(select);\n this.newItemBtn = $('.new-project-item-link');\n this.resourceType = this.newItemBtn.data('type');\n this.resourceLabel = this.newItemBtn.data('label');\n this.formattedText = this.deriveTextVariants();\n this.groupId = this.projectSelectInput.data('groupId');\n this.bindEvents();\n this.initLocalStorage();\n }\n\n bindEvents() {\n this.projectSelectInput\n .siblings('.new-project-item-select-button')\n .on('click', e => this.openDropdown(e));\n\n this.newItemBtn.on('click', e => {\n if (!this.getProjectFromLocalStorage()) {\n e.preventDefault();\n this.openDropdown(e);\n }\n });\n\n this.projectSelectInput.on('change', () => this.selectProject());\n }\n\n initLocalStorage() {\n const localStorageIsSafe = AccessorUtilities.isLocalStorageAccessSafe();\n\n if (localStorageIsSafe) {\n this.localStorageKey = [\n 'group',\n this.groupId,\n this.formattedText.localStorageItemType,\n 'recent-project',\n ].join('-');\n this.setBtnTextFromLocalStorage();\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n openDropdown(event) {\n import(/* webpackChunkName: 'select2' */ 'select2/select2')\n .then(() => {\n $(event.currentTarget)\n .siblings('.project-item-select')\n .select2('open');\n })\n .catch(() => {});\n }\n\n selectProject() {\n const selectedProjectData = JSON.parse(this.projectSelectInput.val());\n const projectUrl = `${selectedProjectData.url}/${this.projectSelectInput.data('relativePath')}`;\n const projectName = selectedProjectData.name;\n\n const projectMeta = {\n url: projectUrl,\n name: projectName,\n };\n\n this.setNewItemBtnAttributes(projectMeta);\n this.setProjectInLocalStorage(projectMeta);\n }\n\n setBtnTextFromLocalStorage() {\n const cachedProjectData = this.getProjectFromLocalStorage();\n\n this.setNewItemBtnAttributes(cachedProjectData);\n }\n\n setNewItemBtnAttributes(project) {\n if (project) {\n this.newItemBtn.attr('href', project.url);\n this.newItemBtn.text(`${this.formattedText.defaultTextPrefix} in ${project.name}`);\n } else {\n this.newItemBtn.text(`Select project to create ${this.formattedText.presetTextSuffix}`);\n }\n }\n\n getProjectFromLocalStorage() {\n const projectString = localStorage.getItem(this.localStorageKey);\n\n return JSON.parse(projectString);\n }\n\n setProjectInLocalStorage(projectMeta) {\n const projectString = JSON.stringify(projectMeta);\n\n localStorage.setItem(this.localStorageKey, projectString);\n }\n\n deriveTextVariants() {\n const defaultTextPrefix = this.resourceLabel;\n\n // the trailing slice call depluralizes each of these strings (e.g. new-issues -> new-issue)\n const localStorageItemType = `new-${this.resourceType\n .split('_')\n .join('-')\n .slice(0, -1)}`;\n const presetTextSuffix = this.resourceType\n .split('_')\n .join(' ')\n .slice(0, -1);\n\n return {\n localStorageItemType, // new-issue / new-merge-request\n defaultTextPrefix, // New issue / New merge request\n presetTextSuffix, // issue / merge request\n };\n }\n}\n","/* eslint-disable func-names, no-var, object-shorthand, one-var, no-else-return */\n\nimport $ from 'jquery';\nimport Api from './api';\nimport ProjectSelectComboButton from './project_select_combo_button';\n\nexport default function projectSelect() {\n import(/* webpackChunkName: 'select2' */ 'select2/select2')\n .then(() => {\n $('.ajax-project-select').each(function(i, select) {\n var placeholder;\n const simpleFilter = $(select).data('simpleFilter') || false;\n this.groupId = $(select).data('groupId');\n this.includeGroups = $(select).data('includeGroups');\n this.allProjects = $(select).data('allProjects') || false;\n this.orderBy = $(select).data('orderBy') || 'id';\n this.withIssuesEnabled = $(select).data('withIssuesEnabled');\n this.withMergeRequestsEnabled = $(select).data('withMergeRequestsEnabled');\n this.withShared =\n $(select).data('withShared') === undefined ? true : $(select).data('withShared');\n this.includeProjectsInSubgroups = $(select).data('includeProjectsInSubgroups') || false;\n this.allowClear = $(select).data('allowClear') || false;\n\n placeholder = 'Search for project';\n if (this.includeGroups) {\n placeholder += ' or group';\n }\n\n $(select).select2({\n placeholder: placeholder,\n minimumInputLength: 0,\n query: (function(_this) {\n return function(query) {\n var finalCallback, projectsCallback;\n finalCallback = function(projects) {\n var data;\n data = {\n results: projects,\n };\n return query.callback(data);\n };\n if (_this.includeGroups) {\n projectsCallback = function(projects) {\n var groupsCallback;\n groupsCallback = function(groups) {\n var data;\n data = groups.concat(projects);\n return finalCallback(data);\n };\n return Api.groups(query.term, {}, groupsCallback);\n };\n } else {\n projectsCallback = finalCallback;\n }\n if (_this.groupId) {\n return Api.groupProjects(\n _this.groupId,\n query.term,\n {\n with_issues_enabled: _this.withIssuesEnabled,\n with_merge_requests_enabled: _this.withMergeRequestsEnabled,\n with_shared: _this.withShared,\n include_subgroups: _this.includeProjectsInSubgroups,\n },\n projectsCallback,\n );\n } else {\n return Api.projects(\n query.term,\n {\n order_by: _this.orderBy,\n with_issues_enabled: _this.withIssuesEnabled,\n with_merge_requests_enabled: _this.withMergeRequestsEnabled,\n membership: !_this.allProjects,\n },\n projectsCallback,\n );\n }\n };\n })(this),\n id: function(project) {\n if (simpleFilter) return project.id;\n return JSON.stringify({\n name: project.name,\n url: project.web_url,\n });\n },\n text: function(project) {\n return project.name_with_namespace || project.name;\n },\n\n initSelection: function(el, callback) {\n return Api.project(el.val()).then(({ data }) => callback(data));\n },\n\n allowClear: this.allowClear,\n\n dropdownCssClass: 'ajax-project-dropdown',\n });\n if (simpleFilter) return select;\n return new ProjectSelectComboButton(select);\n });\n })\n .catch(() => {});\n}\n","/* eslint-disable func-names, no-var, no-return-assign, one-var, object-shorthand, vars-on-top */\n\nimport $ from 'jquery';\nimport Cookies from 'js-cookie';\nimport { __ } from '~/locale';\nimport { visitUrl } from '~/lib/utils/url_utility';\nimport axios from '~/lib/utils/axios_utils';\nimport flash from '~/flash';\nimport projectSelect from '../../project_select';\n\nexport default class Project {\n constructor() {\n const $cloneOptions = $('ul.clone-options-dropdown');\n const $projectCloneField = $('#project_clone');\n const $cloneBtnLabel = $('.js-git-clone-holder .js-clone-dropdown-label');\n const mobileCloneField = document.querySelector(\n '.js-mobile-git-clone .js-clone-dropdown-label',\n );\n\n const selectedCloneOption = $cloneBtnLabel.text().trim();\n if (selectedCloneOption.length > 0) {\n $(`a:contains('${selectedCloneOption}')`, $cloneOptions).addClass('is-active');\n }\n\n $('a', $cloneOptions).on('click', e => {\n e.preventDefault();\n const $this = $(e.currentTarget);\n const url = $this.attr('href');\n const cloneType = $this.data('cloneType');\n\n $('.is-active', $cloneOptions).removeClass('is-active');\n $(`a[data-clone-type=\"${cloneType}\"]`).each(function() {\n const $el = $(this);\n const activeText = $el.find('.dropdown-menu-inner-title').text();\n const $container = $el.closest('.project-clone-holder');\n const $label = $container.find('.js-clone-dropdown-label');\n\n $el.toggleClass('is-active');\n $label.text(activeText);\n });\n\n if (mobileCloneField) {\n mobileCloneField.dataset.clipboardText = url;\n } else {\n $projectCloneField.val(url);\n }\n $('.js-git-empty .js-clone').text(url);\n });\n // Ref switcher\n Project.initRefSwitcher();\n $('.project-refs-select').on('change', function() {\n return $(this)\n .parents('form')\n .submit();\n });\n $('.hide-no-ssh-message').on('click', function(e) {\n Cookies.set('hide_no_ssh_message', 'false');\n $(this)\n .parents('.no-ssh-key-message')\n .remove();\n return e.preventDefault();\n });\n $('.hide-no-password-message').on('click', function(e) {\n Cookies.set('hide_no_password_message', 'false');\n $(this)\n .parents('.no-password-message')\n .remove();\n return e.preventDefault();\n });\n $('.hide-auto-devops-implicitly-enabled-banner').on('click', function(e) {\n const projectId = $(this).data('project-id');\n const cookieKey = `hide_auto_devops_implicitly_enabled_banner_${projectId}`;\n Cookies.set(cookieKey, 'false');\n $(this)\n .parents('.auto-devops-implicitly-enabled-banner')\n .remove();\n return e.preventDefault();\n });\n Project.projectSelectDropdown();\n }\n\n static projectSelectDropdown() {\n projectSelect();\n $('.project-item-select').on('click', e => Project.changeProject($(e.currentTarget).val()));\n }\n\n static changeProject(url) {\n return (window.location = url);\n }\n\n static initRefSwitcher() {\n var refListItem = document.createElement('li');\n var refLink = document.createElement('a');\n\n refLink.href = '#';\n\n return $('.js-project-refs-dropdown').each(function() {\n var $dropdown, selected;\n $dropdown = $(this);\n selected = $dropdown.data('selected');\n return $dropdown.glDropdown({\n data(term, callback) {\n axios\n .get($dropdown.data('refsUrl'), {\n params: {\n ref: $dropdown.data('ref'),\n search: term,\n },\n })\n .then(({ data }) => callback(data))\n .catch(() => flash(__('An error occurred while getting projects')));\n },\n selectable: true,\n filterable: true,\n filterRemote: true,\n filterByText: true,\n inputFieldName: $dropdown.data('inputFieldName'),\n fieldName: $dropdown.data('fieldName'),\n renderRow: function(ref) {\n var li = refListItem.cloneNode(false);\n\n if (ref.header != null) {\n li.className = 'dropdown-header';\n li.textContent = ref.header;\n } else {\n var link = refLink.cloneNode(false);\n\n if (ref === selected) {\n link.className = 'is-active';\n }\n\n link.textContent = ref;\n link.dataset.ref = ref;\n\n li.appendChild(link);\n }\n\n return li;\n },\n id: function(obj, $el) {\n return $el.attr('data-ref');\n },\n toggleLabel: function(obj, $el) {\n return $el.text().trim();\n },\n clicked: function(options) {\n const { e } = options;\n e.preventDefault();\n if ($('input[name=\"ref\"]').length) {\n var $form = $dropdown.closest('form');\n\n var $visit = $dropdown.data('visit');\n var shouldVisit = $visit ? true : $visit;\n var action = $form.attr('action');\n var divider = action.indexOf('?') === -1 ? '?' : '&';\n if (shouldVisit) {\n visitUrl(`${action}${divider}${$form.serialize()}`);\n }\n }\n },\n });\n });\n }\n}\n","'use strict';\n\nvar color = require('chartjs-color');\nvar helpers = require('../helpers/index');\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 = color(origin);\n\t\t\t\tif (c0.valid) {\n\t\t\t\t\tc1 = color(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 (type === 'number' && isFinite(origin) && 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.extend(this, configuration);\n\tthis.initialize.apply(this, arguments);\n};\n\nhelpers.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.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.isNumber(this._model.x) && helpers.isNumber(this._model.y);\n\t}\n});\n\nElement.extend = helpers.inherits;\n\nmodule.exports = Element;\n","'use strict';\n\nmodule.exports = {};\nmodule.exports.Arc = require('./element.arc');\nmodule.exports.Line = require('./element.line');\nmodule.exports.Point = require('./element.point');\nmodule.exports.Rectangle = require('./element.rectangle');\n","import initGkeDropdowns from '~/projects/gke_cluster_dropdowns';\nimport PersistentUserCallout from '../../persistent_user_callout';\nimport Project from './project';\nimport ShortcutsNavigation from '../../behaviors/shortcuts/shortcuts_navigation';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const { page } = document.body.dataset;\n const newClusterViews = [\n 'projects:clusters:new',\n 'projects:clusters:create_gcp',\n 'projects:clusters:create_user',\n ];\n\n if (newClusterViews.indexOf(page) > -1) {\n const callout = document.querySelector('.gcp-signup-offer');\n PersistentUserCallout.factory(callout);\n\n initGkeDropdowns();\n }\n\n new Project(); // eslint-disable-line no-new\n new ShortcutsNavigation(); // eslint-disable-line no-new\n});\n","/**\n * @namespace Chart\n */\nvar Chart = require('./core/core')();\n\nChart.helpers = require('./helpers/index');\n\n// @todo dispatch these helpers into appropriated helpers/helpers.* file and write unit tests!\nrequire('./core/core.helpers')(Chart);\n\nChart.defaults = require('./core/core.defaults');\nChart.Element = require('./core/core.element');\nChart.elements = require('./elements/index');\nChart.Interaction = require('./core/core.interaction');\nChart.layouts = require('./core/core.layouts');\nChart.platform = require('./platforms/platform');\nChart.plugins = require('./core/core.plugins');\nChart.Ticks = require('./core/core.ticks');\n\nrequire('./core/core.animation')(Chart);\nrequire('./core/core.controller')(Chart);\nrequire('./core/core.datasetController')(Chart);\nrequire('./core/core.scaleService')(Chart);\nrequire('./core/core.scale')(Chart);\nrequire('./core/core.tooltip')(Chart);\n\nrequire('./scales/scale.linearbase')(Chart);\nrequire('./scales/scale.category')(Chart);\nrequire('./scales/scale.linear')(Chart);\nrequire('./scales/scale.logarithmic')(Chart);\nrequire('./scales/scale.radialLinear')(Chart);\nrequire('./scales/scale.time')(Chart);\n\n// Controllers must be loaded after elements\n// See Chart.core.datasetController.dataElementType\nrequire('./controllers/controller.bar')(Chart);\nrequire('./controllers/controller.bubble')(Chart);\nrequire('./controllers/controller.doughnut')(Chart);\nrequire('./controllers/controller.line')(Chart);\nrequire('./controllers/controller.polarArea')(Chart);\nrequire('./controllers/controller.radar')(Chart);\nrequire('./controllers/controller.scatter')(Chart);\n\nrequire('./charts/Chart.Bar')(Chart);\nrequire('./charts/Chart.Bubble')(Chart);\nrequire('./charts/Chart.Doughnut')(Chart);\nrequire('./charts/Chart.Line')(Chart);\nrequire('./charts/Chart.PolarArea')(Chart);\nrequire('./charts/Chart.Radar')(Chart);\nrequire('./charts/Chart.Scatter')(Chart);\n\n// Loading built-it plugins\nvar plugins = require('./plugins');\nfor (var k in plugins) {\n\tif (plugins.hasOwnProperty(k)) {\n\t\tChart.plugins.register(plugins[k]);\n\t}\n}\n\nChart.platform.initialize();\n\nmodule.exports = Chart;\nif (typeof window !== 'undefined') {\n\twindow.Chart = Chart;\n}\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, not available anymore\n * @namespace Chart.Legend\n * @deprecated since version 2.1.5\n * @todo remove at version 3\n * @private\n */\nChart.Legend = plugins.legend._element;\n\n/**\n * Provided for backward compatibility, not available anymore\n * @namespace Chart.Title\n * @deprecated since version 2.1.5\n * @todo remove at version 3\n * @private\n */\nChart.Title = plugins.title._element;\n\n/**\n * Provided for backward compatibility, use Chart.plugins instead\n * @namespace Chart.pluginService\n * @deprecated since version 2.1.5\n * @todo remove at version 3\n * @private\n */\nChart.pluginService = Chart.plugins;\n\n/**\n * Provided for backward compatibility, inheriting from Chart.PlugingBase has no\n * effect, instead simply create/register plugins via plain JavaScript objects.\n * @interface Chart.PluginBase\n * @deprecated since version 2.5.0\n * @todo remove at version 3\n * @private\n */\nChart.PluginBase = Chart.Element.extend({});\n\n/**\n * Provided for backward compatibility, use Chart.helpers.canvas instead.\n * @namespace Chart.canvasHelpers\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n * @private\n */\nChart.canvasHelpers = Chart.helpers.canvas;\n\n/**\n * Provided for backward compatibility, use Chart.layouts instead.\n * @namespace Chart.layoutService\n * @deprecated since version 2.8.0\n * @todo remove at version 3\n * @private\n */\nChart.layoutService = Chart.layouts;\n","const commonTooltips = () => ({\n mode: 'x',\n intersect: false,\n});\n\nconst adjustedFontScale = () => ({\n fontSize: 8,\n});\n\nconst yAxesConfig = (shouldAdjustFontSize = false) => ({\n yAxes: [\n {\n ticks: {\n beginAtZero: true,\n ...(shouldAdjustFontSize ? adjustedFontScale() : {}),\n },\n },\n ],\n});\n\nconst xAxesConfig = (shouldAdjustFontSize = false) => ({\n xAxes: [\n {\n ticks: {\n ...(shouldAdjustFontSize ? adjustedFontScale() : {}),\n },\n },\n ],\n});\n\nconst commonChartOptions = () => ({\n responsive: true,\n maintainAspectRatio: false,\n legend: false,\n});\n\nexport const barChartOptions = shouldAdjustFontSize => ({\n ...commonChartOptions(),\n scales: {\n ...yAxesConfig(shouldAdjustFontSize),\n ...xAxesConfig(shouldAdjustFontSize),\n },\n tooltips: {\n ...commonTooltips(),\n displayColors: false,\n callbacks: {\n title() {\n return '';\n },\n label({ xLabel, yLabel }) {\n return `${xLabel}: ${yLabel}`;\n },\n },\n },\n});\n\nexport const pieChartOptions = commonChartOptions;\n\nexport const lineChartOptions = ({ width, numberOfPoints, shouldAdjustFontSize }) => ({\n ...commonChartOptions(),\n scales: {\n ...yAxesConfig(shouldAdjustFontSize),\n ...xAxesConfig(shouldAdjustFontSize),\n },\n elements: {\n point: {\n hitRadius: width / (numberOfPoints * 2),\n },\n },\n tooltips: {\n ...commonTooltips(),\n caretSize: 0,\n multiKeyBackground: 'rgba(0,0,0,0)',\n callbacks: {\n labelColor({ datasetIndex }, { config }) {\n return {\n backgroundColor: config.data.datasets[datasetIndex].backgroundColor,\n borderColor: 'rgba(0,0,0,0)',\n };\n },\n },\n },\n});\n","//! moment.js\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks () {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback (callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return input != null && Object.prototype.toString.call(input) === '[object Object]';\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return (Object.getOwnPropertyNames(obj).length === 0);\n } else {\n var k;\n for (k in obj) {\n if (obj.hasOwnProperty(k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';\n }\n\n function isDate(input) {\n return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n }\n\n function map(arr, fn) {\n var res = [], i;\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC (input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty : false,\n unusedTokens : [],\n unusedInput : [],\n overflow : -2,\n charsLeftOver : 0,\n nullInput : false,\n invalidMonth : null,\n invalidFormat : false,\n userInvalidated : false,\n iso : false,\n parsedDateParts : [],\n meridiem : null,\n rfc2822 : false,\n weekdayMismatch : false\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this);\n var len = t.length >>> 0;\n\n for (var i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m);\n var parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n var isNowValid = !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid = isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n }\n else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid (flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n }\n else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = hooks.momentProperties = [];\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n var updateInProgress = false;\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment (obj) {\n return obj instanceof Moment || (obj != null && obj._isAMomentObject != null);\n }\n\n function absFloor (number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if ((dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n function warn(msg) {\n if (hooks.suppressDeprecationWarnings === false &&\n (typeof console !== 'undefined') && console.warn) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [];\n var arg;\n for (var i = 0; i < arguments.length; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (var key in arguments[0]) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(msg + '\\nArguments: ' + Array.prototype.slice.call(args).join('') + '\\n' + (new Error()).stack);\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n function set (config) {\n var prop, i;\n for (i in config) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' + (/\\d{1,2}/).source);\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig), prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i, res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n };\n\n function calendar (key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n var defaultLongDateFormat = {\n LTS : 'h:mm:ss A',\n LT : 'h:mm A',\n L : 'MM/DD/YYYY',\n LL : 'MMMM D, YYYY',\n LLL : 'MMMM D, YYYY h:mm A',\n LLLL : 'dddd, MMMM D, YYYY h:mm A'\n };\n\n function longDateFormat (key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {\n return val.slice(1);\n });\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate () {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d';\n var defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal (number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n };\n\n function relativeTime (number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return (isFunction(output)) ?\n output(number, withoutSuffix, string, isFuture) :\n output.replace(/%d/i, number);\n }\n\n function pastFuture (diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias (unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [];\n for (var u in unitsObj) {\n units.push({unit: u, priority: priorities[u]});\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;\n\n var localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g;\n\n var formatFunctions = {};\n\n var formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken (token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(func.apply(this, arguments), token);\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens), i, length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '', i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var match1 = /\\d/; // 0 - 9\n var match2 = /\\d\\d/; // 00 - 99\n var match3 = /\\d{3}/; // 000 - 999\n var match4 = /\\d{4}/; // 0000 - 9999\n var match6 = /[+-]?\\d{6}/; // -999999 - 999999\n var match1to2 = /\\d\\d?/; // 0 - 99\n var match3to4 = /\\d\\d\\d\\d?/; // 999 - 9999\n var match5to6 = /\\d\\d\\d\\d\\d\\d?/; // 99999 - 999999\n var match1to3 = /\\d{1,3}/; // 0 - 999\n var match1to4 = /\\d{1,4}/; // 0 - 9999\n var match1to6 = /[+-]?\\d{1,6}/; // -999999 - 999999\n\n var matchUnsigned = /\\d+/; // 0 - inf\n var matchSigned = /[+-]?\\d+/; // -inf - inf\n\n var matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi; // +00:00 -00:00 +0000 -0000 or Z\n var matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n\n var matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/; // 123456789 123456789.123\n\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n var matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i;\n\n var regexes = {};\n\n function addRegexToken (token, regex, strictRegex) {\n regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {\n return (isStrict && strictRegex) ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken (token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }));\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken (token, callback) {\n var i, func = callback;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken (token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0;\n var MONTH = 1;\n var DATE = 2;\n var HOUR = 3;\n var MINUTE = 4;\n var SECOND = 5;\n var MILLISECOND = 6;\n var WEEK = 7;\n var WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? '' + y : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear () {\n return isLeapYear(this.year());\n }\n\n function makeGetSet (unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get (mom, unit) {\n return mom.isValid() ?\n mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;\n }\n\n function set$1 (mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));\n }\n else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet (units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n\n function stringSet (units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units);\n for (var i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1 ? (isLeapYear(year) ? 29 : 28) : (31 - modMonth % 7 % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/;\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');\n function localeMonths (m, format) {\n if (!m) {\n return isArray(this._months) ? this._months :\n this._months['standalone'];\n }\n return isArray(this._months) ? this._months[m.month()] :\n this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');\n function localeMonthsShort (m, format) {\n if (!m) {\n return isArray(this._monthsShort) ? this._monthsShort :\n this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort) ? this._monthsShort[m.month()] :\n this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i, ii, mom, llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse (monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n }\n if (!strict && !this._monthsParse[i]) {\n regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth (mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth (value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth () {\n return daysInMonth(this.year(), this.month());\n }\n\n var defaultMonthsShortRegex = matchWord;\n function monthsShortRegex (isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict ?\n this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n }\n\n var defaultMonthsRegex = matchWord;\n function monthsRegex (isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict ?\n this._monthsStrictRegex : this._monthsRegex;\n }\n }\n\n function computeMonthsParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n }\n\n function createDate (y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date = new Date(y, m, d, h, M, s, ms);\n\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0 && isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n return date;\n }\n\n function createUTCDate (y) {\n var date = new Date(Date.UTC.apply(null, arguments));\n\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear, resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek, resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n });\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek (mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek () {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear () {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek (input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek (input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');\n function localeWeekdays (m, format) {\n if (!m) {\n return isArray(this._weekdays) ? this._weekdays :\n this._weekdays['standalone'];\n }\n return isArray(this._weekdays) ? this._weekdays[m.day()] :\n this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()];\n }\n\n var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');\n function localeWeekdaysShort (m) {\n return (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n }\n\n var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');\n function localeWeekdaysMin (m) {\n return (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i, ii, mom, llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse (weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$', 'i');\n }\n if (!this._weekdaysParse[i]) {\n regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n var defaultWeekdaysRegex = matchWord;\n function weekdaysRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict ?\n this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n }\n\n var defaultWeekdaysShortRegex = matchWord;\n function weekdaysShortRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict ?\n this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n }\n\n var defaultWeekdaysMinRegex = matchWord;\n function weekdaysMinRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict ?\n this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n }\n }\n\n\n function computeWeekdaysParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom, minp, shortp, longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = this.weekdaysMin(mom, '');\n shortp = this.weekdaysShort(mom, '');\n longp = this.weekdays(mom, '');\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 7; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\n });\n\n function meridiem (token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem (isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4;\n var pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4;\n var pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM (input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return ((input + '').toLowerCase().charAt(0) === 'p');\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i;\n function localeMeridiem (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n\n // MOMENTS\n\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n var getSetHour = makeGetSet('Hours', true);\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse\n };\n\n // internal storage for locale config files\n var locales = {};\n var localeFamilies = {};\n var globalLocale;\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0, j, next, locale, split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null;\n // TODO: Find a better way to register and load all the locales in Node\n if (!locales[name] && (typeof module !== 'undefined') &&\n module && module.exports) {\n try {\n oldLocale = globalLocale._abbr;\n var aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {}\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale (key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n }\n else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n }\n else {\n if ((typeof console !== 'undefined') && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn('Locale ' + key + ' not found. Did you forget to load it?');\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale (name, config) {\n if (config !== null) {\n var locale, parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple('defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale, tmpLocale, parentConfig = baseConfig;\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale (key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow (m) {\n var overflow;\n var a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :\n a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :\n a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :\n a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE :\n a[SECOND] < 0 || a[SECOND] > 59 ? SECOND :\n a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :\n -1;\n\n if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray (config) {\n var i, date, input = [], currentDate, expectedWeekday, yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n var curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n var basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n\n var tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/;\n\n var isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n // YYYYMM is NOT allowed by the standard\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/]\n ];\n\n // iso time formats and regexes\n var isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/]\n ];\n\n var aspNetJsonRegex = /^\\/?Date\\((\\-?\\d+)/i;\n\n // date from iso format\n function configFromISO(config) {\n var i, l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime, dateFormat, timeFormat, tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/;\n\n function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10)\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s.replace(/\\([^)]*\\)|[\\n\\t]/g, ' ').replace(/(\\s\\s+)/g, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n var obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n };\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10);\n var m = hm % 100, h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i));\n if (match) {\n var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from iso format or fallback\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged and will be removed in an upcoming major release. Please refer to ' +\n 'http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i, parsedInput, tokens, token, skipped,\n stringLength = string.length,\n totalParsedInputLength = 0;\n\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n // console.log('token', token, 'parsedInput', parsedInput,\n // 'regex', getParseRegexForToken(token, config));\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(string.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n }\n else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n }\n else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n\n function meridiemFixWrap (locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n\n scoreToBeat,\n i,\n currentScore;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (!isValid(tempConfig)) {\n continue;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (scoreToBeat == null || currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i);\n config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n return obj && parseInt(obj, 10);\n });\n\n configFromArray(config);\n }\n\n function createFromConfig (config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig (config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({nullInput: true});\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC (input, format, locale, strict, isUTC) {\n var c = {};\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if ((isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal (input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n var prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min () {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max () {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +(new Date());\n };\n\n var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n\n function isDurationValid(m) {\n for (var key in m) {\n if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {\n return false;\n }\n }\n\n var unitHasDecimal = false;\n for (var i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration (duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds = +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days +\n weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months +\n quarters * 3 +\n years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration (obj) {\n return obj instanceof Duration;\n }\n\n function absRound (number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // FORMATTING\n\n function offset (token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset();\n var sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher);\n\n if (matches === null) {\n return null;\n }\n\n var chunk = matches[matches.length - 1] || [];\n var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n var minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ?\n 0 :\n parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset (m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset() / 15) * 15;\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset (input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(this, createDuration(input - offset, 'm'), 1, false);\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone (input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC (keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal (keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset () {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n }\n else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset (input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime () {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted () {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {};\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n var other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() &&\n compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal () {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset () {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc () {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(\\-|\\+)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/;\n\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n var isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration (input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms : input._milliseconds,\n d : input._days,\n M : input._months\n };\n } else if (isNumber(input)) {\n duration = {};\n if (key) {\n duration[key] = input;\n } else {\n duration.milliseconds = input;\n }\n } else if (!!(match = aspNetRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : 1;\n duration = {\n y : 0,\n d : toInt(match[DATE]) * sign,\n h : toInt(match[HOUR]) * sign,\n m : toInt(match[MINUTE]) * sign,\n s : toInt(match[SECOND]) * sign,\n ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match\n };\n } else if (!!(match = isoRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : 1;\n duration = {\n y : parseIso(match[2], sign),\n M : parseIso(match[3], sign),\n w : parseIso(match[4], sign),\n d : parseIso(match[5], sign),\n h : parseIso(match[6], sign),\n m : parseIso(match[7], sign),\n s : parseIso(match[8], sign)\n };\n } else if (duration == null) {// checks for null or undefined\n duration = {};\n } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso (inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {milliseconds: 0, months: 0};\n\n res.months = other.month() - base.month() +\n (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +(base.clone().add(res.months, 'M'));\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return {milliseconds: 0, months: 0};\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n tmp = val; val = period; period = tmp;\n }\n\n val = typeof val === 'string' ? +val : val;\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract (mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add');\n var subtract = createAdder(-1, 'subtract');\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6 ? 'sameElse' :\n diff < -1 ? 'lastWeek' :\n diff < 0 ? 'lastDay' :\n diff < 1 ? 'sameDay' :\n diff < 2 ? 'nextDay' :\n diff < 7 ? 'nextWeek' : 'sameElse';\n }\n\n function calendar$1 (time, formats) {\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse';\n\n var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n\n return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\n }\n\n function clone () {\n return new Moment(this);\n }\n\n function isAfter (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween (from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units));\n }\n\n function isSame (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\n }\n }\n\n function isSameOrAfter (input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore (input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff (input, units, asFloat) {\n var that,\n zoneDelta,\n output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year': output = monthDiff(this, that) / 12; break;\n case 'month': output = monthDiff(this, that); break;\n case 'quarter': output = monthDiff(this, that) / 3; break;\n case 'second': output = (this - that) / 1e3; break; // 1000\n case 'minute': output = (this - that) / 6e4; break; // 1000 * 60\n case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60\n case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst\n case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default: output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff (a, b) {\n // difference in months\n var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2, adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString () {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true;\n var m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect () {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment';\n var zone = '';\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n var prefix = '[' + func + '(\"]';\n var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY';\n var datetime = '-MM-DD[T]HH:mm:ss.SSS';\n var suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format (inputString) {\n if (!inputString) {\n inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow (withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow (withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale (key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData () {\n return this._locale;\n }\n\n function startOf (units) {\n units = normalizeUnits(units);\n // the following switch intentionally omits break keywords\n // to utilize falling through the cases.\n switch (units) {\n case 'year':\n this.month(0);\n /* falls through */\n case 'quarter':\n case 'month':\n this.date(1);\n /* falls through */\n case 'week':\n case 'isoWeek':\n case 'day':\n case 'date':\n this.hours(0);\n /* falls through */\n case 'hour':\n this.minutes(0);\n /* falls through */\n case 'minute':\n this.seconds(0);\n /* falls through */\n case 'second':\n this.milliseconds(0);\n }\n\n // weeks are a special case\n if (units === 'week') {\n this.weekday(0);\n }\n if (units === 'isoWeek') {\n this.isoWeekday(1);\n }\n\n // quarters are also special\n if (units === 'quarter') {\n this.month(Math.floor(this.month() / 3) * 3);\n }\n\n return this;\n }\n\n function endOf (units) {\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond') {\n return this;\n }\n\n // 'date' is an alias for 'day', so it should be considered as such.\n if (units === 'date') {\n units = 'day';\n }\n\n return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms');\n }\n\n function valueOf () {\n return this._d.valueOf() - ((this._offset || 0) * 60000);\n }\n\n function unix () {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate () {\n return new Date(this.valueOf());\n }\n\n function toArray () {\n var m = this;\n return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n }\n\n function toObject () {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds()\n };\n }\n\n function toJSON () {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2 () {\n return isValid(this);\n }\n\n function parsingFlags () {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt () {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict\n };\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken (token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n });\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy);\n }\n\n function getSetISOWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input, this.isoWeek(), this.isoWeekday(), 1, 4);\n }\n\n function getISOWeeksInYear () {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getWeeksInYear () {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter (input) {\n return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict ?\n (locale._dayOfMonthOrdinalParse || locale._ordinalParse) :\n locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear (input) {\n var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n // MOMENTS\n\n var getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr () {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName () {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\n\n function createUnix (input) {\n return createLocal(input * 1000);\n }\n\n function createInZone () {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat (string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1 (format, index, field, setter) {\n var locale = getLocale();\n var utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl (format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i;\n var out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl (localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0;\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n var i;\n var out = [];\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths (format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort (format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (toInt(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n }\n });\n\n // Side effect imports\n\n hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\n hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\n\n var mathAbs = Math.abs;\n\n function abs () {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1 (duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1 (input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1 (input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil (number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble () {\n var milliseconds = this._milliseconds;\n var days = this._days;\n var months = this._months;\n var data = this._data;\n var seconds, minutes, hours, years, monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0))) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths (days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return days * 4800 / 146097;\n }\n\n function monthsToDays (months) {\n // the reverse of daysToMonths\n return months * 146097 / 4800;\n }\n\n function as (units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days;\n var months;\n var milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n return units === 'month' ? months : months / 12;\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week' : return days / 7 + milliseconds / 6048e5;\n case 'day' : return days + milliseconds / 864e5;\n case 'hour' : return days * 24 + milliseconds / 36e5;\n case 'minute' : return days * 1440 + milliseconds / 6e4;\n case 'second' : return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond': return Math.floor(days * 864e5) + milliseconds;\n default: throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1 () {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs (alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms');\n var asSeconds = makeAs('s');\n var asMinutes = makeAs('m');\n var asHours = makeAs('h');\n var asDays = makeAs('d');\n var asWeeks = makeAs('w');\n var asMonths = makeAs('M');\n var asYears = makeAs('y');\n\n function clone$1 () {\n return createDuration(this);\n }\n\n function get$2 (units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds');\n var seconds = makeGetter('seconds');\n var minutes = makeGetter('minutes');\n var hours = makeGetter('hours');\n var days = makeGetter('days');\n var months = makeGetter('months');\n var years = makeGetter('years');\n\n function weeks () {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round;\n var thresholds = {\n ss: 44, // a few seconds to seconds\n s : 45, // seconds to minute\n m : 45, // minutes to hour\n h : 22, // hours to day\n d : 26, // days to month\n M : 11 // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1 (posNegDuration, withoutSuffix, locale) {\n var duration = createDuration(posNegDuration).abs();\n var seconds = round(duration.as('s'));\n var minutes = round(duration.as('m'));\n var hours = round(duration.as('h'));\n var days = round(duration.as('d'));\n var months = round(duration.as('M'));\n var years = round(duration.as('y'));\n\n var a = seconds <= thresholds.ss && ['s', seconds] ||\n seconds < thresholds.s && ['ss', seconds] ||\n minutes <= 1 && ['m'] ||\n minutes < thresholds.m && ['mm', minutes] ||\n hours <= 1 && ['h'] ||\n hours < thresholds.h && ['hh', hours] ||\n days <= 1 && ['d'] ||\n days < thresholds.d && ['dd', days] ||\n months <= 1 && ['M'] ||\n months < thresholds.M && ['MM', months] ||\n years <= 1 && ['y'] || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding (roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof(roundingFunction) === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold (threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize (withSuffix) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var locale = this.localeData();\n var output = relativeTime$1(this, !withSuffix, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return ((x > 0) - (x < 0)) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000;\n var days = abs$1(this._days);\n var months = abs$1(this._months);\n var minutes, hours, years;\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n var Y = years;\n var M = months;\n var D = days;\n var h = hours;\n var m = minutes;\n var s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n var total = this.asSeconds();\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n var totalSign = total < 0 ? '-' : '';\n var ymSign = sign(this._months) !== sign(total) ? '-' : '';\n var daysSign = sign(this._days) !== sign(total) ? '-' : '';\n var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return totalSign + 'P' +\n (Y ? ymSign + Y + 'Y' : '') +\n (M ? ymSign + M + 'M' : '') +\n (D ? daysSign + D + 'D' : '') +\n ((h || m || s) ? 'T' : '') +\n (h ? hmsSign + h + 'H' : '') +\n (m ? hmsSign + m + 'M' : '') +\n (s ? hmsSign + s + 'S' : '');\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\n proto$2.lang = lang;\n\n // Side effect imports\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input, 10) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n // Side effect imports\n\n\n hooks.version = '2.23.0';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM' // \n };\n\n return hooks;\n\n})));\n","'use strict';\n\nvar helpers = require('../helpers/index');\n\nfunction filterByPosition(array, position) {\n\treturn helpers.where(array, function(v) {\n\t\treturn v.position === position;\n\t});\n}\n\nfunction sortByWeight(array, reverse) {\n\tarray.forEach(function(v, i) {\n\t\tv._tmpIndex_ = i;\n\t\treturn v;\n\t});\n\tarray.sort(function(a, b) {\n\t\tvar v0 = reverse ? b : a;\n\t\tvar v1 = reverse ? a : b;\n\t\treturn v0.weight === v1.weight ?\n\t\t\tv0._tmpIndex_ - v1._tmpIndex_ :\n\t\t\tv0.weight - v1.weight;\n\t});\n\tarray.forEach(function(v) {\n\t\tdelete v._tmpIndex_;\n\t});\n}\n\n/**\n * @interface ILayoutItem\n * @prop {String} position - The position of the item in the chart layout. Possible values are\n * 'left', 'top', 'right', 'bottom', and 'chartArea'\n * @prop {Number} weight - The weight used to sort the item. Higher weights are further away from the chart area\n * @prop {Boolean} fullWidth - if true, and the item is horizontal, then push vertical boxes down\n * @prop {Function} isHorizontal - returns true if the layout item is horizontal (ie. top or bottom)\n * @prop {Function} update - Takes two parameters: width and height. Returns size of item\n * @prop {Function} getPadding - Returns an object with padding on the edges\n * @prop {Number} width - Width of item. Must be valid after update()\n * @prop {Number} height - Height of item. Must be valid after update()\n * @prop {Number} left - Left edge of the item. Set by layout system and cannot be used in update\n * @prop {Number} top - Top edge of the item. Set by layout system and cannot be used in update\n * @prop {Number} right - Right edge of the item. Set by layout system and cannot be used in update\n * @prop {Number} bottom - Bottom edge of the item. Set by layout system and cannot be used in update\n */\n\n// The layout service is very self explanatory. It's responsible for the layout within a chart.\n// Scales, Legends and Plugins all rely on the layout service and can easily register to be placed anywhere they need\n// It is this service's responsibility of carrying out that layout.\nmodule.exports = {\n\tdefaults: {},\n\n\t/**\n\t * Register a box to a chart.\n\t * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title.\n\t * @param {Chart} chart - the chart to use\n\t * @param {ILayoutItem} item - the item to add to be layed out\n\t */\n\taddBox: function(chart, item) {\n\t\tif (!chart.boxes) {\n\t\t\tchart.boxes = [];\n\t\t}\n\n\t\t// initialize item with default values\n\t\titem.fullWidth = item.fullWidth || false;\n\t\titem.position = item.position || 'top';\n\t\titem.weight = item.weight || 0;\n\n\t\tchart.boxes.push(item);\n\t},\n\n\t/**\n\t * Remove a layoutItem from a chart\n\t * @param {Chart} chart - the chart to remove the box from\n\t * @param {Object} layoutItem - the item to remove from the layout\n\t */\n\tremoveBox: function(chart, layoutItem) {\n\t\tvar index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n\t\tif (index !== -1) {\n\t\t\tchart.boxes.splice(index, 1);\n\t\t}\n\t},\n\n\t/**\n\t * Sets (or updates) options on the given `item`.\n\t * @param {Chart} chart - the chart in which the item lives (or will be added to)\n\t * @param {Object} item - the item to configure with the given options\n\t * @param {Object} options - the new item options.\n\t */\n\tconfigure: function(chart, item, options) {\n\t\tvar props = ['fullWidth', 'position', 'weight'];\n\t\tvar ilen = props.length;\n\t\tvar i = 0;\n\t\tvar prop;\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\tprop = props[i];\n\t\t\tif (options.hasOwnProperty(prop)) {\n\t\t\t\titem[prop] = options[prop];\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Fits boxes of the given chart into the given size by having each box measure itself\n\t * then running a fitting algorithm\n\t * @param {Chart} chart - the chart\n\t * @param {Number} width - the width to fit into\n\t * @param {Number} height - the height to fit into\n\t */\n\tupdate: function(chart, width, height) {\n\t\tif (!chart) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar layoutOptions = chart.options.layout || {};\n\t\tvar padding = helpers.options.toPadding(layoutOptions.padding);\n\t\tvar leftPadding = padding.left;\n\t\tvar rightPadding = padding.right;\n\t\tvar topPadding = padding.top;\n\t\tvar bottomPadding = padding.bottom;\n\n\t\tvar leftBoxes = filterByPosition(chart.boxes, 'left');\n\t\tvar rightBoxes = filterByPosition(chart.boxes, 'right');\n\t\tvar topBoxes = filterByPosition(chart.boxes, 'top');\n\t\tvar bottomBoxes = filterByPosition(chart.boxes, 'bottom');\n\t\tvar chartAreaBoxes = filterByPosition(chart.boxes, 'chartArea');\n\n\t\t// Sort boxes by weight. A higher weight is further away from the chart area\n\t\tsortByWeight(leftBoxes, true);\n\t\tsortByWeight(rightBoxes, false);\n\t\tsortByWeight(topBoxes, true);\n\t\tsortByWeight(bottomBoxes, false);\n\n\t\t// Essentially we now have any number of boxes on each of the 4 sides.\n\t\t// Our canvas looks like the following.\n\t\t// The areas L1 and L2 are the left axes. R1 is the right axis, T1 is the top axis and\n\t\t// B1 is the bottom axis\n\t\t// There are also 4 quadrant-like locations (left to right instead of clockwise) reserved for chart overlays\n\t\t// These locations are single-box locations only, when trying to register a chartArea location that is already taken,\n\t\t// an error will be thrown.\n\t\t//\n\t\t// |----------------------------------------------------|\n\t\t// | T1 (Full Width) |\n\t\t// |----------------------------------------------------|\n\t\t// | | | T2 | |\n\t\t// | |----|-------------------------------------|----|\n\t\t// | | | C1 | | C2 | |\n\t\t// | | |----| |----| |\n\t\t// | | | | |\n\t\t// | L1 | L2 | ChartArea (C0) | R1 |\n\t\t// | | | | |\n\t\t// | | |----| |----| |\n\t\t// | | | C3 | | C4 | |\n\t\t// | |----|-------------------------------------|----|\n\t\t// | | | B1 | |\n\t\t// |----------------------------------------------------|\n\t\t// | B2 (Full Width) |\n\t\t// |----------------------------------------------------|\n\t\t//\n\t\t// What we do to find the best sizing, we do the following\n\t\t// 1. Determine the minimum size of the chart area.\n\t\t// 2. Split the remaining width equally between each vertical axis\n\t\t// 3. Split the remaining height equally between each horizontal axis\n\t\t// 4. Give each layout the maximum size it can be. The layout will return it's minimum size\n\t\t// 5. Adjust the sizes of each axis based on it's minimum reported size.\n\t\t// 6. Refit each axis\n\t\t// 7. Position each axis in the final location\n\t\t// 8. Tell the chart the final location of the chart area\n\t\t// 9. Tell any axes that overlay the chart area the positions of the chart area\n\n\t\t// Step 1\n\t\tvar chartWidth = width - leftPadding - rightPadding;\n\t\tvar chartHeight = height - topPadding - bottomPadding;\n\t\tvar chartAreaWidth = chartWidth / 2; // min 50%\n\t\tvar chartAreaHeight = chartHeight / 2; // min 50%\n\n\t\t// Step 2\n\t\tvar verticalBoxWidth = (width - chartAreaWidth) / (leftBoxes.length + rightBoxes.length);\n\n\t\t// Step 3\n\t\tvar horizontalBoxHeight = (height - chartAreaHeight) / (topBoxes.length + bottomBoxes.length);\n\n\t\t// Step 4\n\t\tvar maxChartAreaWidth = chartWidth;\n\t\tvar maxChartAreaHeight = chartHeight;\n\t\tvar minBoxSizes = [];\n\n\t\tfunction getMinimumBoxSize(box) {\n\t\t\tvar minSize;\n\t\t\tvar isHorizontal = box.isHorizontal();\n\n\t\t\tif (isHorizontal) {\n\t\t\t\tminSize = box.update(box.fullWidth ? chartWidth : maxChartAreaWidth, horizontalBoxHeight);\n\t\t\t\tmaxChartAreaHeight -= minSize.height;\n\t\t\t} else {\n\t\t\t\tminSize = box.update(verticalBoxWidth, maxChartAreaHeight);\n\t\t\t\tmaxChartAreaWidth -= minSize.width;\n\t\t\t}\n\n\t\t\tminBoxSizes.push({\n\t\t\t\thorizontal: isHorizontal,\n\t\t\t\tminSize: minSize,\n\t\t\t\tbox: box,\n\t\t\t});\n\t\t}\n\n\t\thelpers.each(leftBoxes.concat(rightBoxes, topBoxes, bottomBoxes), getMinimumBoxSize);\n\n\t\t// If a horizontal box has padding, we move the left boxes over to avoid ugly charts (see issue #2478)\n\t\tvar maxHorizontalLeftPadding = 0;\n\t\tvar maxHorizontalRightPadding = 0;\n\t\tvar maxVerticalTopPadding = 0;\n\t\tvar maxVerticalBottomPadding = 0;\n\n\t\thelpers.each(topBoxes.concat(bottomBoxes), function(horizontalBox) {\n\t\t\tif (horizontalBox.getPadding) {\n\t\t\t\tvar boxPadding = horizontalBox.getPadding();\n\t\t\t\tmaxHorizontalLeftPadding = Math.max(maxHorizontalLeftPadding, boxPadding.left);\n\t\t\t\tmaxHorizontalRightPadding = Math.max(maxHorizontalRightPadding, boxPadding.right);\n\t\t\t}\n\t\t});\n\n\t\thelpers.each(leftBoxes.concat(rightBoxes), function(verticalBox) {\n\t\t\tif (verticalBox.getPadding) {\n\t\t\t\tvar boxPadding = verticalBox.getPadding();\n\t\t\t\tmaxVerticalTopPadding = Math.max(maxVerticalTopPadding, boxPadding.top);\n\t\t\t\tmaxVerticalBottomPadding = Math.max(maxVerticalBottomPadding, boxPadding.bottom);\n\t\t\t}\n\t\t});\n\n\t\t// At this point, maxChartAreaHeight and maxChartAreaWidth are the size the chart area could\n\t\t// be if the axes are drawn at their minimum sizes.\n\t\t// Steps 5 & 6\n\t\tvar totalLeftBoxesWidth = leftPadding;\n\t\tvar totalRightBoxesWidth = rightPadding;\n\t\tvar totalTopBoxesHeight = topPadding;\n\t\tvar totalBottomBoxesHeight = bottomPadding;\n\n\t\t// Function to fit a box\n\t\tfunction fitBox(box) {\n\t\t\tvar minBoxSize = helpers.findNextWhere(minBoxSizes, function(minBox) {\n\t\t\t\treturn minBox.box === box;\n\t\t\t});\n\n\t\t\tif (minBoxSize) {\n\t\t\t\tif (box.isHorizontal()) {\n\t\t\t\t\tvar scaleMargin = {\n\t\t\t\t\t\tleft: Math.max(totalLeftBoxesWidth, maxHorizontalLeftPadding),\n\t\t\t\t\t\tright: Math.max(totalRightBoxesWidth, maxHorizontalRightPadding),\n\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\tbottom: 0\n\t\t\t\t\t};\n\n\t\t\t\t\t// Don't use min size here because of label rotation. When the labels are rotated, their rotation highly depends\n\t\t\t\t\t// on the margin. Sometimes they need to increase in size slightly\n\t\t\t\t\tbox.update(box.fullWidth ? chartWidth : maxChartAreaWidth, chartHeight / 2, scaleMargin);\n\t\t\t\t} else {\n\t\t\t\t\tbox.update(minBoxSize.minSize.width, maxChartAreaHeight);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Update, and calculate the left and right margins for the horizontal boxes\n\t\thelpers.each(leftBoxes.concat(rightBoxes), fitBox);\n\n\t\thelpers.each(leftBoxes, function(box) {\n\t\t\ttotalLeftBoxesWidth += box.width;\n\t\t});\n\n\t\thelpers.each(rightBoxes, function(box) {\n\t\t\ttotalRightBoxesWidth += box.width;\n\t\t});\n\n\t\t// Set the Left and Right margins for the horizontal boxes\n\t\thelpers.each(topBoxes.concat(bottomBoxes), fitBox);\n\n\t\t// Figure out how much margin is on the top and bottom of the vertical boxes\n\t\thelpers.each(topBoxes, function(box) {\n\t\t\ttotalTopBoxesHeight += box.height;\n\t\t});\n\n\t\thelpers.each(bottomBoxes, function(box) {\n\t\t\ttotalBottomBoxesHeight += box.height;\n\t\t});\n\n\t\tfunction finalFitVerticalBox(box) {\n\t\t\tvar minBoxSize = helpers.findNextWhere(minBoxSizes, function(minSize) {\n\t\t\t\treturn minSize.box === box;\n\t\t\t});\n\n\t\t\tvar scaleMargin = {\n\t\t\t\tleft: 0,\n\t\t\t\tright: 0,\n\t\t\t\ttop: totalTopBoxesHeight,\n\t\t\t\tbottom: totalBottomBoxesHeight\n\t\t\t};\n\n\t\t\tif (minBoxSize) {\n\t\t\t\tbox.update(minBoxSize.minSize.width, maxChartAreaHeight, scaleMargin);\n\t\t\t}\n\t\t}\n\n\t\t// Let the left layout know the final margin\n\t\thelpers.each(leftBoxes.concat(rightBoxes), finalFitVerticalBox);\n\n\t\t// Recalculate because the size of each layout might have changed slightly due to the margins (label rotation for instance)\n\t\ttotalLeftBoxesWidth = leftPadding;\n\t\ttotalRightBoxesWidth = rightPadding;\n\t\ttotalTopBoxesHeight = topPadding;\n\t\ttotalBottomBoxesHeight = bottomPadding;\n\n\t\thelpers.each(leftBoxes, function(box) {\n\t\t\ttotalLeftBoxesWidth += box.width;\n\t\t});\n\n\t\thelpers.each(rightBoxes, function(box) {\n\t\t\ttotalRightBoxesWidth += box.width;\n\t\t});\n\n\t\thelpers.each(topBoxes, function(box) {\n\t\t\ttotalTopBoxesHeight += box.height;\n\t\t});\n\t\thelpers.each(bottomBoxes, function(box) {\n\t\t\ttotalBottomBoxesHeight += box.height;\n\t\t});\n\n\t\t// We may be adding some padding to account for rotated x axis labels\n\t\tvar leftPaddingAddition = Math.max(maxHorizontalLeftPadding - totalLeftBoxesWidth, 0);\n\t\ttotalLeftBoxesWidth += leftPaddingAddition;\n\t\ttotalRightBoxesWidth += Math.max(maxHorizontalRightPadding - totalRightBoxesWidth, 0);\n\n\t\tvar topPaddingAddition = Math.max(maxVerticalTopPadding - totalTopBoxesHeight, 0);\n\t\ttotalTopBoxesHeight += topPaddingAddition;\n\t\ttotalBottomBoxesHeight += Math.max(maxVerticalBottomPadding - totalBottomBoxesHeight, 0);\n\n\t\t// Figure out if our chart area changed. This would occur if the dataset layout label rotation\n\t\t// changed due to the application of the margins in step 6. Since we can only get bigger, this is safe to do\n\t\t// without calling `fit` again\n\t\tvar newMaxChartAreaHeight = height - totalTopBoxesHeight - totalBottomBoxesHeight;\n\t\tvar newMaxChartAreaWidth = width - totalLeftBoxesWidth - totalRightBoxesWidth;\n\n\t\tif (newMaxChartAreaWidth !== maxChartAreaWidth || newMaxChartAreaHeight !== maxChartAreaHeight) {\n\t\t\thelpers.each(leftBoxes, function(box) {\n\t\t\t\tbox.height = newMaxChartAreaHeight;\n\t\t\t});\n\n\t\t\thelpers.each(rightBoxes, function(box) {\n\t\t\t\tbox.height = newMaxChartAreaHeight;\n\t\t\t});\n\n\t\t\thelpers.each(topBoxes, function(box) {\n\t\t\t\tif (!box.fullWidth) {\n\t\t\t\t\tbox.width = newMaxChartAreaWidth;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\thelpers.each(bottomBoxes, function(box) {\n\t\t\t\tif (!box.fullWidth) {\n\t\t\t\t\tbox.width = newMaxChartAreaWidth;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tmaxChartAreaHeight = newMaxChartAreaHeight;\n\t\t\tmaxChartAreaWidth = newMaxChartAreaWidth;\n\t\t}\n\n\t\t// Step 7 - Position the boxes\n\t\tvar left = leftPadding + leftPaddingAddition;\n\t\tvar top = topPadding + topPaddingAddition;\n\n\t\tfunction placeBox(box) {\n\t\t\tif (box.isHorizontal()) {\n\t\t\t\tbox.left = box.fullWidth ? leftPadding : totalLeftBoxesWidth;\n\t\t\t\tbox.right = box.fullWidth ? width - rightPadding : totalLeftBoxesWidth + maxChartAreaWidth;\n\t\t\t\tbox.top = top;\n\t\t\t\tbox.bottom = top + box.height;\n\n\t\t\t\t// Move to next point\n\t\t\t\ttop = box.bottom;\n\n\t\t\t} else {\n\n\t\t\t\tbox.left = left;\n\t\t\t\tbox.right = left + box.width;\n\t\t\t\tbox.top = totalTopBoxesHeight;\n\t\t\t\tbox.bottom = totalTopBoxesHeight + maxChartAreaHeight;\n\n\t\t\t\t// Move to next point\n\t\t\t\tleft = box.right;\n\t\t\t}\n\t\t}\n\n\t\thelpers.each(leftBoxes.concat(topBoxes), placeBox);\n\n\t\t// Account for chart width and height\n\t\tleft += maxChartAreaWidth;\n\t\ttop += maxChartAreaHeight;\n\n\t\thelpers.each(rightBoxes, placeBox);\n\t\thelpers.each(bottomBoxes, placeBox);\n\n\t\t// Step 8\n\t\tchart.chartArea = {\n\t\t\tleft: totalLeftBoxesWidth,\n\t\t\ttop: totalTopBoxesHeight,\n\t\t\tright: totalLeftBoxesWidth + maxChartAreaWidth,\n\t\t\tbottom: totalTopBoxesHeight + maxChartAreaHeight\n\t\t};\n\n\t\t// Step 9\n\t\thelpers.each(chartAreaBoxes, function(box) {\n\t\t\tbox.left = chart.chartArea.left;\n\t\t\tbox.top = chart.chartArea.top;\n\t\t\tbox.right = chart.chartArea.right;\n\t\t\tbox.bottom = chart.chartArea.bottom;\n\n\t\t\tbox.update(maxChartAreaWidth, maxChartAreaHeight);\n\t\t});\n\t}\n};\n","'use strict';\n\nvar helpers = require('../helpers/index');\n\n/**\n * Namespace to hold static tick generation functions\n * @namespace Chart.Ticks\n */\nmodule.exports = {\n\t/**\n\t * Namespace to hold formatters for different types of ticks\n\t * @namespace Chart.Ticks.formatters\n\t */\n\tformatters: {\n\t\t/**\n\t\t * Formatter for value labels\n\t\t * @method Chart.Ticks.formatters.values\n\t\t * @param value the value to display\n\t\t * @return {String|Array} the label to display\n\t\t */\n\t\tvalues: function(value) {\n\t\t\treturn helpers.isArray(value) ? value : '' + value;\n\t\t},\n\n\t\t/**\n\t\t * Formatter for linear numeric ticks\n\t\t * @method Chart.Ticks.formatters.linear\n\t\t * @param tickValue {Number} the value to be formatted\n\t\t * @param index {Number} the position of the tickValue parameter in the ticks array\n\t\t * @param ticks {Array} the list of ticks being converted\n\t\t * @return {String} string representation of the tickValue parameter\n\t\t */\n\t\tlinear: function(tickValue, index, ticks) {\n\t\t\t// If we have lots of ticks, don't use the ones\n\t\t\tvar delta = ticks.length > 3 ? ticks[2] - ticks[1] : ticks[1] - ticks[0];\n\n\t\t\t// If we have a number like 2.5 as the delta, figure out how many decimal places we need\n\t\t\tif (Math.abs(delta) > 1) {\n\t\t\t\tif (tickValue !== Math.floor(tickValue)) {\n\t\t\t\t\t// not an integer\n\t\t\t\t\tdelta = tickValue - Math.floor(tickValue);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar logDelta = helpers.log10(Math.abs(delta));\n\t\t\tvar tickString = '';\n\n\t\t\tif (tickValue !== 0) {\n\t\t\t\tvar numDecimal = -1 * Math.floor(logDelta);\n\t\t\t\tnumDecimal = Math.max(Math.min(numDecimal, 20), 0); // toFixed has a max of 20 decimal places\n\t\t\t\ttickString = tickValue.toFixed(numDecimal);\n\t\t\t} else {\n\t\t\t\ttickString = '0'; // never show decimal places for 0\n\t\t\t}\n\n\t\t\treturn tickString;\n\t\t},\n\n\t\tlogarithmic: function(tickValue, index, ticks) {\n\t\t\tvar remain = tickValue / (Math.pow(10, Math.floor(helpers.log10(tickValue))));\n\n\t\t\tif (tickValue === 0) {\n\t\t\t\treturn '0';\n\t\t\t} else if (remain === 1 || remain === 2 || remain === 5 || index === 0 || index === ticks.length - 1) {\n\t\t\t\treturn tickValue.toExponential();\n\t\t\t}\n\t\t\treturn '';\n\t\t}\n\t}\n};\n","'use strict';\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, else returns false.\n\t * @param {*} value - The value to test.\n\t * @returns {Boolean}\n\t * @function\n\t */\n\tisArray: Array.isArray ? Array.isArray : function(value) {\n\t\treturn Object.prototype.toString.call(value) === '[object Array]';\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 `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 http://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): this method is also used by configMerge and scaleMerge 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|Array(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|Array(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\nmodule.exports = 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","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var af = moment.defineLocale('af', {\n months : 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'),\n monthsShort : 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays : 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'),\n weekdaysShort : 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin : 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM : function (input) {\n return /^nm$/i.test(input);\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Vandag om] LT',\n nextDay : '[Môre om] LT',\n nextWeek : 'dddd [om] LT',\n lastDay : '[Gister om] LT',\n lastWeek : '[Laas] dddd [om] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'oor %s',\n past : '%s gelede',\n s : '\\'n paar sekondes',\n ss : '%d sekondes',\n m : '\\'n minuut',\n mm : '%d minute',\n h : '\\'n uur',\n hh : '%d ure',\n d : '\\'n dag',\n dd : '%d dae',\n M : '\\'n maand',\n MM : '%d maande',\n y : '\\'n jaar',\n yy : '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal : function (number) {\n return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week : {\n dow : 1, // Maandag is die eerste dag van die week.\n doy : 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n }\n });\n\n return af;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '١',\n '2': '٢',\n '3': '٣',\n '4': '٤',\n '5': '٥',\n '6': '٦',\n '7': '٧',\n '8': '٨',\n '9': '٩',\n '0': '٠'\n }, numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0'\n }, pluralForm = function (n) {\n return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;\n }, plurals = {\n s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],\n m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],\n h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],\n d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],\n M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],\n y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']\n }, pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n }, months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر'\n ];\n\n var ar = moment.defineLocale('ar', {\n months : months,\n monthsShort : months,\n weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'D/\\u200FM/\\u200FYYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|م/,\n isPM : function (input) {\n return 'م' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar : {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'بعد %s',\n past : 'منذ %s',\n s : pluralize('s'),\n ss : pluralize('s'),\n m : pluralize('m'),\n mm : pluralize('m'),\n h : pluralize('h'),\n hh : pluralize('h'),\n d : pluralize('d'),\n dd : pluralize('d'),\n M : pluralize('M'),\n MM : pluralize('M'),\n y : pluralize('y'),\n yy : pluralize('y')\n },\n preparse: function (string) {\n return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n }).replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, '،');\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return ar;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var arDz = moment.defineLocale('ar-dz', {\n months : 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n monthsShort : 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'أح_إث_ثلا_أر_خم_جم_سب'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'في %s',\n past : 'منذ %s',\n s : 'ثوان',\n ss : '%d ثانية',\n m : 'دقيقة',\n mm : '%d دقائق',\n h : 'ساعة',\n hh : '%d ساعات',\n d : 'يوم',\n dd : '%d أيام',\n M : 'شهر',\n MM : '%d أشهر',\n y : 'سنة',\n yy : '%d سنوات'\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return arDz;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var arKw = moment.defineLocale('ar-kw', {\n months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'في %s',\n past : 'منذ %s',\n s : 'ثوان',\n ss : '%d ثانية',\n m : 'دقيقة',\n mm : '%d دقائق',\n h : 'ساعة',\n hh : '%d ساعات',\n d : 'يوم',\n dd : '%d أيام',\n M : 'شهر',\n MM : '%d أشهر',\n y : 'سنة',\n yy : '%d سنوات'\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return arKw;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n '0': '0'\n }, pluralForm = function (n) {\n return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;\n }, plurals = {\n s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],\n m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],\n h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],\n d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],\n M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],\n y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']\n }, pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n }, months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر'\n ];\n\n var arLy = moment.defineLocale('ar-ly', {\n months : months,\n monthsShort : months,\n weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'D/\\u200FM/\\u200FYYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|م/,\n isPM : function (input) {\n return 'م' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar : {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'بعد %s',\n past : 'منذ %s',\n s : pluralize('s'),\n ss : pluralize('s'),\n m : pluralize('m'),\n mm : pluralize('m'),\n h : pluralize('h'),\n hh : pluralize('h'),\n d : pluralize('d'),\n dd : pluralize('d'),\n M : pluralize('M'),\n MM : pluralize('M'),\n y : pluralize('y'),\n yy : pluralize('y')\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, '،');\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return arLy;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var arMa = moment.defineLocale('ar-ma', {\n months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'في %s',\n past : 'منذ %s',\n s : 'ثوان',\n ss : '%d ثانية',\n m : 'دقيقة',\n mm : '%d دقائق',\n h : 'ساعة',\n hh : '%d ساعات',\n d : 'يوم',\n dd : '%d أيام',\n M : 'شهر',\n MM : '%d أشهر',\n y : 'سنة',\n yy : '%d سنوات'\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return arMa;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '١',\n '2': '٢',\n '3': '٣',\n '4': '٤',\n '5': '٥',\n '6': '٦',\n '7': '٧',\n '8': '٨',\n '9': '٩',\n '0': '٠'\n }, numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0'\n };\n\n var arSa = moment.defineLocale('ar-sa', {\n months : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n monthsShort : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|م/,\n isPM : function (input) {\n return 'م' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar : {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'في %s',\n past : 'منذ %s',\n s : 'ثوان',\n ss : '%d ثانية',\n m : 'دقيقة',\n mm : '%d دقائق',\n h : 'ساعة',\n hh : '%d ساعات',\n d : 'يوم',\n dd : '%d أيام',\n M : 'شهر',\n MM : '%d أشهر',\n y : 'سنة',\n yy : '%d سنوات'\n },\n preparse: function (string) {\n return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n }).replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, '،');\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return arSa;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var arTn = moment.defineLocale('ar-tn', {\n months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss : '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات'\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return arTn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı'\n };\n\n var az = moment.defineLocale('az', {\n months : 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'),\n monthsShort : 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays : 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split('_'),\n weekdaysShort : 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin : 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[bugün saat] LT',\n nextDay : '[sabah saat] LT',\n nextWeek : '[gələn həftə] dddd [saat] LT',\n lastDay : '[dünən] LT',\n lastWeek : '[keçən həftə] dddd [saat] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s sonra',\n past : '%s əvvəl',\n s : 'birneçə saniyə',\n ss : '%d saniyə',\n m : 'bir dəqiqə',\n mm : '%d dəqiqə',\n h : 'bir saat',\n hh : '%d saat',\n d : 'bir gün',\n dd : '%d gün',\n M : 'bir ay',\n MM : '%d ay',\n y : 'bir il',\n yy : '%d il'\n },\n meridiemParse: /gecə|səhər|gündüz|axşam/,\n isPM : function (input) {\n return /^(gündüz|axşam)$/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'gecə';\n } else if (hour < 12) {\n return 'səhər';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axşam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal : function (number) {\n if (number === 0) { // special case for zero\n return number + '-ıncı';\n }\n var a = number % 10,\n b = number % 100 - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return az;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n 'ss': withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n 'mm': withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n 'hh': withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n 'dd': 'дзень_дні_дзён',\n 'MM': 'месяц_месяцы_месяцаў',\n 'yy': 'год_гады_гадоў'\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n }\n else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n }\n else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n var be = moment.defineLocale('be', {\n months : {\n format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_'),\n standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_')\n },\n monthsShort : 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),\n weekdays : {\n format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split('_'),\n standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split('_'),\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/\n },\n weekdaysShort : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n weekdaysMin : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY г.',\n LLL : 'D MMMM YYYY г., HH:mm',\n LLLL : 'dddd, D MMMM YYYY г., HH:mm'\n },\n calendar : {\n sameDay: '[Сёння ў] LT',\n nextDay: '[Заўтра ў] LT',\n lastDay: '[Учора ў] LT',\n nextWeek: function () {\n return '[У] dddd [ў] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [ў] LT';\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [ў] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'праз %s',\n past : '%s таму',\n s : 'некалькі секунд',\n m : relativeTimeWithPlural,\n mm : relativeTimeWithPlural,\n h : relativeTimeWithPlural,\n hh : relativeTimeWithPlural,\n d : 'дзень',\n dd : relativeTimeWithPlural,\n M : 'месяц',\n MM : relativeTimeWithPlural,\n y : 'год',\n yy : relativeTimeWithPlural\n },\n meridiemParse: /ночы|раніцы|дня|вечара/,\n isPM : function (input) {\n return /^(дня|вечара)$/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) && (number % 100 !== 12 && number % 100 !== 13) ? number + '-і' : number + '-ы';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return be;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var bg = moment.defineLocale('bg', {\n months : 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split('_'),\n monthsShort : 'янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\n weekdays : 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split('_'),\n weekdaysShort : 'нед_пон_вто_сря_чет_пет_съб'.split('_'),\n weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'D.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY H:mm',\n LLLL : 'dddd, D MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[Днес в] LT',\n nextDay : '[Утре в] LT',\n nextWeek : 'dddd [в] LT',\n lastDay : '[Вчера в] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[В изминалата] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[В изминалия] dddd [в] LT';\n }\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'след %s',\n past : 'преди %s',\n s : 'няколко секунди',\n ss : '%d секунди',\n m : 'минута',\n mm : '%d минути',\n h : 'час',\n hh : '%d часа',\n d : 'ден',\n dd : '%d дни',\n M : 'месец',\n MM : '%d месеца',\n y : 'година',\n yy : '%d години'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal : function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return bg;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var bm = moment.defineLocale('bm', {\n months : 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split('_'),\n monthsShort : 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\n weekdays : 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort : 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin : 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'MMMM [tile] D [san] YYYY',\n LLL : 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n LLLL : 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm'\n },\n calendar : {\n sameDay : '[Bi lɛrɛ] LT',\n nextDay : '[Sini lɛrɛ] LT',\n nextWeek : 'dddd [don lɛrɛ] LT',\n lastDay : '[Kunu lɛrɛ] LT',\n lastWeek : 'dddd [tɛmɛnen lɛrɛ] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s kɔnɔ',\n past : 'a bɛ %s bɔ',\n s : 'sanga dama dama',\n ss : 'sekondi %d',\n m : 'miniti kelen',\n mm : 'miniti %d',\n h : 'lɛrɛ kelen',\n hh : 'lɛrɛ %d',\n d : 'tile kelen',\n dd : 'tile %d',\n M : 'kalo kelen',\n MM : 'kalo %d',\n y : 'san kelen',\n yy : 'san %d'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return bm;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '১',\n '2': '২',\n '3': '৩',\n '4': '৪',\n '5': '৫',\n '6': '৬',\n '7': '৭',\n '8': '৮',\n '9': '৯',\n '0': '০'\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0'\n };\n\n var bn = moment.defineLocale('bn', {\n months : 'জানুয়ারী_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'),\n monthsShort : 'জানু_ফেব_মার্চ_এপ্র_মে_জুন_জুল_আগ_সেপ্ট_অক্টো_নভে_ডিসে'.split('_'),\n weekdays : 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split('_'),\n weekdaysShort : 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin : 'রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি'.split('_'),\n longDateFormat : {\n LT : 'A h:mm সময়',\n LTS : 'A h:mm:ss সময়',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm সময়',\n LLLL : 'dddd, D MMMM YYYY, A h:mm সময়'\n },\n calendar : {\n sameDay : '[আজ] LT',\n nextDay : '[আগামীকাল] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[গতকাল] LT',\n lastWeek : '[গত] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s পরে',\n past : '%s আগে',\n s : 'কয়েক সেকেন্ড',\n ss : '%d সেকেন্ড',\n m : 'এক মিনিট',\n mm : '%d মিনিট',\n h : 'এক ঘন্টা',\n hh : '%d ঘন্টা',\n d : 'এক দিন',\n dd : '%d দিন',\n M : 'এক মাস',\n MM : '%d মাস',\n y : 'এক বছর',\n yy : '%d বছর'\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if ((meridiem === 'রাত' && hour >= 4) ||\n (meridiem === 'দুপুর' && hour < 5) ||\n meridiem === 'বিকাল') {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দুপুর';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return bn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '༡',\n '2': '༢',\n '3': '༣',\n '4': '༤',\n '5': '༥',\n '6': '༦',\n '7': '༧',\n '8': '༨',\n '9': '༩',\n '0': '༠'\n },\n numberMap = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0'\n };\n\n var bo = moment.defineLocale('bo', {\n months : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),\n monthsShort : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),\n weekdays : 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split('_'),\n weekdaysShort : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),\n weekdaysMin : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),\n longDateFormat : {\n LT : 'A h:mm',\n LTS : 'A h:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm',\n LLLL : 'dddd, D MMMM YYYY, A h:mm'\n },\n calendar : {\n sameDay : '[དི་རིང] LT',\n nextDay : '[སང་ཉིན] LT',\n nextWeek : '[བདུན་ཕྲག་རྗེས་མ], LT',\n lastDay : '[ཁ་སང] LT',\n lastWeek : '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s ལ་',\n past : '%s སྔན་ལ',\n s : 'ལམ་སང',\n ss : '%d སྐར་ཆ།',\n m : 'སྐར་མ་གཅིག',\n mm : '%d སྐར་མ',\n h : 'ཆུ་ཚོད་གཅིག',\n hh : '%d ཆུ་ཚོད',\n d : 'ཉིན་གཅིག',\n dd : '%d ཉིན་',\n M : 'ཟླ་བ་གཅིག',\n MM : '%d ཟླ་བ',\n y : 'ལོ་གཅིག',\n yy : '%d ལོ'\n },\n preparse: function (string) {\n return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if ((meridiem === 'མཚན་མོ' && hour >= 4) ||\n (meridiem === 'ཉིན་གུང' && hour < 5) ||\n meridiem === 'དགོང་དག') {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'མཚན་མོ';\n } else if (hour < 10) {\n return 'ཞོགས་ཀས';\n } else if (hour < 17) {\n return 'ཉིན་གུང';\n } else if (hour < 20) {\n return 'དགོང་དག';\n } else {\n return 'མཚན་མོ';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return bo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n 'mm': 'munutenn',\n 'MM': 'miz',\n 'dd': 'devezh'\n };\n return number + ' ' + mutation(format[key], number);\n }\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n default:\n return number + ' vloaz';\n }\n }\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n return number;\n }\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n return text;\n }\n function softMutation(text) {\n var mutationTable = {\n 'm': 'v',\n 'b': 'v',\n 'd': 'z'\n };\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n\n var br = moment.defineLocale('br', {\n months : 'Genver_C\\'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split('_'),\n monthsShort : 'Gen_C\\'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays : 'Sul_Lun_Meurzh_Merc\\'her_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort : 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin : 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'h[e]mm A',\n LTS : 'h[e]mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D [a viz] MMMM YYYY',\n LLL : 'D [a viz] MMMM YYYY h[e]mm A',\n LLLL : 'dddd, D [a viz] MMMM YYYY h[e]mm A'\n },\n calendar : {\n sameDay : '[Hiziv da] LT',\n nextDay : '[Warc\\'hoazh da] LT',\n nextWeek : 'dddd [da] LT',\n lastDay : '[Dec\\'h da] LT',\n lastWeek : 'dddd [paset da] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'a-benn %s',\n past : '%s \\'zo',\n s : 'un nebeud segondennoù',\n ss : '%d eilenn',\n m : 'ur vunutenn',\n mm : relativeTimeWithMutation,\n h : 'un eur',\n hh : '%d eur',\n d : 'un devezh',\n dd : relativeTimeWithMutation,\n M : 'ur miz',\n MM : relativeTimeWithMutation,\n y : 'ur bloaz',\n yy : specialMutationForYears\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n ordinal : function (number) {\n var output = (number === 1) ? 'añ' : 'vet';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return br;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var bs = moment.defineLocale('bs', {\n months : 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split('_'),\n monthsShort : 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),\n weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd, D. MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[danas u] LT',\n nextDay : '[sutra u] LT',\n nextWeek : function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay : '[jučer u] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[prošlu] dddd [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'prije %s',\n s : 'par sekundi',\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : 'dan',\n dd : translate,\n M : 'mjesec',\n MM : translate,\n y : 'godinu',\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return bs;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ca = moment.defineLocale('ca', {\n months : {\n standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'),\n format: 'de gener_de febrer_de març_d\\'abril_de maig_de juny_de juliol_d\\'agost_de setembre_d\\'octubre_de novembre_de desembre'.split('_'),\n isFormat: /D[oD]?(\\s)+MMMM/\n },\n monthsShort : 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split('_'),\n monthsParseExact : true,\n weekdays : 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split('_'),\n weekdaysShort : 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n weekdaysMin : 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM [de] YYYY',\n ll : 'D MMM YYYY',\n LLL : 'D MMMM [de] YYYY [a les] H:mm',\n lll : 'D MMM YYYY, H:mm',\n LLLL : 'dddd D MMMM [de] YYYY [a les] H:mm',\n llll : 'ddd D MMM YYYY, H:mm'\n },\n calendar : {\n sameDay : function () {\n return '[avui a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';\n },\n nextDay : function () {\n return '[demà a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';\n },\n nextWeek : function () {\n return 'dddd [a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';\n },\n lastDay : function () {\n return '[ahir a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';\n },\n lastWeek : function () {\n return '[el] dddd [passat a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'd\\'aquí %s',\n past : 'fa %s',\n s : 'uns segons',\n ss : '%d segons',\n m : 'un minut',\n mm : '%d minuts',\n h : 'una hora',\n hh : '%d hores',\n d : 'un dia',\n dd : '%d dies',\n M : 'un mes',\n MM : '%d mesos',\n y : 'un any',\n yy : '%d anys'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal : function (number, period) {\n var output = (number === 1) ? 'r' :\n (number === 2) ? 'n' :\n (number === 3) ? 'r' :\n (number === 4) ? 't' : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return ca;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var months = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split('_'),\n monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_');\n function plural(n) {\n return (n > 1) && (n < 5) && (~~(n / 10) !== 1);\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return (withoutSuffix || isFuture) ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n break;\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : (isFuture ? 'minutu' : 'minutou');\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n break;\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n break;\n case 'd': // a day / in a day / a day ago\n return (withoutSuffix || isFuture) ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dny' : 'dní');\n } else {\n return result + 'dny';\n }\n break;\n case 'M': // a month / in a month / a month ago\n return (withoutSuffix || isFuture) ? 'měsíc' : 'měsícem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'měsíce' : 'měsíců');\n } else {\n return result + 'měsíci';\n }\n break;\n case 'y': // a year / in a year / a year ago\n return (withoutSuffix || isFuture) ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n break;\n }\n }\n\n var cs = moment.defineLocale('cs', {\n months : months,\n monthsShort : monthsShort,\n monthsParse : (function (months, monthsShort) {\n var i, _monthsParse = [];\n for (i = 0; i < 12; i++) {\n // use custom parser to solve problem with July (červenec)\n _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i');\n }\n return _monthsParse;\n }(months, monthsShort)),\n shortMonthsParse : (function (monthsShort) {\n var i, _shortMonthsParse = [];\n for (i = 0; i < 12; i++) {\n _shortMonthsParse[i] = new RegExp('^' + monthsShort[i] + '$', 'i');\n }\n return _shortMonthsParse;\n }(monthsShort)),\n longMonthsParse : (function (months) {\n var i, _longMonthsParse = [];\n for (i = 0; i < 12; i++) {\n _longMonthsParse[i] = new RegExp('^' + months[i] + '$', 'i');\n }\n return _longMonthsParse;\n }(months)),\n weekdays : 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n weekdaysShort : 'ne_po_út_st_čt_pá_so'.split('_'),\n weekdaysMin : 'ne_po_út_st_čt_pá_so'.split('_'),\n longDateFormat : {\n LT: 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd D. MMMM YYYY H:mm',\n l : 'D. M. YYYY'\n },\n calendar : {\n sameDay: '[dnes v] LT',\n nextDay: '[zítra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v neděli v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve středu v] LT';\n case 4:\n return '[ve čtvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[včera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou neděli v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou středu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'před %s',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse : /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return cs;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var cv = moment.defineLocale('cv', {\n months : 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split('_'),\n monthsShort : 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays : 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split('_'),\n weekdaysShort : 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\n weekdaysMin : 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD-MM-YYYY',\n LL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL : 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm'\n },\n calendar : {\n sameDay: '[Паян] LT [сехетре]',\n nextDay: '[Ыран] LT [сехетре]',\n lastDay: '[Ӗнер] LT [сехетре]',\n nextWeek: '[Ҫитес] dddd LT [сехетре]',\n lastWeek: '[Иртнӗ] dddd LT [сехетре]',\n sameElse: 'L'\n },\n relativeTime : {\n future : function (output) {\n var affix = /сехет$/i.exec(output) ? 'рен' : /ҫул$/i.exec(output) ? 'тан' : 'ран';\n return output + affix;\n },\n past : '%s каялла',\n s : 'пӗр-ик ҫеккунт',\n ss : '%d ҫеккунт',\n m : 'пӗр минут',\n mm : '%d минут',\n h : 'пӗр сехет',\n hh : '%d сехет',\n d : 'пӗр кун',\n dd : '%d кун',\n M : 'пӗр уйӑх',\n MM : '%d уйӑх',\n y : 'пӗр ҫул',\n yy : '%d ҫул'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal : '%d-мӗш',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return cv;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var cy = moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'),\n weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact : true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS : 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = [\n '', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed\n 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed\n ];\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return cy;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var da = moment.defineLocale('da', {\n months : 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'),\n monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort : 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY HH:mm',\n LLLL : 'dddd [d.] D. MMMM YYYY [kl.] HH:mm'\n },\n calendar : {\n sameDay : '[i dag kl.] LT',\n nextDay : '[i morgen kl.] LT',\n nextWeek : 'på dddd [kl.] LT',\n lastDay : '[i går kl.] LT',\n lastWeek : '[i] dddd[s kl.] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'om %s',\n past : '%s siden',\n s : 'få sekunder',\n ss : '%d sekunder',\n m : 'et minut',\n mm : '%d minutter',\n h : 'en time',\n hh : '%d timer',\n d : 'en dag',\n dd : '%d dage',\n M : 'en måned',\n MM : '%d måneder',\n y : 'et år',\n yy : '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return da;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 'm': ['eine Minute', 'einer Minute'],\n 'h': ['eine Stunde', 'einer Stunde'],\n 'd': ['ein Tag', 'einem Tag'],\n 'dd': [number + ' Tage', number + ' Tagen'],\n 'M': ['ein Monat', 'einem Monat'],\n 'MM': [number + ' Monate', number + ' Monaten'],\n 'y': ['ein Jahr', 'einem Jahr'],\n 'yy': [number + ' Jahre', number + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var de = moment.defineLocale('de', {\n months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort : 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY HH:mm',\n LLLL : 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime : {\n future : 'in %s',\n past : 'vor %s',\n s : 'ein paar Sekunden',\n ss : '%d Sekunden',\n m : processRelativeTime,\n mm : '%d Minuten',\n h : processRelativeTime,\n hh : '%d Stunden',\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return de;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 'm': ['eine Minute', 'einer Minute'],\n 'h': ['eine Stunde', 'einer Stunde'],\n 'd': ['ein Tag', 'einem Tag'],\n 'dd': [number + ' Tage', number + ' Tagen'],\n 'M': ['ein Monat', 'einem Monat'],\n 'MM': [number + ' Monate', number + ' Monaten'],\n 'y': ['ein Jahr', 'einem Jahr'],\n 'yy': [number + ' Jahre', number + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deAt = moment.defineLocale('de-at', {\n months : 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort : 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY HH:mm',\n LLLL : 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime : {\n future : 'in %s',\n past : 'vor %s',\n s : 'ein paar Sekunden',\n ss : '%d Sekunden',\n m : processRelativeTime,\n mm : '%d Minuten',\n h : processRelativeTime,\n hh : '%d Stunden',\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return deAt;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 'm': ['eine Minute', 'einer Minute'],\n 'h': ['eine Stunde', 'einer Stunde'],\n 'd': ['ein Tag', 'einem Tag'],\n 'dd': [number + ' Tage', number + ' Tagen'],\n 'M': ['ein Monat', 'einem Monat'],\n 'MM': [number + ' Monate', number + ' Monaten'],\n 'y': ['ein Jahr', 'einem Jahr'],\n 'yy': [number + ' Jahre', number + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deCh = moment.defineLocale('de-ch', {\n months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort : 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY HH:mm',\n LLLL : 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime : {\n future : 'in %s',\n past : 'vor %s',\n s : 'ein paar Sekunden',\n ss : '%d Sekunden',\n m : processRelativeTime,\n mm : '%d Minuten',\n h : processRelativeTime,\n hh : '%d Stunden',\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return deCh;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var months = [\n 'ޖެނުއަރީ',\n 'ފެބްރުއަރީ',\n 'މާރިޗު',\n 'އޭޕްރީލު',\n 'މޭ',\n 'ޖޫން',\n 'ޖުލައި',\n 'އޯގަސްޓު',\n 'ސެޕްޓެމްބަރު',\n 'އޮކްޓޯބަރު',\n 'ނޮވެމްބަރު',\n 'ޑިސެމްބަރު'\n ], weekdays = [\n 'އާދިއްތަ',\n 'ހޯމަ',\n 'އަންގާރަ',\n 'ބުދަ',\n 'ބުރާސްފަތި',\n 'ހުކުރު',\n 'ހޮނިހިރު'\n ];\n\n var dv = moment.defineLocale('dv', {\n months : months,\n monthsShort : months,\n weekdays : weekdays,\n weekdaysShort : weekdays,\n weekdaysMin : 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),\n longDateFormat : {\n\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'D/M/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /މކ|މފ/,\n isPM : function (input) {\n return 'މފ' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'މކ';\n } else {\n return 'މފ';\n }\n },\n calendar : {\n sameDay : '[މިއަދު] LT',\n nextDay : '[މާދަމާ] LT',\n nextWeek : 'dddd LT',\n lastDay : '[އިއްޔެ] LT',\n lastWeek : '[ފާއިތުވި] dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'ތެރޭގައި %s',\n past : 'ކުރިން %s',\n s : 'ސިކުންތުކޮޅެއް',\n ss : 'd% ސިކުންތު',\n m : 'މިނިޓެއް',\n mm : 'މިނިޓު %d',\n h : 'ގަޑިއިރެއް',\n hh : 'ގަޑިއިރު %d',\n d : 'ދުވަހެއް',\n dd : 'ދުވަސް %d',\n M : 'މަހެއް',\n MM : 'މަސް %d',\n y : 'އަހަރެއް',\n yy : 'އަހަރު %d'\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week : {\n dow : 7, // Sunday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return dv;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n function isFunction(input) {\n return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n\n var el = moment.defineLocale('el', {\n monthsNominativeEl : 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split('_'),\n monthsGenitiveEl : 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split('_'),\n months : function (momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (typeof format === 'string' && /D/.test(format.substring(0, format.indexOf('MMMM')))) { // if there is a day number before 'MMMM'\n return this._monthsGenitiveEl[momentToFormat.month()];\n } else {\n return this._monthsNominativeEl[momentToFormat.month()];\n }\n },\n monthsShort : 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),\n weekdays : 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split('_'),\n weekdaysShort : 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\n weekdaysMin : 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem : function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'ΠΜ';\n }\n },\n isPM : function (input) {\n return ((input + '').toLowerCase()[0] === 'μ');\n },\n meridiemParse : /[ΠΜ]\\.?Μ?\\.?/i,\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendarEl : {\n sameDay : '[Σήμερα {}] LT',\n nextDay : '[Αύριο {}] LT',\n nextWeek : 'dddd [{}] LT',\n lastDay : '[Χθες {}] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 6:\n return '[το προηγούμενο] dddd [{}] LT';\n default:\n return '[την προηγούμενη] dddd [{}] LT';\n }\n },\n sameElse : 'L'\n },\n calendar : function (key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n if (isFunction(output)) {\n output = output.apply(mom);\n }\n return output.replace('{}', (hours % 12 === 1 ? 'στη' : 'στις'));\n },\n relativeTime : {\n future : 'σε %s',\n past : '%s πριν',\n s : 'λίγα δευτερόλεπτα',\n ss : '%d δευτερόλεπτα',\n m : 'ένα λεπτό',\n mm : '%d λεπτά',\n h : 'μία ώρα',\n hh : '%d ώρες',\n d : 'μία μέρα',\n dd : '%d μέρες',\n M : 'ένας μήνας',\n MM : '%d μήνες',\n y : 'ένας χρόνος',\n yy : '%d χρόνια'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}η/,\n ordinal: '%dη',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4st is the first week of the year.\n }\n });\n\n return el;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enAu = moment.defineLocale('en-au', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return enAu;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enCa = moment.defineLocale('en-ca', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'YYYY-MM-DD',\n LL : 'MMMM D, YYYY',\n LLL : 'MMMM D, YYYY h:mm A',\n LLLL : 'dddd, MMMM D, YYYY h:mm A'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n }\n });\n\n return enCa;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enGb = moment.defineLocale('en-gb', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return enGb;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enIe = moment.defineLocale('en-ie', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD-MM-YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return enIe;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enIl = moment.defineLocale('en-il', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n }\n });\n\n return enIl;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enNz = moment.defineLocale('en-nz', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return enNz;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var eo = moment.defineLocale('eo', {\n months : 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split('_'),\n monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec'.split('_'),\n weekdays : 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n weekdaysShort : 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n weekdaysMin : 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'D[-a de] MMMM, YYYY',\n LLL : 'D[-a de] MMMM, YYYY HH:mm',\n LLLL : 'dddd, [la] D[-a de] MMMM, YYYY HH:mm'\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar : {\n sameDay : '[Hodiaŭ je] LT',\n nextDay : '[Morgaŭ je] LT',\n nextWeek : 'dddd [je] LT',\n lastDay : '[Hieraŭ je] LT',\n lastWeek : '[pasinta] dddd [je] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'post %s',\n past : 'antaŭ %s',\n s : 'sekundoj',\n ss : '%d sekundoj',\n m : 'minuto',\n mm : '%d minutoj',\n h : 'horo',\n hh : '%d horoj',\n d : 'tago',//ne 'diurno', ĉar estas uzita por proksimumo\n dd : '%d tagoj',\n M : 'monato',\n MM : '%d monatoj',\n y : 'jaro',\n yy : '%d jaroj'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal : '%da',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return eo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\n var monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];\n var monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var es = moment.defineLocale('es', {\n months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex : monthsRegex,\n monthsShortRegex : monthsRegex,\n monthsStrictRegex : /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex : /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse : monthsParse,\n longMonthsParse : monthsParse,\n shortMonthsParse : monthsParse,\n weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D [de] MMMM [de] YYYY',\n LLL : 'D [de] MMMM [de] YYYY H:mm',\n LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar : {\n sameDay : function () {\n return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextDay : function () {\n return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextWeek : function () {\n return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastDay : function () {\n return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastWeek : function () {\n return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'en %s',\n past : 'hace %s',\n s : 'unos segundos',\n ss : '%d segundos',\n m : 'un minuto',\n mm : '%d minutos',\n h : 'una hora',\n hh : '%d horas',\n d : 'un día',\n dd : '%d días',\n M : 'un mes',\n MM : '%d meses',\n y : 'un año',\n yy : '%d años'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal : '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return es;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\n var monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];\n var monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esDo = moment.defineLocale('es-do', {\n months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D [de] MMMM [de] YYYY',\n LLL : 'D [de] MMMM [de] YYYY h:mm A',\n LLLL : 'dddd, D [de] MMMM [de] YYYY h:mm A'\n },\n calendar : {\n sameDay : function () {\n return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextDay : function () {\n return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextWeek : function () {\n return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastDay : function () {\n return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastWeek : function () {\n return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'en %s',\n past : 'hace %s',\n s : 'unos segundos',\n ss : '%d segundos',\n m : 'un minuto',\n mm : '%d minutos',\n h : 'una hora',\n hh : '%d horas',\n d : 'un día',\n dd : '%d días',\n M : 'un mes',\n MM : '%d meses',\n y : 'un año',\n yy : '%d años'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal : '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return esDo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\n var esUs = moment.defineLocale('es-us', {\n months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsParseExact : true,\n weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'MM/DD/YYYY',\n LL : 'MMMM [de] D [de] YYYY',\n LLL : 'MMMM [de] D [de] YYYY h:mm A',\n LLLL : 'dddd, MMMM [de] D [de] YYYY h:mm A'\n },\n calendar : {\n sameDay : function () {\n return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextDay : function () {\n return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextWeek : function () {\n return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastDay : function () {\n return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastWeek : function () {\n return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'en %s',\n past : 'hace %s',\n s : 'unos segundos',\n ss : '%d segundos',\n m : 'un minuto',\n mm : '%d minutos',\n h : 'una hora',\n hh : '%d horas',\n d : 'un día',\n dd : '%d días',\n M : 'un mes',\n MM : '%d meses',\n y : 'un año',\n yy : '%d años'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal : '%dº',\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return esUs;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 's' : ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n 'ss': [number + 'sekundi', number + 'sekundit'],\n 'm' : ['ühe minuti', 'üks minut'],\n 'mm': [number + ' minuti', number + ' minutit'],\n 'h' : ['ühe tunni', 'tund aega', 'üks tund'],\n 'hh': [number + ' tunni', number + ' tundi'],\n 'd' : ['ühe päeva', 'üks päev'],\n 'M' : ['kuu aja', 'kuu aega', 'üks kuu'],\n 'MM': [number + ' kuu', number + ' kuud'],\n 'y' : ['ühe aasta', 'aasta', 'üks aasta'],\n 'yy': [number + ' aasta', number + ' aastat']\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var et = moment.defineLocale('et', {\n months : 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'),\n monthsShort : 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),\n weekdays : 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'),\n weekdaysShort : 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin : 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd, D. MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[Täna,] LT',\n nextDay : '[Homme,] LT',\n nextWeek : '[Järgmine] dddd LT',\n lastDay : '[Eile,] LT',\n lastWeek : '[Eelmine] dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s pärast',\n past : '%s tagasi',\n s : processRelativeTime,\n ss : processRelativeTime,\n m : processRelativeTime,\n mm : processRelativeTime,\n h : processRelativeTime,\n hh : processRelativeTime,\n d : processRelativeTime,\n dd : '%d päeva',\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return et;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var eu = moment.defineLocale('eu', {\n months : 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split('_'),\n monthsShort : 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split('_'),\n monthsParseExact : true,\n weekdays : 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split('_'),\n weekdaysShort : 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin : 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'YYYY[ko] MMMM[ren] D[a]',\n LLL : 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL : 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l : 'YYYY-M-D',\n ll : 'YYYY[ko] MMM D[a]',\n lll : 'YYYY[ko] MMM D[a] HH:mm',\n llll : 'ddd, YYYY[ko] MMM D[a] HH:mm'\n },\n calendar : {\n sameDay : '[gaur] LT[etan]',\n nextDay : '[bihar] LT[etan]',\n nextWeek : 'dddd LT[etan]',\n lastDay : '[atzo] LT[etan]',\n lastWeek : '[aurreko] dddd LT[etan]',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s barru',\n past : 'duela %s',\n s : 'segundo batzuk',\n ss : '%d segundo',\n m : 'minutu bat',\n mm : '%d minutu',\n h : 'ordu bat',\n hh : '%d ordu',\n d : 'egun bat',\n dd : '%d egun',\n M : 'hilabete bat',\n MM : '%d hilabete',\n y : 'urte bat',\n yy : '%d urte'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return eu;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '۱',\n '2': '۲',\n '3': '۳',\n '4': '۴',\n '5': '۵',\n '6': '۶',\n '7': '۷',\n '8': '۸',\n '9': '۹',\n '0': '۰'\n }, numberMap = {\n '۱': '1',\n '۲': '2',\n '۳': '3',\n '۴': '4',\n '۵': '5',\n '۶': '6',\n '۷': '7',\n '۸': '8',\n '۹': '9',\n '۰': '0'\n };\n\n var fa = moment.defineLocale('fa', {\n months : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),\n monthsShort : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),\n weekdays : 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split('_'),\n weekdaysShort : 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split('_'),\n weekdaysMin : 'ی_د_س_چ_پ_ج_ش'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n meridiemParse: /قبل از ظهر|بعد از ظهر/,\n isPM: function (input) {\n return /بعد از ظهر/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'قبل از ظهر';\n } else {\n return 'بعد از ظهر';\n }\n },\n calendar : {\n sameDay : '[امروز ساعت] LT',\n nextDay : '[فردا ساعت] LT',\n nextWeek : 'dddd [ساعت] LT',\n lastDay : '[دیروز ساعت] LT',\n lastWeek : 'dddd [پیش] [ساعت] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'در %s',\n past : '%s پیش',\n s : 'چند ثانیه',\n ss : 'ثانیه d%',\n m : 'یک دقیقه',\n mm : '%d دقیقه',\n h : 'یک ساعت',\n hh : '%d ساعت',\n d : 'یک روز',\n dd : '%d روز',\n M : 'یک ماه',\n MM : '%d ماه',\n y : 'یک سال',\n yy : '%d سال'\n },\n preparse: function (string) {\n return string.replace(/[۰-۹]/g, function (match) {\n return numberMap[match];\n }).replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, '،');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}م/,\n ordinal : '%dم',\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return fa;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),\n numbersFuture = [\n 'nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden',\n numbersPast[7], numbersPast[8], numbersPast[9]\n ];\n function translate(number, withoutSuffix, key, isFuture) {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n return isFuture ? 'sekunnin' : 'sekuntia';\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n function verbalNumber(number, isFuture) {\n return number < 10 ? (isFuture ? numbersFuture[number] : numbersPast[number]) : number;\n }\n\n var fi = moment.defineLocale('fi', {\n months : 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'),\n monthsShort : 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),\n weekdays : 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'),\n weekdaysShort : 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin : 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD.MM.YYYY',\n LL : 'Do MMMM[ta] YYYY',\n LLL : 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL : 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l : 'D.M.YYYY',\n ll : 'Do MMM YYYY',\n lll : 'Do MMM YYYY, [klo] HH.mm',\n llll : 'ddd, Do MMM YYYY, [klo] HH.mm'\n },\n calendar : {\n sameDay : '[tänään] [klo] LT',\n nextDay : '[huomenna] [klo] LT',\n nextWeek : 'dddd [klo] LT',\n lastDay : '[eilen] [klo] LT',\n lastWeek : '[viime] dddd[na] [klo] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s päästä',\n past : '%s sitten',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return fi;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var fo = moment.defineLocale('fo', {\n months : 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays : 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'),\n weekdaysShort : 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n weekdaysMin : 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D. MMMM, YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Í dag kl.] LT',\n nextDay : '[Í morgin kl.] LT',\n nextWeek : 'dddd [kl.] LT',\n lastDay : '[Í gjár kl.] LT',\n lastWeek : '[síðstu] dddd [kl] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'um %s',\n past : '%s síðani',\n s : 'fá sekund',\n ss : '%d sekundir',\n m : 'ein minutt',\n mm : '%d minuttir',\n h : 'ein tími',\n hh : '%d tímar',\n d : 'ein dagur',\n dd : '%d dagar',\n M : 'ein mánaði',\n MM : '%d mánaðir',\n y : 'eitt ár',\n yy : '%d ár'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return fo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var fr = moment.defineLocale('fr', {\n months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact : true,\n weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Aujourd’hui à] LT',\n nextDay : '[Demain à] LT',\n nextWeek : 'dddd [à] LT',\n lastDay : '[Hier à] LT',\n lastWeek : 'dddd [dernier à] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dans %s',\n past : 'il y a %s',\n s : 'quelques secondes',\n ss : '%d secondes',\n m : 'une minute',\n mm : '%d minutes',\n h : 'une heure',\n hh : '%d heures',\n d : 'un jour',\n dd : '%d jours',\n M : 'un mois',\n MM : '%d mois',\n y : 'un an',\n yy : '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal : function (number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return fr;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var frCa = moment.defineLocale('fr-ca', {\n months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact : true,\n weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Aujourd’hui à] LT',\n nextDay : '[Demain à] LT',\n nextWeek : 'dddd [à] LT',\n lastDay : '[Hier à] LT',\n lastWeek : 'dddd [dernier à] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dans %s',\n past : 'il y a %s',\n s : 'quelques secondes',\n ss : '%d secondes',\n m : 'une minute',\n mm : '%d minutes',\n h : 'une heure',\n hh : '%d heures',\n d : 'un jour',\n dd : '%d jours',\n M : 'un mois',\n MM : '%d mois',\n y : 'un an',\n yy : '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal : function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n }\n });\n\n return frCa;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var frCh = moment.defineLocale('fr-ch', {\n months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact : true,\n weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Aujourd’hui à] LT',\n nextDay : '[Demain à] LT',\n nextWeek : 'dddd [à] LT',\n lastDay : '[Hier à] LT',\n lastWeek : 'dddd [dernier à] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dans %s',\n past : 'il y a %s',\n s : 'quelques secondes',\n ss : '%d secondes',\n m : 'une minute',\n mm : '%d minutes',\n h : 'une heure',\n hh : '%d heures',\n d : 'un jour',\n dd : '%d jours',\n M : 'un mois',\n MM : '%d mois',\n y : 'un an',\n yy : '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal : function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return frCh;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');\n\n var fy = moment.defineLocale('fy', {\n months : 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsParseExact : true,\n weekdays : 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split('_'),\n weekdaysShort : 'si._mo._ti._wo._to._fr._so.'.split('_'),\n weekdaysMin : 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD-MM-YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[hjoed om] LT',\n nextDay: '[moarn om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[juster om] LT',\n lastWeek: '[ôfrûne] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'oer %s',\n past : '%s lyn',\n s : 'in pear sekonden',\n ss : '%d sekonden',\n m : 'ien minút',\n mm : '%d minuten',\n h : 'ien oere',\n hh : '%d oeren',\n d : 'ien dei',\n dd : '%d dagen',\n M : 'ien moanne',\n MM : '%d moannen',\n y : 'ien jier',\n yy : '%d jierren'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal : function (number) {\n return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return fy;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var months = [\n 'Am Faoilleach', 'An Gearran', 'Am Màrt', 'An Giblean', 'An Cèitean', 'An t-Ògmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dàmhair', 'An t-Samhain', 'An Dùbhlachd'\n ];\n\n var monthsShort = ['Faoi', 'Gear', 'Màrt', 'Gibl', 'Cèit', 'Ògmh', 'Iuch', 'Lùn', 'Sult', 'Dàmh', 'Samh', 'Dùbh'];\n\n var weekdays = ['Didòmhnaich', 'Diluain', 'Dimàirt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne'];\n\n var weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'];\n\n var weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n var gd = moment.defineLocale('gd', {\n months : months,\n monthsShort : monthsShort,\n monthsParseExact : true,\n weekdays : weekdays,\n weekdaysShort : weekdaysShort,\n weekdaysMin : weekdaysMin,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[An-diugh aig] LT',\n nextDay : '[A-màireach aig] LT',\n nextWeek : 'dddd [aig] LT',\n lastDay : '[An-dè aig] LT',\n lastWeek : 'dddd [seo chaidh] [aig] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'ann an %s',\n past : 'bho chionn %s',\n s : 'beagan diogan',\n ss : '%d diogan',\n m : 'mionaid',\n mm : '%d mionaidean',\n h : 'uair',\n hh : '%d uairean',\n d : 'latha',\n dd : '%d latha',\n M : 'mìos',\n MM : '%d mìosan',\n y : 'bliadhna',\n yy : '%d bliadhna'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}(d|na|mh)/,\n ordinal : function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return gd;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var gl = moment.defineLocale('gl', {\n months : 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split('_'),\n monthsShort : 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays : 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort : 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin : 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D [de] MMMM [de] YYYY',\n LLL : 'D [de] MMMM [de] YYYY H:mm',\n LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar : {\n sameDay : function () {\n return '[hoxe ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';\n },\n nextDay : function () {\n return '[mañá ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';\n },\n nextWeek : function () {\n return 'dddd [' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';\n },\n lastDay : function () {\n return '[onte ' + ((this.hours() !== 1) ? 'á' : 'a') + '] LT';\n },\n lastWeek : function () {\n return '[o] dddd [pasado ' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : function (str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\n return 'en ' + str;\n },\n past : 'hai %s',\n s : 'uns segundos',\n ss : '%d segundos',\n m : 'un minuto',\n mm : '%d minutos',\n h : 'unha hora',\n hh : '%d horas',\n d : 'un día',\n dd : '%d días',\n M : 'un mes',\n MM : '%d meses',\n y : 'un ano',\n yy : '%d anos'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal : '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return gl;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 's': ['thodde secondanim', 'thodde second'],\n 'ss': [number + ' secondanim', number + ' second'],\n 'm': ['eka mintan', 'ek minute'],\n 'mm': [number + ' mintanim', number + ' mintam'],\n 'h': ['eka horan', 'ek hor'],\n 'hh': [number + ' horanim', number + ' horam'],\n 'd': ['eka disan', 'ek dis'],\n 'dd': [number + ' disanim', number + ' dis'],\n 'M': ['eka mhoinean', 'ek mhoino'],\n 'MM': [number + ' mhoineanim', number + ' mhoine'],\n 'y': ['eka vorsan', 'ek voros'],\n 'yy': [number + ' vorsanim', number + ' vorsam']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var gomLatn = moment.defineLocale('gom-latn', {\n months : 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split('_'),\n monthsShort : 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays : 'Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son\\'var'.split('_'),\n weekdaysShort : 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin : 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'A h:mm [vazta]',\n LTS : 'A h:mm:ss [vazta]',\n L : 'DD-MM-YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY A h:mm [vazta]',\n LLLL : 'dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]'\n },\n calendar : {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Ieta to] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fatlo] dddd[,] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : '%s',\n past : '%s adim',\n s : processRelativeTime,\n ss : processRelativeTime,\n m : processRelativeTime,\n mm : processRelativeTime,\n h : processRelativeTime,\n hh : processRelativeTime,\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse : /\\d{1,2}(er)/,\n ordinal : function (number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /rati|sokalli|donparam|sanje/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokalli') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokalli';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n }\n });\n\n return gomLatn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '૧',\n '2': '૨',\n '3': '૩',\n '4': '૪',\n '5': '૫',\n '6': '૬',\n '7': '૭',\n '8': '૮',\n '9': '૯',\n '0': '૦'\n },\n numberMap = {\n '૧': '1',\n '૨': '2',\n '૩': '3',\n '૪': '4',\n '૫': '5',\n '૬': '6',\n '૭': '7',\n '૮': '8',\n '૯': '9',\n '૦': '0'\n };\n\n var gu = moment.defineLocale('gu', {\n months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split('_'),\n monthsShort: 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split('_'),\n monthsParseExact: true,\n weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split('_'),\n weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),\n weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm વાગ્યે',\n LTS: 'A h:mm:ss વાગ્યે',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm વાગ્યે',\n LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે'\n },\n calendar: {\n sameDay: '[આજ] LT',\n nextDay: '[કાલે] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ગઇકાલે] LT',\n lastWeek: '[પાછલા] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s મા',\n past: '%s પેહલા',\n s: 'અમુક પળો',\n ss: '%d સેકંડ',\n m: 'એક મિનિટ',\n mm: '%d મિનિટ',\n h: 'એક કલાક',\n hh: '%d કલાક',\n d: 'એક દિવસ',\n dd: '%d દિવસ',\n M: 'એક મહિનો',\n MM: '%d મહિનો',\n y: 'એક વર્ષ',\n yy: '%d વર્ષ'\n },\n preparse: function (string) {\n return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'રાત') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'સવાર') {\n return hour;\n } else if (meridiem === 'બપોર') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'સાંજ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'રાત';\n } else if (hour < 10) {\n return 'સવાર';\n } else if (hour < 17) {\n return 'બપોર';\n } else if (hour < 20) {\n return 'સાંજ';\n } else {\n return 'રાત';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return gu;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var he = moment.defineLocale('he', {\n months : 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split('_'),\n monthsShort : 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),\n weekdays : 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort : 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin : 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D [ב]MMMM YYYY',\n LLL : 'D [ב]MMMM YYYY HH:mm',\n LLLL : 'dddd, D [ב]MMMM YYYY HH:mm',\n l : 'D/M/YYYY',\n ll : 'D MMM YYYY',\n lll : 'D MMM YYYY HH:mm',\n llll : 'ddd, D MMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[היום ב־]LT',\n nextDay : '[מחר ב־]LT',\n nextWeek : 'dddd [בשעה] LT',\n lastDay : '[אתמול ב־]LT',\n lastWeek : '[ביום] dddd [האחרון בשעה] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'בעוד %s',\n past : 'לפני %s',\n s : 'מספר שניות',\n ss : '%d שניות',\n m : 'דקה',\n mm : '%d דקות',\n h : 'שעה',\n hh : function (number) {\n if (number === 2) {\n return 'שעתיים';\n }\n return number + ' שעות';\n },\n d : 'יום',\n dd : function (number) {\n if (number === 2) {\n return 'יומיים';\n }\n return number + ' ימים';\n },\n M : 'חודש',\n MM : function (number) {\n if (number === 2) {\n return 'חודשיים';\n }\n return number + ' חודשים';\n },\n y : 'שנה',\n yy : function (number) {\n if (number === 2) {\n return 'שנתיים';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' שנה';\n }\n return number + ' שנים';\n }\n },\n meridiemParse: /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n isPM : function (input) {\n return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 5) {\n return 'לפנות בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n } else if (hour < 18) {\n return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n } else {\n return 'בערב';\n }\n }\n });\n\n return he;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': '७',\n '8': '८',\n '9': '९',\n '0': '०'\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n\n var hi = moment.defineLocale('hi', {\n months : 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'),\n monthsShort : 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),\n monthsParseExact: true,\n weekdays : 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort : 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat : {\n LT : 'A h:mm बजे',\n LTS : 'A h:mm:ss बजे',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm बजे',\n LLLL : 'dddd, D MMMM YYYY, A h:mm बजे'\n },\n calendar : {\n sameDay : '[आज] LT',\n nextDay : '[कल] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[कल] LT',\n lastWeek : '[पिछले] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s में',\n past : '%s पहले',\n s : 'कुछ ही क्षण',\n ss : '%d सेकंड',\n m : 'एक मिनट',\n mm : '%d मिनट',\n h : 'एक घंटा',\n hh : '%d घंटे',\n d : 'एक दिन',\n dd : '%d दिन',\n M : 'एक महीने',\n MM : '%d महीने',\n y : 'एक वर्ष',\n yy : '%d वर्ष'\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सुबह|दोपहर|शाम/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सुबह') {\n return hour;\n } else if (meridiem === 'दोपहर') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सुबह';\n } else if (hour < 17) {\n return 'दोपहर';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return hi;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var hr = moment.defineLocale('hr', {\n months : {\n format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split('_'),\n standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_')\n },\n monthsShort : 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'),\n monthsParseExact: true,\n weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),\n weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd, D. MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[danas u] LT',\n nextDay : '[sutra u] LT',\n nextWeek : function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay : '[jučer u] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[prošlu] dddd [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'prije %s',\n s : 'par sekundi',\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : 'dan',\n dd : translate,\n M : 'mjesec',\n MM : translate,\n y : 'godinu',\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return hr;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');\n function translate(number, withoutSuffix, key, isFuture) {\n var num = number;\n switch (key) {\n case 's':\n return (isFuture || withoutSuffix) ? 'néhány másodperc' : 'néhány másodperce';\n case 'ss':\n return num + (isFuture || withoutSuffix) ? ' másodperc' : ' másodperce';\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n }\n function week(isFuture) {\n return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]';\n }\n\n var hu = moment.defineLocale('hu', {\n months : 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'),\n monthsShort : 'jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec'.split('_'),\n weekdays : 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort : 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin : 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'YYYY.MM.DD.',\n LL : 'YYYY. MMMM D.',\n LLL : 'YYYY. MMMM D. H:mm',\n LLLL : 'YYYY. MMMM D., dddd H:mm'\n },\n meridiemParse: /de|du/i,\n isPM: function (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar : {\n sameDay : '[ma] LT[-kor]',\n nextDay : '[holnap] LT[-kor]',\n nextWeek : function () {\n return week.call(this, true);\n },\n lastDay : '[tegnap] LT[-kor]',\n lastWeek : function () {\n return week.call(this, false);\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s múlva',\n past : '%s',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return hu;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var hyAm = moment.defineLocale('hy-am', {\n months : {\n format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_'),\n standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_')\n },\n monthsShort : 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),\n weekdays : 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split('_'),\n weekdaysShort : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n weekdaysMin : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY թ.',\n LLL : 'D MMMM YYYY թ., HH:mm',\n LLLL : 'dddd, D MMMM YYYY թ., HH:mm'\n },\n calendar : {\n sameDay: '[այսօր] LT',\n nextDay: '[վաղը] LT',\n lastDay: '[երեկ] LT',\n nextWeek: function () {\n return 'dddd [օրը ժամը] LT';\n },\n lastWeek: function () {\n return '[անցած] dddd [օրը ժամը] LT';\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : '%s հետո',\n past : '%s առաջ',\n s : 'մի քանի վայրկյան',\n ss : '%d վայրկյան',\n m : 'րոպե',\n mm : '%d րոպե',\n h : 'ժամ',\n hh : '%d ժամ',\n d : 'օր',\n dd : '%d օր',\n M : 'ամիս',\n MM : '%d ամիս',\n y : 'տարի',\n yy : '%d տարի'\n },\n meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,\n isPM: function (input) {\n return /^(ցերեկվա|երեկոյան)$/.test(input);\n },\n meridiem : function (hour) {\n if (hour < 4) {\n return 'գիշերվա';\n } else if (hour < 12) {\n return 'առավոտվա';\n } else if (hour < 17) {\n return 'ցերեկվա';\n } else {\n return 'երեկոյան';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(ին|րդ)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-ին';\n }\n return number + '-րդ';\n default:\n return number;\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return hyAm;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var id = moment.defineLocale('id', {\n months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays : 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort : 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [pukul] HH.mm',\n LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar : {\n sameDay : '[Hari ini pukul] LT',\n nextDay : '[Besok pukul] LT',\n nextWeek : 'dddd [pukul] LT',\n lastDay : '[Kemarin pukul] LT',\n lastWeek : 'dddd [lalu pukul] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dalam %s',\n past : '%s yang lalu',\n s : 'beberapa detik',\n ss : '%d detik',\n m : 'semenit',\n mm : '%d menit',\n h : 'sejam',\n hh : '%d jam',\n d : 'sehari',\n dd : '%d hari',\n M : 'sebulan',\n MM : '%d bulan',\n y : 'setahun',\n yy : '%d tahun'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return id;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function plural(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n return true;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum';\n case 'ss':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum');\n }\n return result + 'sekúnda';\n case 'm':\n return withoutSuffix ? 'mínúta' : 'mínútu';\n case 'mm':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum');\n } else if (withoutSuffix) {\n return result + 'mínúta';\n }\n return result + 'mínútu';\n case 'hh':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum');\n }\n return result + 'klukkustund';\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n return isFuture ? 'dag' : 'degi';\n case 'dd':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n return result + (isFuture ? 'dag' : 'degi');\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n return isFuture ? 'mánuð' : 'mánuði';\n case 'MM':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n return result + (isFuture ? 'mánuð' : 'mánuði');\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n case 'yy':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n var is = moment.defineLocale('is', {\n months : 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split('_'),\n monthsShort : 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays : 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split('_'),\n weekdaysShort : 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin : 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY [kl.] H:mm',\n LLLL : 'dddd, D. MMMM YYYY [kl.] H:mm'\n },\n calendar : {\n sameDay : '[í dag kl.] LT',\n nextDay : '[á morgun kl.] LT',\n nextWeek : 'dddd [kl.] LT',\n lastDay : '[í gær kl.] LT',\n lastWeek : '[síðasta] dddd [kl.] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'eftir %s',\n past : 'fyrir %s síðan',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : 'klukkustund',\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return is;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var it = moment.defineLocale('it', {\n months : 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),\n monthsShort : 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays : 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),\n weekdaysShort : 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin : 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : function (s) {\n return ((/^[0-9].+$/).test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past : '%s fa',\n s : 'alcuni secondi',\n ss : '%d secondi',\n m : 'un minuto',\n mm : '%d minuti',\n h : 'un\\'ora',\n hh : '%d ore',\n d : 'un giorno',\n dd : '%d giorni',\n M : 'un mese',\n MM : '%d mesi',\n y : 'un anno',\n yy : '%d anni'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal: '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return it;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ja = moment.defineLocale('ja', {\n months : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays : '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort : '日_月_火_水_木_金_土'.split('_'),\n weekdaysMin : '日_月_火_水_木_金_土'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYY年M月D日',\n LLL : 'YYYY年M月D日 HH:mm',\n LLLL : 'YYYY年M月D日 dddd HH:mm',\n l : 'YYYY/MM/DD',\n ll : 'YYYY年M月D日',\n lll : 'YYYY年M月D日 HH:mm',\n llll : 'YYYY年M月D日(ddd) HH:mm'\n },\n meridiemParse: /午前|午後/i,\n isPM : function (input) {\n return input === '午後';\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return '午前';\n } else {\n return '午後';\n }\n },\n calendar : {\n sameDay : '[今日] LT',\n nextDay : '[明日] LT',\n nextWeek : function (now) {\n if (now.week() < this.week()) {\n return '[来週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay : '[昨日] LT',\n lastWeek : function (now) {\n if (this.week() < now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse : 'L'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}日/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n default:\n return number;\n }\n },\n relativeTime : {\n future : '%s後',\n past : '%s前',\n s : '数秒',\n ss : '%d秒',\n m : '1分',\n mm : '%d分',\n h : '1時間',\n hh : '%d時間',\n d : '1日',\n dd : '%d日',\n M : '1ヶ月',\n MM : '%dヶ月',\n y : '1年',\n yy : '%d年'\n }\n });\n\n return ja;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var jv = moment.defineLocale('jv', {\n months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n weekdays : 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n weekdaysShort : 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [pukul] HH.mm',\n LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /enjing|siyang|sonten|ndalu/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'enjing') {\n return hour;\n } else if (meridiem === 'siyang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n return hour + 12;\n }\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'enjing';\n } else if (hours < 15) {\n return 'siyang';\n } else if (hours < 19) {\n return 'sonten';\n } else {\n return 'ndalu';\n }\n },\n calendar : {\n sameDay : '[Dinten puniko pukul] LT',\n nextDay : '[Mbenjang pukul] LT',\n nextWeek : 'dddd [pukul] LT',\n lastDay : '[Kala wingi pukul] LT',\n lastWeek : 'dddd [kepengker pukul] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'wonten ing %s',\n past : '%s ingkang kepengker',\n s : 'sawetawis detik',\n ss : '%d detik',\n m : 'setunggal menit',\n mm : '%d menit',\n h : 'setunggal jam',\n hh : '%d jam',\n d : 'sedinten',\n dd : '%d dinten',\n M : 'sewulan',\n MM : '%d wulan',\n y : 'setaun',\n yy : '%d taun'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return jv;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ka = moment.defineLocale('ka', {\n months : {\n standalone: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'),\n format: 'იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს'.split('_')\n },\n monthsShort : 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n weekdays : {\n standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'),\n format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_'),\n isFormat: /(წინა|შემდეგ)/\n },\n weekdaysShort : 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n weekdaysMin : 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendar : {\n sameDay : '[დღეს] LT[-ზე]',\n nextDay : '[ხვალ] LT[-ზე]',\n lastDay : '[გუშინ] LT[-ზე]',\n nextWeek : '[შემდეგ] dddd LT[-ზე]',\n lastWeek : '[წინა] dddd LT-ზე',\n sameElse : 'L'\n },\n relativeTime : {\n future : function (s) {\n return (/(წამი|წუთი|საათი|წელი)/).test(s) ?\n s.replace(/ი$/, 'ში') :\n s + 'ში';\n },\n past : function (s) {\n if ((/(წამი|წუთი|საათი|დღე|თვე)/).test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n if ((/წელი/).test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n },\n s : 'რამდენიმე წამი',\n ss : '%d წამი',\n m : 'წუთი',\n mm : '%d წუთი',\n h : 'საათი',\n hh : '%d საათი',\n d : 'დღე',\n dd : '%d დღე',\n M : 'თვე',\n MM : '%d თვე',\n y : 'წელი',\n yy : '%d წელი'\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal : function (number) {\n if (number === 0) {\n return number;\n }\n if (number === 1) {\n return number + '-ლი';\n }\n if ((number < 20) || (number <= 100 && (number % 20 === 0)) || (number % 100 === 0)) {\n return 'მე-' + number;\n }\n return number + '-ე';\n },\n week : {\n dow : 1,\n doy : 7\n }\n });\n\n return ka;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var suffixes = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші'\n };\n\n var kk = moment.defineLocale('kk', {\n months : 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split('_'),\n monthsShort : 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n weekdays : 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split('_'),\n weekdaysShort : 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),\n weekdaysMin : 'жк_дй_сй_ср_бй_жм_сн'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Бүгін сағат] LT',\n nextDay : '[Ертең сағат] LT',\n nextWeek : 'dddd [сағат] LT',\n lastDay : '[Кеше сағат] LT',\n lastWeek : '[Өткен аптаның] dddd [сағат] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s ішінде',\n past : '%s бұрын',\n s : 'бірнеше секунд',\n ss : '%d секунд',\n m : 'бір минут',\n mm : '%d минут',\n h : 'бір сағат',\n hh : '%d сағат',\n d : 'бір күн',\n dd : '%d күн',\n M : 'бір ай',\n MM : '%d ай',\n y : 'бір жыл',\n yy : '%d жыл'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal : function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return kk;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '១',\n '2': '២',\n '3': '៣',\n '4': '៤',\n '5': '៥',\n '6': '៦',\n '7': '៧',\n '8': '៨',\n '9': '៩',\n '0': '០'\n }, numberMap = {\n '១': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n '៥': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0'\n };\n\n var km = moment.defineLocale('km', {\n months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),\n weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n meridiemParse: /ព្រឹក|ល្ងាច/,\n isPM: function (input) {\n return input === 'ល្ងាច';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ព្រឹក';\n } else {\n return 'ល្ងាច';\n }\n },\n calendar: {\n sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',\n nextDay: '[ស្អែក ម៉ោង] LT',\n nextWeek: 'dddd [ម៉ោង] LT',\n lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%sទៀត',\n past: '%sមុន',\n s: 'ប៉ុន្មានវិនាទី',\n ss: '%d វិនាទី',\n m: 'មួយនាទី',\n mm: '%d នាទី',\n h: 'មួយម៉ោង',\n hh: '%d ម៉ោង',\n d: 'មួយថ្ងៃ',\n dd: '%d ថ្ងៃ',\n M: 'មួយខែ',\n MM: '%d ខែ',\n y: 'មួយឆ្នាំ',\n yy: '%d ឆ្នាំ'\n },\n dayOfMonthOrdinalParse : /ទី\\d{1,2}/,\n ordinal : 'ទី%d',\n preparse: function (string) {\n return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return km;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '೧',\n '2': '೨',\n '3': '೩',\n '4': '೪',\n '5': '೫',\n '6': '೬',\n '7': '೭',\n '8': '೮',\n '9': '೯',\n '0': '೦'\n },\n numberMap = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n '೭': '7',\n '೮': '8',\n '೯': '9',\n '೦': '0'\n };\n\n var kn = moment.defineLocale('kn', {\n months : 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split('_'),\n monthsShort : 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split('_'),\n monthsParseExact: true,\n weekdays : 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split('_'),\n weekdaysShort : 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),\n weekdaysMin : 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),\n longDateFormat : {\n LT : 'A h:mm',\n LTS : 'A h:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm',\n LLLL : 'dddd, D MMMM YYYY, A h:mm'\n },\n calendar : {\n sameDay : '[ಇಂದು] LT',\n nextDay : '[ನಾಳೆ] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[ನಿನ್ನೆ] LT',\n lastWeek : '[ಕೊನೆಯ] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s ನಂತರ',\n past : '%s ಹಿಂದೆ',\n s : 'ಕೆಲವು ಕ್ಷಣಗಳು',\n ss : '%d ಸೆಕೆಂಡುಗಳು',\n m : 'ಒಂದು ನಿಮಿಷ',\n mm : '%d ನಿಮಿಷ',\n h : 'ಒಂದು ಗಂಟೆ',\n hh : '%d ಗಂಟೆ',\n d : 'ಒಂದು ದಿನ',\n dd : '%d ದಿನ',\n M : 'ಒಂದು ತಿಂಗಳು',\n MM : '%d ತಿಂಗಳು',\n y : 'ಒಂದು ವರ್ಷ',\n yy : '%d ವರ್ಷ'\n },\n preparse: function (string) {\n return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ರಾತ್ರಿ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {\n return hour;\n } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ಸಂಜೆ') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ರಾತ್ರಿ';\n } else if (hour < 10) {\n return 'ಬೆಳಿಗ್ಗೆ';\n } else if (hour < 17) {\n return 'ಮಧ್ಯಾಹ್ನ';\n } else if (hour < 20) {\n return 'ಸಂಜೆ';\n } else {\n return 'ರಾತ್ರಿ';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal : function (number) {\n return number + 'ನೇ';\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return kn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ko = moment.defineLocale('ko', {\n months : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n monthsShort : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n weekdays : '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n weekdaysShort : '일_월_화_수_목_금_토'.split('_'),\n weekdaysMin : '일_월_화_수_목_금_토'.split('_'),\n longDateFormat : {\n LT : 'A h:mm',\n LTS : 'A h:mm:ss',\n L : 'YYYY.MM.DD.',\n LL : 'YYYY년 MMMM D일',\n LLL : 'YYYY년 MMMM D일 A h:mm',\n LLLL : 'YYYY년 MMMM D일 dddd A h:mm',\n l : 'YYYY.MM.DD.',\n ll : 'YYYY년 MMMM D일',\n lll : 'YYYY년 MMMM D일 A h:mm',\n llll : 'YYYY년 MMMM D일 dddd A h:mm'\n },\n calendar : {\n sameDay : '오늘 LT',\n nextDay : '내일 LT',\n nextWeek : 'dddd LT',\n lastDay : '어제 LT',\n lastWeek : '지난주 dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s 후',\n past : '%s 전',\n s : '몇 초',\n ss : '%d초',\n m : '1분',\n mm : '%d분',\n h : '한 시간',\n hh : '%d시간',\n d : '하루',\n dd : '%d일',\n M : '한 달',\n MM : '%d달',\n y : '일 년',\n yy : '%d년'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}(일|월|주)/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '일';\n case 'M':\n return number + '월';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse : /오전|오후/,\n isPM : function (token) {\n return token === '오후';\n },\n meridiem : function (hour, minute, isUpper) {\n return hour < 12 ? '오전' : '오후';\n }\n });\n\n return ko;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '١',\n '2': '٢',\n '3': '٣',\n '4': '٤',\n '5': '٥',\n '6': '٦',\n '7': '٧',\n '8': '٨',\n '9': '٩',\n '0': '٠'\n }, numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0'\n },\n months = [\n 'کانونی دووەم',\n 'شوبات',\n 'ئازار',\n 'نیسان',\n 'ئایار',\n 'حوزەیران',\n 'تەمموز',\n 'ئاب',\n 'ئەیلوول',\n 'تشرینی یەكەم',\n 'تشرینی دووەم',\n 'كانونی یەکەم'\n ];\n\n\n var ku = moment.defineLocale('ku', {\n months : months,\n monthsShort : months,\n weekdays : 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split('_'),\n weekdaysShort : 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'),\n weekdaysMin : 'ی_د_س_چ_پ_ه_ش'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n meridiemParse: /ئێواره‌|به‌یانی/,\n isPM: function (input) {\n return /ئێواره‌/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'به‌یانی';\n } else {\n return 'ئێواره‌';\n }\n },\n calendar : {\n sameDay : '[ئه‌مرۆ كاتژمێر] LT',\n nextDay : '[به‌یانی كاتژمێر] LT',\n nextWeek : 'dddd [كاتژمێر] LT',\n lastDay : '[دوێنێ كاتژمێر] LT',\n lastWeek : 'dddd [كاتژمێر] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'له‌ %s',\n past : '%s',\n s : 'چه‌ند چركه‌یه‌ك',\n ss : 'چركه‌ %d',\n m : 'یه‌ك خوله‌ك',\n mm : '%d خوله‌ك',\n h : 'یه‌ك كاتژمێر',\n hh : '%d كاتژمێر',\n d : 'یه‌ك ڕۆژ',\n dd : '%d ڕۆژ',\n M : 'یه‌ك مانگ',\n MM : '%d مانگ',\n y : 'یه‌ك ساڵ',\n yy : '%d ساڵ'\n },\n preparse: function (string) {\n return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n }).replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, '،');\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return ku;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var suffixes = {\n 0: '-чү',\n 1: '-чи',\n 2: '-чи',\n 3: '-чү',\n 4: '-чү',\n 5: '-чи',\n 6: '-чы',\n 7: '-чи',\n 8: '-чи',\n 9: '-чу',\n 10: '-чу',\n 20: '-чы',\n 30: '-чу',\n 40: '-чы',\n 50: '-чү',\n 60: '-чы',\n 70: '-чи',\n 80: '-чи',\n 90: '-чу',\n 100: '-чү'\n };\n\n var ky = moment.defineLocale('ky', {\n months : 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'),\n monthsShort : 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_'),\n weekdays : 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split('_'),\n weekdaysShort : 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n weekdaysMin : 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Бүгүн саат] LT',\n nextDay : '[Эртең саат] LT',\n nextWeek : 'dddd [саат] LT',\n lastDay : '[Кечээ саат] LT',\n lastWeek : '[Өткөн аптанын] dddd [күнү] [саат] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s ичинде',\n past : '%s мурун',\n s : 'бирнече секунд',\n ss : '%d секунд',\n m : 'бир мүнөт',\n mm : '%d мүнөт',\n h : 'бир саат',\n hh : '%d саат',\n d : 'бир күн',\n dd : '%d күн',\n M : 'бир ай',\n MM : '%d ай',\n y : 'бир жыл',\n yy : '%d жыл'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n ordinal : function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return ky;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 'm': ['eng Minutt', 'enger Minutt'],\n 'h': ['eng Stonn', 'enger Stonn'],\n 'd': ['een Dag', 'engem Dag'],\n 'M': ['ee Mount', 'engem Mount'],\n 'y': ['ee Joer', 'engem Joer']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n return 'an ' + string;\n }\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\n return 'virun ' + string;\n }\n /**\n * Returns true if the word before the given number loses the '-n' ending.\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n *\n * @param number {integer}\n * @returns {boolean}\n */\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n if (isNaN(number)) {\n return false;\n }\n if (number < 0) {\n // Negative Number --> always true\n return true;\n } else if (number < 10) {\n // Only 1 digit\n if (4 <= number && number <= 7) {\n return true;\n }\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10, firstDigit = number / 10;\n if (lastDigit === 0) {\n return eifelerRegelAppliesToNumber(firstDigit);\n }\n return eifelerRegelAppliesToNumber(lastDigit);\n } else if (number < 10000) {\n // 3 or 4 digits --> recursively check first digit\n while (number >= 10) {\n number = number / 10;\n }\n return eifelerRegelAppliesToNumber(number);\n } else {\n // Anything larger than 4 digits: recursively check first n-3 digits\n number = number / 1000;\n return eifelerRegelAppliesToNumber(number);\n }\n }\n\n var lb = moment.defineLocale('lb', {\n months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'),\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]'\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[Gëschter um] LT',\n lastWeek: function () {\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n default:\n return '[Leschte] dddd [um] LT';\n }\n }\n },\n relativeTime : {\n future : processFutureTime,\n past : processPastTime,\n s : 'e puer Sekonnen',\n ss : '%d Sekonnen',\n m : processRelativeTime,\n mm : '%d Minutten',\n h : processRelativeTime,\n hh : '%d Stonnen',\n d : processRelativeTime,\n dd : '%d Deeg',\n M : processRelativeTime,\n MM : '%d Méint',\n y : processRelativeTime,\n yy : '%d Joer'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return lb;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var lo = moment.defineLocale('lo', {\n months : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),\n monthsShort : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),\n weekdays : 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysShort : 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysMin : 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'ວັນdddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\n isPM: function (input) {\n return input === 'ຕອນແລງ';\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ຕອນເຊົ້າ';\n } else {\n return 'ຕອນແລງ';\n }\n },\n calendar : {\n sameDay : '[ມື້ນີ້ເວລາ] LT',\n nextDay : '[ມື້ອື່ນເວລາ] LT',\n nextWeek : '[ວັນ]dddd[ໜ້າເວລາ] LT',\n lastDay : '[ມື້ວານນີ້ເວລາ] LT',\n lastWeek : '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'ອີກ %s',\n past : '%sຜ່ານມາ',\n s : 'ບໍ່ເທົ່າໃດວິນາທີ',\n ss : '%d ວິນາທີ' ,\n m : '1 ນາທີ',\n mm : '%d ນາທີ',\n h : '1 ຊົ່ວໂມງ',\n hh : '%d ຊົ່ວໂມງ',\n d : '1 ມື້',\n dd : '%d ມື້',\n M : '1 ເດືອນ',\n MM : '%d ເດືອນ',\n y : '1 ປີ',\n yy : '%d ປີ'\n },\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n ordinal : function (number) {\n return 'ທີ່' + number;\n }\n });\n\n return lo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var units = {\n 'ss' : 'sekundė_sekundžių_sekundes',\n 'm' : 'minutė_minutės_minutę',\n 'mm': 'minutės_minučių_minutes',\n 'h' : 'valanda_valandos_valandą',\n 'hh': 'valandos_valandų_valandas',\n 'd' : 'diena_dienos_dieną',\n 'dd': 'dienos_dienų_dienas',\n 'M' : 'mėnuo_mėnesio_mėnesį',\n 'MM': 'mėnesiai_mėnesių_mėnesius',\n 'y' : 'metai_metų_metus',\n 'yy': 'metai_metų_metus'\n };\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundės';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix ? forms(key)[0] : (isFuture ? forms(key)[1] : forms(key)[2]);\n }\n function special(number) {\n return number % 10 === 0 || (number > 10 && number < 20);\n }\n function forms(key) {\n return units[key].split('_');\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n if (number === 1) {\n return result + translateSingular(number, withoutSuffix, key[0], isFuture);\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n var lt = moment.defineLocale('lt', {\n months : {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_'),\n standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split('_'),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/\n },\n monthsShort : 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays : {\n format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split('_'),\n standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_'),\n isFormat: /dddd HH:mm/\n },\n weekdaysShort : 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n weekdaysMin : 'S_P_A_T_K_Pn_Š'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'YYYY [m.] MMMM D [d.]',\n LLL : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL : 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l : 'YYYY-MM-DD',\n ll : 'YYYY [m.] MMMM D [d.]',\n lll : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll : 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]'\n },\n calendar : {\n sameDay : '[Šiandien] LT',\n nextDay : '[Rytoj] LT',\n nextWeek : 'dddd LT',\n lastDay : '[Vakar] LT',\n lastWeek : '[Praėjusį] dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'po %s',\n past : 'prieš %s',\n s : translateSeconds,\n ss : translate,\n m : translateSingular,\n mm : translate,\n h : translateSingular,\n hh : translate,\n d : translateSingular,\n dd : translate,\n M : translateSingular,\n MM : translate,\n y : translateSingular,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal : function (number) {\n return number + '-oji';\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return lt;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var units = {\n 'ss': 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\n 'm': 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n 'mm': 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n 'h': 'stundas_stundām_stunda_stundas'.split('_'),\n 'hh': 'stundas_stundām_stunda_stundas'.split('_'),\n 'd': 'dienas_dienām_diena_dienas'.split('_'),\n 'dd': 'dienas_dienām_diena_dienas'.split('_'),\n 'M': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n 'MM': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n 'y': 'gada_gadiem_gads_gadi'.split('_'),\n 'yy': 'gada_gadiem_gads_gadi'.split('_')\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n function format(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minūte\", \"3 minūtes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\n // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n return number + ' ' + format(units[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n }\n\n var lv = moment.defineLocale('lv', {\n months : 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split('_'),\n monthsShort : 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\n weekdays : 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split('_'),\n weekdaysShort : 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin : 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY.',\n LL : 'YYYY. [gada] D. MMMM',\n LLL : 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL : 'YYYY. [gada] D. MMMM, dddd, HH:mm'\n },\n calendar : {\n sameDay : '[Šodien pulksten] LT',\n nextDay : '[Rīt pulksten] LT',\n nextWeek : 'dddd [pulksten] LT',\n lastDay : '[Vakar pulksten] LT',\n lastWeek : '[Pagājušā] dddd [pulksten] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'pēc %s',\n past : 'pirms %s',\n s : relativeSeconds,\n ss : relativeTimeWithPlural,\n m : relativeTimeWithSingular,\n mm : relativeTimeWithPlural,\n h : relativeTimeWithSingular,\n hh : relativeTimeWithPlural,\n d : relativeTimeWithSingular,\n dd : relativeTimeWithPlural,\n M : relativeTimeWithSingular,\n MM : relativeTimeWithPlural,\n y : relativeTimeWithSingular,\n yy : relativeTimeWithPlural\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return lv;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var translator = {\n words: { //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina']\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator.correctGrammaticalCase(number, wordKey);\n }\n }\n };\n\n var me = moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact : true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact : true,\n longDateFormat: {\n LT: 'H:mm',\n LTS : 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay : '[juče u] LT',\n lastWeek : function () {\n var lastWeekDays = [\n '[prošle] [nedjelje] [u] LT',\n '[prošlog] [ponedjeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srijede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT'\n ];\n return lastWeekDays[this.day()];\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'prije %s',\n s : 'nekoliko sekundi',\n ss : translator.translate,\n m : translator.translate,\n mm : translator.translate,\n h : translator.translate,\n hh : translator.translate,\n d : 'dan',\n dd : translator.translate,\n M : 'mjesec',\n MM : translator.translate,\n y : 'godinu',\n yy : translator.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return me;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var mi = moment.defineLocale('mi', {\n months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split('_'),\n monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split('_'),\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),\n weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [i] HH:mm',\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm'\n },\n calendar: {\n sameDay: '[i teie mahana, i] LT',\n nextDay: '[apopo i] LT',\n nextWeek: 'dddd [i] LT',\n lastDay: '[inanahi i] LT',\n lastWeek: 'dddd [whakamutunga i] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'i roto i %s',\n past: '%s i mua',\n s: 'te hēkona ruarua',\n ss: '%d hēkona',\n m: 'he meneti',\n mm: '%d meneti',\n h: 'te haora',\n hh: '%d haora',\n d: 'he ra',\n dd: '%d ra',\n M: 'he marama',\n MM: '%d marama',\n y: 'he tau',\n yy: '%d tau'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return mi;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var mk = moment.defineLocale('mk', {\n months : 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split('_'),\n monthsShort : 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n weekdays : 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split('_'),\n weekdaysShort : 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n weekdaysMin : 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'D.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY H:mm',\n LLLL : 'dddd, D MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[Денес во] LT',\n nextDay : '[Утре во] LT',\n nextWeek : '[Во] dddd [во] LT',\n lastDay : '[Вчера во] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'после %s',\n past : 'пред %s',\n s : 'неколку секунди',\n ss : '%d секунди',\n m : 'минута',\n mm : '%d минути',\n h : 'час',\n hh : '%d часа',\n d : 'ден',\n dd : '%d дена',\n M : 'месец',\n MM : '%d месеци',\n y : 'година',\n yy : '%d години'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal : function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return mk;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ml = moment.defineLocale('ml', {\n months : 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split('_'),\n monthsShort : 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split('_'),\n monthsParseExact : true,\n weekdays : 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split('_'),\n weekdaysShort : 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n weekdaysMin : 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n longDateFormat : {\n LT : 'A h:mm -നു',\n LTS : 'A h:mm:ss -നു',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm -നു',\n LLLL : 'dddd, D MMMM YYYY, A h:mm -നു'\n },\n calendar : {\n sameDay : '[ഇന്ന്] LT',\n nextDay : '[നാളെ] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[ഇന്നലെ] LT',\n lastWeek : '[കഴിഞ്ഞ] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s കഴിഞ്ഞ്',\n past : '%s മുൻപ്',\n s : 'അൽപ നിമിഷങ്ങൾ',\n ss : '%d സെക്കൻഡ്',\n m : 'ഒരു മിനിറ്റ്',\n mm : '%d മിനിറ്റ്',\n h : 'ഒരു മണിക്കൂർ',\n hh : '%d മണിക്കൂർ',\n d : 'ഒരു ദിവസം',\n dd : '%d ദിവസം',\n M : 'ഒരു മാസം',\n MM : '%d മാസം',\n y : 'ഒരു വർഷം',\n yy : '%d വർഷം'\n },\n meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if ((meridiem === 'രാത്രി' && hour >= 4) ||\n meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||\n meridiem === 'വൈകുന്നേരം') {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'രാത്രി';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉച്ച കഴിഞ്ഞ്';\n } else if (hour < 20) {\n return 'വൈകുന്നേരം';\n } else {\n return 'രാത്രി';\n }\n }\n });\n\n return ml;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function translate(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\n case 'ss':\n return number + (withoutSuffix ? ' секунд' : ' секундын');\n case 'm':\n case 'mm':\n return number + (withoutSuffix ? ' минут' : ' минутын');\n case 'h':\n case 'hh':\n return number + (withoutSuffix ? ' цаг' : ' цагийн');\n case 'd':\n case 'dd':\n return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n case 'M':\n case 'MM':\n return number + (withoutSuffix ? ' сар' : ' сарын');\n case 'y':\n case 'yy':\n return number + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return number;\n }\n }\n\n var mn = moment.defineLocale('mn', {\n months : 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split('_'),\n monthsShort : '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split('_'),\n monthsParseExact : true,\n weekdays : 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),\n weekdaysShort : 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),\n weekdaysMin : 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'YYYY оны MMMMын D',\n LLL : 'YYYY оны MMMMын D HH:mm',\n LLLL : 'dddd, YYYY оны MMMMын D HH:mm'\n },\n meridiemParse: /ҮӨ|ҮХ/i,\n isPM : function (input) {\n return input === 'ҮХ';\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ҮӨ';\n } else {\n return 'ҮХ';\n }\n },\n calendar : {\n sameDay : '[Өнөөдөр] LT',\n nextDay : '[Маргааш] LT',\n nextWeek : '[Ирэх] dddd LT',\n lastDay : '[Өчигдөр] LT',\n lastWeek : '[Өнгөрсөн] dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s дараа',\n past : '%s өмнө',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + ' өдөр';\n default:\n return number;\n }\n }\n });\n\n return mn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': '७',\n '8': '८',\n '9': '९',\n '0': '०'\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n\n function relativeTimeMr(number, withoutSuffix, string, isFuture)\n {\n var output = '';\n if (withoutSuffix) {\n switch (string) {\n case 's': output = 'काही सेकंद'; break;\n case 'ss': output = '%d सेकंद'; break;\n case 'm': output = 'एक मिनिट'; break;\n case 'mm': output = '%d मिनिटे'; break;\n case 'h': output = 'एक तास'; break;\n case 'hh': output = '%d तास'; break;\n case 'd': output = 'एक दिवस'; break;\n case 'dd': output = '%d दिवस'; break;\n case 'M': output = 'एक महिना'; break;\n case 'MM': output = '%d महिने'; break;\n case 'y': output = 'एक वर्ष'; break;\n case 'yy': output = '%d वर्षे'; break;\n }\n }\n else {\n switch (string) {\n case 's': output = 'काही सेकंदां'; break;\n case 'ss': output = '%d सेकंदां'; break;\n case 'm': output = 'एका मिनिटा'; break;\n case 'mm': output = '%d मिनिटां'; break;\n case 'h': output = 'एका तासा'; break;\n case 'hh': output = '%d तासां'; break;\n case 'd': output = 'एका दिवसा'; break;\n case 'dd': output = '%d दिवसां'; break;\n case 'M': output = 'एका महिन्या'; break;\n case 'MM': output = '%d महिन्यां'; break;\n case 'y': output = 'एका वर्षा'; break;\n case 'yy': output = '%d वर्षां'; break;\n }\n }\n return output.replace(/%d/i, number);\n }\n\n var mr = moment.defineLocale('mr', {\n months : 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'),\n monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'),\n monthsParseExact : true,\n weekdays : 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort : 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat : {\n LT : 'A h:mm वाजता',\n LTS : 'A h:mm:ss वाजता',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm वाजता',\n LLLL : 'dddd, D MMMM YYYY, A h:mm वाजता'\n },\n calendar : {\n sameDay : '[आज] LT',\n nextDay : '[उद्या] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[काल] LT',\n lastWeek: '[मागील] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future: '%sमध्ये',\n past: '%sपूर्वी',\n s: relativeTimeMr,\n ss: relativeTimeMr,\n m: relativeTimeMr,\n mm: relativeTimeMr,\n h: relativeTimeMr,\n hh: relativeTimeMr,\n d: relativeTimeMr,\n dd: relativeTimeMr,\n M: relativeTimeMr,\n MM: relativeTimeMr,\n y: relativeTimeMr,\n yy: relativeTimeMr\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /रात्री|सकाळी|दुपारी|सायंकाळी/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात्री') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सकाळी') {\n return hour;\n } else if (meridiem === 'दुपारी') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'सायंकाळी') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रात्री';\n } else if (hour < 10) {\n return 'सकाळी';\n } else if (hour < 17) {\n return 'दुपारी';\n } else if (hour < 20) {\n return 'सायंकाळी';\n } else {\n return 'रात्री';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return mr;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ms = moment.defineLocale('ms', {\n months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),\n monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [pukul] HH.mm',\n LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar : {\n sameDay : '[Hari ini pukul] LT',\n nextDay : '[Esok pukul] LT',\n nextWeek : 'dddd [pukul] LT',\n lastDay : '[Kelmarin pukul] LT',\n lastWeek : 'dddd [lepas pukul] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dalam %s',\n past : '%s yang lepas',\n s : 'beberapa saat',\n ss : '%d saat',\n m : 'seminit',\n mm : '%d minit',\n h : 'sejam',\n hh : '%d jam',\n d : 'sehari',\n dd : '%d hari',\n M : 'sebulan',\n MM : '%d bulan',\n y : 'setahun',\n yy : '%d tahun'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return ms;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var msMy = moment.defineLocale('ms-my', {\n months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),\n monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [pukul] HH.mm',\n LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar : {\n sameDay : '[Hari ini pukul] LT',\n nextDay : '[Esok pukul] LT',\n nextWeek : 'dddd [pukul] LT',\n lastDay : '[Kelmarin pukul] LT',\n lastWeek : 'dddd [lepas pukul] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dalam %s',\n past : '%s yang lepas',\n s : 'beberapa saat',\n ss : '%d saat',\n m : 'seminit',\n mm : '%d minit',\n h : 'sejam',\n hh : '%d jam',\n d : 'sehari',\n dd : '%d hari',\n M : 'sebulan',\n MM : '%d bulan',\n y : 'setahun',\n yy : '%d tahun'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return msMy;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var mt = moment.defineLocale('mt', {\n months : 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split('_'),\n monthsShort : 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n weekdays : 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split('_'),\n weekdaysShort : 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\n weekdaysMin : 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Illum fil-]LT',\n nextDay : '[Għada fil-]LT',\n nextWeek : 'dddd [fil-]LT',\n lastDay : '[Il-bieraħ fil-]LT',\n lastWeek : 'dddd [li għadda] [fil-]LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'f’ %s',\n past : '%s ilu',\n s : 'ftit sekondi',\n ss : '%d sekondi',\n m : 'minuta',\n mm : '%d minuti',\n h : 'siegħa',\n hh : '%d siegħat',\n d : 'ġurnata',\n dd : '%d ġranet',\n M : 'xahar',\n MM : '%d xhur',\n y : 'sena',\n yy : '%d sni'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal: '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return mt;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '၁',\n '2': '၂',\n '3': '၃',\n '4': '၄',\n '5': '၅',\n '6': '၆',\n '7': '၇',\n '8': '၈',\n '9': '၉',\n '0': '၀'\n }, numberMap = {\n '၁': '1',\n '၂': '2',\n '၃': '3',\n '၄': '4',\n '၅': '5',\n '၆': '6',\n '၇': '7',\n '၈': '8',\n '၉': '9',\n '၀': '0'\n };\n\n var my = moment.defineLocale('my', {\n months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'),\n monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),\n weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split('_'),\n weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[ယနေ.] LT [မှာ]',\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\n nextWeek: 'dddd LT [မှာ]',\n lastDay: '[မနေ.က] LT [မှာ]',\n lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'လာမည့် %s မှာ',\n past: 'လွန်ခဲ့သော %s က',\n s: 'စက္ကန်.အနည်းငယ်',\n ss : '%d စက္ကန့်',\n m: 'တစ်မိနစ်',\n mm: '%d မိနစ်',\n h: 'တစ်နာရီ',\n hh: '%d နာရီ',\n d: 'တစ်ရက်',\n dd: '%d ရက်',\n M: 'တစ်လ',\n MM: '%d လ',\n y: 'တစ်နှစ်',\n yy: '%d နှစ်'\n },\n preparse: function (string) {\n return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return my;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var nb = moment.defineLocale('nb', {\n months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort : 'jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact : true,\n weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort : 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY [kl.] HH:mm',\n LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'\n },\n calendar : {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'om %s',\n past : '%s siden',\n s : 'noen sekunder',\n ss : '%d sekunder',\n m : 'ett minutt',\n mm : '%d minutter',\n h : 'en time',\n hh : '%d timer',\n d : 'en dag',\n dd : '%d dager',\n M : 'en måned',\n MM : '%d måneder',\n y : 'ett år',\n yy : '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return nb;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': '७',\n '8': '८',\n '9': '९',\n '0': '०'\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n\n var ne = moment.defineLocale('ne', {\n months : 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split('_'),\n monthsShort : 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split('_'),\n monthsParseExact : true,\n weekdays : 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split('_'),\n weekdaysShort : 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n weekdaysMin : 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'Aको h:mm बजे',\n LTS : 'Aको h:mm:ss बजे',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, Aको h:mm बजे',\n LLLL : 'dddd, D MMMM YYYY, Aको h:mm बजे'\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउँसो') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साँझ') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउँसो';\n } else if (hour < 20) {\n return 'साँझ';\n } else {\n return 'राति';\n }\n },\n calendar : {\n sameDay : '[आज] LT',\n nextDay : '[भोलि] LT',\n nextWeek : '[आउँदो] dddd[,] LT',\n lastDay : '[हिजो] LT',\n lastWeek : '[गएको] dddd[,] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%sमा',\n past : '%s अगाडि',\n s : 'केही क्षण',\n ss : '%d सेकेण्ड',\n m : 'एक मिनेट',\n mm : '%d मिनेट',\n h : 'एक घण्टा',\n hh : '%d घण्टा',\n d : 'एक दिन',\n dd : '%d दिन',\n M : 'एक महिना',\n MM : '%d महिना',\n y : 'एक बर्ष',\n yy : '%d बर्ष'\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return ne;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');\n\n var monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];\n var monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nl = moment.defineLocale('nl', {\n months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse : monthsParse,\n longMonthsParse : monthsParse,\n shortMonthsParse : monthsParse,\n\n weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin : 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD-MM-YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'over %s',\n past : '%s geleden',\n s : 'een paar seconden',\n ss : '%d seconden',\n m : 'één minuut',\n mm : '%d minuten',\n h : 'één uur',\n hh : '%d uur',\n d : 'één dag',\n dd : '%d dagen',\n M : 'één maand',\n MM : '%d maanden',\n y : 'één jaar',\n yy : '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal : function (number) {\n return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return nl;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');\n\n var monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];\n var monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nlBe = moment.defineLocale('nl-be', {\n months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse : monthsParse,\n longMonthsParse : monthsParse,\n shortMonthsParse : monthsParse,\n\n weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin : 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'over %s',\n past : '%s geleden',\n s : 'een paar seconden',\n ss : '%d seconden',\n m : 'één minuut',\n mm : '%d minuten',\n h : 'één uur',\n hh : '%d uur',\n d : 'één dag',\n dd : '%d dagen',\n M : 'één maand',\n MM : '%d maanden',\n y : 'één jaar',\n yy : '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal : function (number) {\n return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return nlBe;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var nn = moment.defineLocale('nn', {\n months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays : 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort : 'sun_mån_tys_ons_tor_fre_lau'.split('_'),\n weekdaysMin : 'su_må_ty_on_to_fr_lø'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY [kl.] H:mm',\n LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'\n },\n calendar : {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I går klokka] LT',\n lastWeek: '[Føregåande] dddd [klokka] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'om %s',\n past : '%s sidan',\n s : 'nokre sekund',\n ss : '%d sekund',\n m : 'eit minutt',\n mm : '%d minutt',\n h : 'ein time',\n hh : '%d timar',\n d : 'ein dag',\n dd : '%d dagar',\n M : 'ein månad',\n MM : '%d månader',\n y : 'eit år',\n yy : '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return nn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '੧',\n '2': '੨',\n '3': '੩',\n '4': '੪',\n '5': '੫',\n '6': '੬',\n '7': '੭',\n '8': '੮',\n '9': '੯',\n '0': '੦'\n },\n numberMap = {\n '੧': '1',\n '੨': '2',\n '੩': '3',\n '੪': '4',\n '੫': '5',\n '੬': '6',\n '੭': '7',\n '੮': '8',\n '੯': '9',\n '੦': '0'\n };\n\n var paIn = moment.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n months : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),\n monthsShort : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),\n weekdays : 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split('_'),\n weekdaysShort : 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n weekdaysMin : 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n longDateFormat : {\n LT : 'A h:mm ਵਜੇ',\n LTS : 'A h:mm:ss ਵਜੇ',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm ਵਜੇ',\n LLLL : 'dddd, D MMMM YYYY, A h:mm ਵਜੇ'\n },\n calendar : {\n sameDay : '[ਅਜ] LT',\n nextDay : '[ਕਲ] LT',\n nextWeek : '[ਅਗਲਾ] dddd, LT',\n lastDay : '[ਕਲ] LT',\n lastWeek : '[ਪਿਛਲੇ] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s ਵਿੱਚ',\n past : '%s ਪਿਛਲੇ',\n s : 'ਕੁਝ ਸਕਿੰਟ',\n ss : '%d ਸਕਿੰਟ',\n m : 'ਇਕ ਮਿੰਟ',\n mm : '%d ਮਿੰਟ',\n h : 'ਇੱਕ ਘੰਟਾ',\n hh : '%d ਘੰਟੇ',\n d : 'ਇੱਕ ਦਿਨ',\n dd : '%d ਦਿਨ',\n M : 'ਇੱਕ ਮਹੀਨਾ',\n MM : '%d ਮਹੀਨੇ',\n y : 'ਇੱਕ ਸਾਲ',\n yy : '%d ਸਾਲ'\n },\n preparse: function (string) {\n return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦੁਪਹਿਰ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦੁਪਹਿਰ';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return paIn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_'),\n monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_');\n function plural(n) {\n return (n % 10 < 5) && (n % 10 > 1) && ((~~(n / 10) % 10) !== 1);\n }\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n return result + (plural(number) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutę';\n case 'mm':\n return result + (plural(number) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinę';\n case 'hh':\n return result + (plural(number) ? 'godziny' : 'godzin');\n case 'MM':\n return result + (plural(number) ? 'miesiące' : 'miesięcy');\n case 'yy':\n return result + (plural(number) ? 'lata' : 'lat');\n }\n }\n\n var pl = moment.defineLocale('pl', {\n months : function (momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (format === '') {\n // Hack: if format empty we know this is used to generate\n // RegExp by moment. Give then back both valid forms of months\n // in RegExp ready format.\n return '(' + monthsSubjective[momentToFormat.month()] + '|' + monthsNominative[momentToFormat.month()] + ')';\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[momentToFormat.month()];\n } else {\n return monthsNominative[momentToFormat.month()];\n }\n },\n monthsShort : 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n weekdays : 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),\n weekdaysShort : 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n weekdaysMin : 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Dziś o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W niedzielę o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W środę o] LT';\n\n case 6:\n return '[W sobotę o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W zeszłą niedzielę o] LT';\n case 3:\n return '[W zeszłą środę o] LT';\n case 6:\n return '[W zeszłą sobotę o] LT';\n default:\n return '[W zeszły] dddd [o] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : '%s temu',\n s : 'kilka sekund',\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : '1 dzień',\n dd : '%d dni',\n M : 'miesiąc',\n MM : translate,\n y : 'rok',\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return pl;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var pt = moment.defineLocale('pt', {\n months : 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),\n monthsShort : 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays : 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),\n weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D [de] MMMM [de] YYYY',\n LLL : 'D [de] MMMM [de] YYYY HH:mm',\n LLLL : 'dddd, D [de] MMMM [de] YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return (this.day() === 0 || this.day() === 6) ?\n '[Último] dddd [às] LT' : // Saturday + Sunday\n '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'em %s',\n past : 'há %s',\n s : 'segundos',\n ss : '%d segundos',\n m : 'um minuto',\n mm : '%d minutos',\n h : 'uma hora',\n hh : '%d horas',\n d : 'um dia',\n dd : '%d dias',\n M : 'um mês',\n MM : '%d meses',\n y : 'um ano',\n yy : '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal : '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return pt;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ptBr = moment.defineLocale('pt-br', {\n months : 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),\n monthsShort : 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays : 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),\n weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D [de] MMMM [de] YYYY',\n LLL : 'D [de] MMMM [de] YYYY [às] HH:mm',\n LLLL : 'dddd, D [de] MMMM [de] YYYY [às] HH:mm'\n },\n calendar : {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return (this.day() === 0 || this.day() === 6) ?\n '[Último] dddd [às] LT' : // Saturday + Sunday\n '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'em %s',\n past : 'há %s',\n s : 'poucos segundos',\n ss : '%d segundos',\n m : 'um minuto',\n mm : '%d minutos',\n h : 'uma hora',\n hh : '%d horas',\n d : 'um dia',\n dd : '%d dias',\n M : 'um mês',\n MM : '%d meses',\n y : 'um ano',\n yy : '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal : '%dº'\n });\n\n return ptBr;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n 'ss': 'secunde',\n 'mm': 'minute',\n 'hh': 'ore',\n 'dd': 'zile',\n 'MM': 'luni',\n 'yy': 'ani'\n },\n separator = ' ';\n if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n separator = ' de ';\n }\n return number + separator + format[key];\n }\n\n var ro = moment.defineLocale('ro', {\n months : 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),\n monthsShort : 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays : 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort : 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin : 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY H:mm',\n LLLL : 'dddd, D MMMM YYYY H:mm'\n },\n calendar : {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'peste %s',\n past : '%s în urmă',\n s : 'câteva secunde',\n ss : relativeTimeWithPlural,\n m : 'un minut',\n mm : relativeTimeWithPlural,\n h : 'o oră',\n hh : relativeTimeWithPlural,\n d : 'o zi',\n dd : relativeTimeWithPlural,\n M : 'o lună',\n MM : relativeTimeWithPlural,\n y : 'un an',\n yy : relativeTimeWithPlural\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return ro;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n 'ss': withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n 'mm': withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n 'hh': 'час_часа_часов',\n 'dd': 'день_дня_дней',\n 'MM': 'месяц_месяца_месяцев',\n 'yy': 'год_года_лет'\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n }\n else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n var monthsParse = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i];\n\n // http://new.gramota.ru/spravka/rules/139-prop : § 103\n // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n var ru = moment.defineLocale('ru', {\n months : {\n format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_'),\n standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_')\n },\n monthsShort : {\n // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку ?\n format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split('_'),\n standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split('_')\n },\n weekdays : {\n standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'),\n format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_'),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\\] ?dddd/\n },\n weekdaysShort : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n monthsParse : monthsParse,\n longMonthsParse : monthsParse,\n shortMonthsParse : monthsParse,\n\n // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n monthsRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // копия предыдущего\n monthsShortRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // полные названия с падежами\n monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n\n // Выражение, которое соотвествует только сокращённым формам\n monthsShortStrictRegex: /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY г.',\n LLL : 'D MMMM YYYY г., H:mm',\n LLLL : 'dddd, D MMMM YYYY г., H:mm'\n },\n calendar : {\n sameDay: '[Сегодня, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В следующее] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В следующий] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В следующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В прошлое] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В прошлый] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'через %s',\n past : '%s назад',\n s : 'несколько секунд',\n ss : relativeTimeWithPlural,\n m : relativeTimeWithPlural,\n mm : relativeTimeWithPlural,\n h : 'час',\n hh : relativeTimeWithPlural,\n d : 'день',\n dd : relativeTimeWithPlural,\n M : 'месяц',\n MM : relativeTimeWithPlural,\n y : 'год',\n yy : relativeTimeWithPlural\n },\n meridiemParse: /ночи|утра|дня|вечера/i,\n isPM : function (input) {\n return /^(дня|вечера)$/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n case 'D':\n return number + '-го';\n case 'w':\n case 'W':\n return number + '-я';\n default:\n return number;\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return ru;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var months = [\n 'جنوري',\n 'فيبروري',\n 'مارچ',\n 'اپريل',\n 'مئي',\n 'جون',\n 'جولاءِ',\n 'آگسٽ',\n 'سيپٽمبر',\n 'آڪٽوبر',\n 'نومبر',\n 'ڊسمبر'\n ];\n var days = [\n 'آچر',\n 'سومر',\n 'اڱارو',\n 'اربع',\n 'خميس',\n 'جمع',\n 'ڇنڇر'\n ];\n\n var sd = moment.defineLocale('sd', {\n months : months,\n monthsShort : months,\n weekdays : days,\n weekdaysShort : days,\n weekdaysMin : days,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd، D MMMM YYYY HH:mm'\n },\n meridiemParse: /صبح|شام/,\n isPM : function (input) {\n return 'شام' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar : {\n sameDay : '[اڄ] LT',\n nextDay : '[سڀاڻي] LT',\n nextWeek : 'dddd [اڳين هفتي تي] LT',\n lastDay : '[ڪالهه] LT',\n lastWeek : '[گزريل هفتي] dddd [تي] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s پوء',\n past : '%s اڳ',\n s : 'چند سيڪنڊ',\n ss : '%d سيڪنڊ',\n m : 'هڪ منٽ',\n mm : '%d منٽ',\n h : 'هڪ ڪلاڪ',\n hh : '%d ڪلاڪ',\n d : 'هڪ ڏينهن',\n dd : '%d ڏينهن',\n M : 'هڪ مهينو',\n MM : '%d مهينا',\n y : 'هڪ سال',\n yy : '%d سال'\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return sd;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var se = moment.defineLocale('se', {\n months : 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split('_'),\n monthsShort : 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),\n weekdays : 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split('_'),\n weekdaysShort : 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\n weekdaysMin : 's_v_m_g_d_b_L'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'MMMM D. [b.] YYYY',\n LLL : 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL : 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm'\n },\n calendar : {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : '%s geažes',\n past : 'maŋit %s',\n s : 'moadde sekunddat',\n ss: '%d sekunddat',\n m : 'okta minuhta',\n mm : '%d minuhtat',\n h : 'okta diimmu',\n hh : '%d diimmut',\n d : 'okta beaivi',\n dd : '%d beaivvit',\n M : 'okta mánnu',\n MM : '%d mánut',\n y : 'okta jahki',\n yy : '%d jagit'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return se;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n /*jshint -W100*/\n var si = moment.defineLocale('si', {\n months : 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split('_'),\n monthsShort : 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split('_'),\n weekdays : 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split('_'),\n weekdaysShort : 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),\n weekdaysMin : 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'a h:mm',\n LTS : 'a h:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYY MMMM D',\n LLL : 'YYYY MMMM D, a h:mm',\n LLLL : 'YYYY MMMM D [වැනි] dddd, a h:mm:ss'\n },\n calendar : {\n sameDay : '[අද] LT[ට]',\n nextDay : '[හෙට] LT[ට]',\n nextWeek : 'dddd LT[ට]',\n lastDay : '[ඊයේ] LT[ට]',\n lastWeek : '[පසුගිය] dddd LT[ට]',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%sකින්',\n past : '%sකට පෙර',\n s : 'තත්පර කිහිපය',\n ss : 'තත්පර %d',\n m : 'මිනිත්තුව',\n mm : 'මිනිත්තු %d',\n h : 'පැය',\n hh : 'පැය %d',\n d : 'දිනය',\n dd : 'දින %d',\n M : 'මාසය',\n MM : 'මාස %d',\n y : 'වසර',\n yy : 'වසර %d'\n },\n dayOfMonthOrdinalParse: /\\d{1,2} වැනි/,\n ordinal : function (number) {\n return number + ' වැනි';\n },\n meridiemParse : /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\n isPM : function (input) {\n return input === 'ප.ව.' || input === 'පස් වරු';\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ප.ව.' : 'පස් වරු';\n } else {\n return isLower ? 'පෙ.ව.' : 'පෙර වරු';\n }\n }\n });\n\n return si;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'),\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n function plural(n) {\n return (n > 1) && (n < 5);\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return (withoutSuffix || isFuture) ? 'pár sekúnd' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n break;\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : (isFuture ? 'minútu' : 'minútou');\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n break;\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodín');\n } else {\n return result + 'hodinami';\n }\n break;\n case 'd': // a day / in a day / a day ago\n return (withoutSuffix || isFuture) ? 'deň' : 'dňom';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dni' : 'dní');\n } else {\n return result + 'dňami';\n }\n break;\n case 'M': // a month / in a month / a month ago\n return (withoutSuffix || isFuture) ? 'mesiac' : 'mesiacom';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n break;\n case 'y': // a year / in a year / a year ago\n return (withoutSuffix || isFuture) ? 'rok' : 'rokom';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n break;\n }\n }\n\n var sk = moment.defineLocale('sk', {\n months : months,\n monthsShort : monthsShort,\n weekdays : 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n weekdaysShort : 'ne_po_ut_st_št_pi_so'.split('_'),\n weekdaysMin : 'ne_po_ut_st_št_pi_so'.split('_'),\n longDateFormat : {\n LT: 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd D. MMMM YYYY H:mm'\n },\n calendar : {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo štvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[včera o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'pred %s',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return sk;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n }\n\n var sl = moment.defineLocale('sl', {\n months : 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'),\n monthsShort : 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays : 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n weekdaysShort : 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n weekdaysMin : 'ne_po_to_sr_če_pe_so'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd, D. MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[danes ob] LT',\n nextDay : '[jutri ob] LT',\n\n nextWeek : function () {\n switch (this.day()) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay : '[včeraj ob] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 0:\n return '[prejšnjo] [nedeljo] [ob] LT';\n case 3:\n return '[prejšnjo] [sredo] [ob] LT';\n case 6:\n return '[prejšnjo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejšnji] dddd [ob] LT';\n }\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'čez %s',\n past : 'pred %s',\n s : processRelativeTime,\n ss : processRelativeTime,\n m : processRelativeTime,\n mm : processRelativeTime,\n h : processRelativeTime,\n hh : processRelativeTime,\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return sl;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var sq = moment.defineLocale('sq', {\n months : 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'),\n monthsShort : 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays : 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'),\n weekdaysShort : 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin : 'D_H_Ma_Më_E_P_Sh'.split('_'),\n weekdaysParseExact : true,\n meridiemParse: /PD|MD/,\n isPM: function (input) {\n return input.charAt(0) === 'M';\n },\n meridiem : function (hours, minutes, isLower) {\n return hours < 12 ? 'PD' : 'MD';\n },\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Sot në] LT',\n nextDay : '[Nesër në] LT',\n nextWeek : 'dddd [në] LT',\n lastDay : '[Dje në] LT',\n lastWeek : 'dddd [e kaluar në] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'në %s',\n past : '%s më parë',\n s : 'disa sekonda',\n ss : '%d sekonda',\n m : 'një minutë',\n mm : '%d minuta',\n h : 'një orë',\n hh : '%d orë',\n d : 'një ditë',\n dd : '%d ditë',\n M : 'një muaj',\n MM : '%d muaj',\n y : 'një vit',\n yy : '%d vite'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return sq;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var translator = {\n words: { //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jedne minute'],\n mm: ['minut', 'minute', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mesec', 'meseca', 'meseci'],\n yy: ['godina', 'godine', 'godina']\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator.correctGrammaticalCase(number, wordKey);\n }\n }\n };\n\n var sr = moment.defineLocale('sr', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split('_'),\n weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact : true,\n longDateFormat: {\n LT: 'H:mm',\n LTS : 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedelju] [u] LT';\n case 3:\n return '[u] [sredu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay : '[juče u] LT',\n lastWeek : function () {\n var lastWeekDays = [\n '[prošle] [nedelje] [u] LT',\n '[prošlog] [ponedeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT'\n ];\n return lastWeekDays[this.day()];\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'pre %s',\n s : 'nekoliko sekundi',\n ss : translator.translate,\n m : translator.translate,\n mm : translator.translate,\n h : translator.translate,\n hh : translator.translate,\n d : 'dan',\n dd : translator.translate,\n M : 'mesec',\n MM : translator.translate,\n y : 'godinu',\n yy : translator.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return sr;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var translator = {\n words: { //Different grammatical cases\n ss: ['секунда', 'секунде', 'секунди'],\n m: ['један минут', 'једне минуте'],\n mm: ['минут', 'минуте', 'минута'],\n h: ['један сат', 'једног сата'],\n hh: ['сат', 'сата', 'сати'],\n dd: ['дан', 'дана', 'дана'],\n MM: ['месец', 'месеца', 'месеци'],\n yy: ['година', 'године', 'година']\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator.correctGrammaticalCase(number, wordKey);\n }\n }\n };\n\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split('_'),\n monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n weekdaysParseExact : true,\n longDateFormat: {\n LT: 'H:mm',\n LTS : 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[данас у] LT',\n nextDay: '[сутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [среду] [у] LT';\n case 6:\n return '[у] [суботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay : '[јуче у] LT',\n lastWeek : function () {\n var lastWeekDays = [\n '[прошле] [недеље] [у] LT',\n '[прошлог] [понедељка] [у] LT',\n '[прошлог] [уторка] [у] LT',\n '[прошле] [среде] [у] LT',\n '[прошлог] [четвртка] [у] LT',\n '[прошлог] [петка] [у] LT',\n '[прошле] [суботе] [у] LT'\n ];\n return lastWeekDays[this.day()];\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'за %s',\n past : 'пре %s',\n s : 'неколико секунди',\n ss : translator.translate,\n m : translator.translate,\n mm : translator.translate,\n h : translator.translate,\n hh : translator.translate,\n d : 'дан',\n dd : translator.translate,\n M : 'месец',\n MM : translator.translate,\n y : 'годину',\n yy : translator.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return srCyrl;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ss = moment.defineLocale('ss', {\n months : \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split('_'),\n monthsShort : 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays : 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split('_'),\n weekdaysShort : 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin : 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendar : {\n sameDay : '[Namuhla nga] LT',\n nextDay : '[Kusasa nga] LT',\n nextWeek : 'dddd [nga] LT',\n lastDay : '[Itolo nga] LT',\n lastWeek : 'dddd [leliphelile] [nga] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'nga %s',\n past : 'wenteka nga %s',\n s : 'emizuzwana lomcane',\n ss : '%d mzuzwana',\n m : 'umzuzu',\n mm : '%d emizuzu',\n h : 'lihora',\n hh : '%d emahora',\n d : 'lilanga',\n dd : '%d emalanga',\n M : 'inyanga',\n MM : '%d tinyanga',\n y : 'umnyaka',\n yy : '%d iminyaka'\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem : function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal : '%d',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return ss;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var sv = moment.defineLocale('sv', {\n months : 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),\n monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays : 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort : 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin : 'sö_må_ti_on_to_fr_lö'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [kl.] HH:mm',\n LLLL : 'dddd D MMMM YYYY [kl.] HH:mm',\n lll : 'D MMM YYYY HH:mm',\n llll : 'ddd D MMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[Igår] LT',\n nextWeek: '[På] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'om %s',\n past : 'för %s sedan',\n s : 'några sekunder',\n ss : '%d sekunder',\n m : 'en minut',\n mm : '%d minuter',\n h : 'en timme',\n hh : '%d timmar',\n d : 'en dag',\n dd : '%d dagar',\n M : 'en månad',\n MM : '%d månader',\n y : 'ett år',\n yy : '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(e|a)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'e' :\n (b === 1) ? 'a' :\n (b === 2) ? 'a' :\n (b === 3) ? 'e' : 'e';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return sv;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var sw = moment.defineLocale('sw', {\n months : 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split('_'),\n monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays : 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split('_'),\n weekdaysShort : 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin : 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[leo saa] LT',\n nextDay : '[kesho saa] LT',\n nextWeek : '[wiki ijayo] dddd [saat] LT',\n lastDay : '[jana] LT',\n lastWeek : '[wiki iliyopita] dddd [saat] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s baadaye',\n past : 'tokea %s',\n s : 'hivi punde',\n ss : 'sekunde %d',\n m : 'dakika moja',\n mm : 'dakika %d',\n h : 'saa limoja',\n hh : 'masaa %d',\n d : 'siku moja',\n dd : 'masiku %d',\n M : 'mwezi mmoja',\n MM : 'miezi %d',\n y : 'mwaka mmoja',\n yy : 'miaka %d'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return sw;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '௧',\n '2': '௨',\n '3': '௩',\n '4': '௪',\n '5': '௫',\n '6': '௬',\n '7': '௭',\n '8': '௮',\n '9': '௯',\n '0': '௦'\n }, numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n '௭': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0'\n };\n\n var ta = moment.defineLocale('ta', {\n months : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),\n monthsShort : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),\n weekdays : 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split('_'),\n weekdaysShort : 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split('_'),\n weekdaysMin : 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, HH:mm',\n LLLL : 'dddd, D MMMM YYYY, HH:mm'\n },\n calendar : {\n sameDay : '[இன்று] LT',\n nextDay : '[நாளை] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[நேற்று] LT',\n lastWeek : '[கடந்த வாரம்] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s இல்',\n past : '%s முன்',\n s : 'ஒரு சில விநாடிகள்',\n ss : '%d விநாடிகள்',\n m : 'ஒரு நிமிடம்',\n mm : '%d நிமிடங்கள்',\n h : 'ஒரு மணி நேரம்',\n hh : '%d மணி நேரம்',\n d : 'ஒரு நாள்',\n dd : '%d நாட்கள்',\n M : 'ஒரு மாதம்',\n MM : '%d மாதங்கள்',\n y : 'ஒரு வருடம்',\n yy : '%d ஆண்டுகள்'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n ordinal : function (number) {\n return number + 'வது';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n meridiem : function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமம்';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நண்பகல்'; // நண்பகல்\n } else if (hour < 18) {\n return ' எற்பாடு'; // எற்பாடு\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமம்';\n }\n },\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமம்') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நண்பகல்') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return ta;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var te = moment.defineLocale('te', {\n months : 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జూలై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split('_'),\n monthsShort : 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జూలై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split('_'),\n monthsParseExact : true,\n weekdays : 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split('_'),\n weekdaysShort : 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n weekdaysMin : 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n longDateFormat : {\n LT : 'A h:mm',\n LTS : 'A h:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm',\n LLLL : 'dddd, D MMMM YYYY, A h:mm'\n },\n calendar : {\n sameDay : '[నేడు] LT',\n nextDay : '[రేపు] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[నిన్న] LT',\n lastWeek : '[గత] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s లో',\n past : '%s క్రితం',\n s : 'కొన్ని క్షణాలు',\n ss : '%d సెకన్లు',\n m : 'ఒక నిమిషం',\n mm : '%d నిమిషాలు',\n h : 'ఒక గంట',\n hh : '%d గంటలు',\n d : 'ఒక రోజు',\n dd : '%d రోజులు',\n M : 'ఒక నెల',\n MM : '%d నెలలు',\n y : 'ఒక సంవత్సరం',\n yy : '%d సంవత్సరాలు'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}వ/,\n ordinal : '%dవ',\n meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'రాత్రి') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధ్యాహ్నం') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంత్రం') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'రాత్రి';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధ్యాహ్నం';\n } else if (hour < 20) {\n return 'సాయంత్రం';\n } else {\n return 'రాత్రి';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return te;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var tet = moment.defineLocale('tet', {\n months : 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split('_'),\n monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays : 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort : 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin : 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'iha %s',\n past : '%s liuba',\n s : 'minutu balun',\n ss : 'minutu %d',\n m : 'minutu ida',\n mm : 'minutu %d',\n h : 'oras ida',\n hh : 'oras %d',\n d : 'loron ida',\n dd : 'loron %d',\n M : 'fulan ida',\n MM : 'fulan %d',\n y : 'tinan ida',\n yy : 'tinan %d'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return tet;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var suffixes = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум'\n };\n\n var tg = moment.defineLocale('tg', {\n months : 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'),\n monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays : 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split('_'),\n weekdaysShort : 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin : 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Имрӯз соати] LT',\n nextDay : '[Пагоҳ соати] LT',\n lastDay : '[Дирӯз соати] LT',\n nextWeek : 'dddd[и] [ҳафтаи оянда соати] LT',\n lastWeek : 'dddd[и] [ҳафтаи гузашта соати] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'баъди %s',\n past : '%s пеш',\n s : 'якчанд сония',\n m : 'як дақиқа',\n mm : '%d дақиқа',\n h : 'як соат',\n hh : '%d соат',\n d : 'як рӯз',\n dd : '%d рӯз',\n M : 'як моҳ',\n MM : '%d моҳ',\n y : 'як сол',\n yy : '%d сол'\n },\n meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'субҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'субҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1th is the first week of the year.\n }\n });\n\n return tg;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var th = moment.defineLocale('th', {\n months : 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'),\n monthsShort : 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split('_'),\n monthsParseExact: true,\n weekdays : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin : 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY เวลา H:mm',\n LLLL : 'วันddddที่ D MMMM YYYY เวลา H:mm'\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar : {\n sameDay : '[วันนี้ เวลา] LT',\n nextDay : '[พรุ่งนี้ เวลา] LT',\n nextWeek : 'dddd[หน้า เวลา] LT',\n lastDay : '[เมื่อวานนี้ เวลา] LT',\n lastWeek : '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'อีก %s',\n past : '%sที่แล้ว',\n s : 'ไม่กี่วินาที',\n ss : '%d วินาที',\n m : '1 นาที',\n mm : '%d นาที',\n h : '1 ชั่วโมง',\n hh : '%d ชั่วโมง',\n d : '1 วัน',\n dd : '%d วัน',\n M : '1 เดือน',\n MM : '%d เดือน',\n y : '1 ปี',\n yy : '%d ปี'\n }\n });\n\n return th;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var tlPh = moment.defineLocale('tl-ph', {\n months : 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'),\n monthsShort : 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays : 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'),\n weekdaysShort : 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin : 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'MM/D/YYYY',\n LL : 'MMMM D, YYYY',\n LLL : 'MMMM D, YYYY HH:mm',\n LLLL : 'dddd, MMMM DD, YYYY HH:mm'\n },\n calendar : {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'sa loob ng %s',\n past : '%s ang nakalipas',\n s : 'ilang segundo',\n ss : '%d segundo',\n m : 'isang minuto',\n mm : '%d minuto',\n h : 'isang oras',\n hh : '%d oras',\n d : 'isang araw',\n dd : '%d araw',\n M : 'isang buwan',\n MM : '%d buwan',\n y : 'isang taon',\n yy : '%d taon'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal : function (number) {\n return number;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return tlPh;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n function translateFuture(output) {\n var time = output;\n time = (output.indexOf('jaj') !== -1) ?\n time.slice(0, -3) + 'leS' :\n (output.indexOf('jar') !== -1) ?\n time.slice(0, -3) + 'waQ' :\n (output.indexOf('DIS') !== -1) ?\n time.slice(0, -3) + 'nem' :\n time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time = (output.indexOf('jaj') !== -1) ?\n time.slice(0, -3) + 'Hu’' :\n (output.indexOf('jar') !== -1) ?\n time.slice(0, -3) + 'wen' :\n (output.indexOf('DIS') !== -1) ?\n time.slice(0, -3) + 'ben' :\n time + ' ret';\n return time;\n }\n\n function translate(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n case 'mm':\n return numberNoun + ' tup';\n case 'hh':\n return numberNoun + ' rep';\n case 'dd':\n return numberNoun + ' jaj';\n case 'MM':\n return numberNoun + ' jar';\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n\n function numberAsNoun(number) {\n var hundred = Math.floor((number % 1000) / 100),\n ten = Math.floor((number % 100) / 10),\n one = number % 10,\n word = '';\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += ((word !== '') ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += ((word !== '') ? ' ' : '') + numbersNouns[one];\n }\n return (word === '') ? 'pagh' : word;\n }\n\n var tlh = moment.defineLocale('tlh', {\n months : 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split('_'),\n monthsShort : 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split('_'),\n monthsParseExact : true,\n weekdays : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysShort : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysMin : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L'\n },\n relativeTime : {\n future : translateFuture,\n past : translatePast,\n s : 'puS lup',\n ss : translate,\n m : 'wa’ tup',\n mm : translate,\n h : 'wa’ rep',\n hh : translate,\n d : 'wa’ jaj',\n dd : translate,\n M : 'wa’ jar',\n MM : translate,\n y : 'wa’ DIS',\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return tlh;\n\n})));\n","\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n var suffixes = {\n 1: '\\'inci',\n 5: '\\'inci',\n 8: '\\'inci',\n 70: '\\'inci',\n 80: '\\'inci',\n 2: '\\'nci',\n 7: '\\'nci',\n 20: '\\'nci',\n 50: '\\'nci',\n 3: '\\'üncü',\n 4: '\\'üncü',\n 100: '\\'üncü',\n 6: '\\'ncı',\n 9: '\\'uncu',\n 10: '\\'uncu',\n 30: '\\'uncu',\n 60: '\\'ıncı',\n 90: '\\'ıncı'\n };\n\n var tr = moment.defineLocale('tr', {\n months : 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split('_'),\n monthsShort : 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays : 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split('_'),\n weekdaysShort : 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),\n weekdaysMin : 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[bugün saat] LT',\n nextDay : '[yarın saat] LT',\n nextWeek : '[gelecek] dddd [saat] LT',\n lastDay : '[dün] LT',\n lastWeek : '[geçen] dddd [saat] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s sonra',\n past : '%s önce',\n s : 'birkaç saniye',\n ss : '%d saniye',\n m : 'bir dakika',\n mm : '%d dakika',\n h : 'bir saat',\n hh : '%d saat',\n d : 'bir gün',\n dd : '%d gün',\n M : 'bir ay',\n MM : '%d ay',\n y : 'bir yıl',\n yy : '%d yıl'\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) { // special case for zero\n return number + '\\'ıncı';\n }\n var a = number % 10,\n b = number % 100 - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return tr;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n // This is currently too difficult (maybe even impossible) to add.\n var tzl = moment.defineLocale('tzl', {\n months : 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split('_'),\n monthsShort : 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n weekdays : 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n weekdaysShort : 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n weekdaysMin : 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM [dallas] YYYY',\n LLL : 'D. MMMM [dallas] YYYY HH.mm',\n LLLL : 'dddd, [li] D. MMMM [dallas] YYYY HH.mm'\n },\n meridiemParse: /d\\'o|d\\'a/i,\n isPM : function (input) {\n return 'd\\'o' === input.toLowerCase();\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'd\\'o' : 'D\\'O';\n } else {\n return isLower ? 'd\\'a' : 'D\\'A';\n }\n },\n calendar : {\n sameDay : '[oxhi à] LT',\n nextDay : '[demà à] LT',\n nextWeek : 'dddd [à] LT',\n lastDay : '[ieiri à] LT',\n lastWeek : '[sür el] dddd [lasteu à] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'osprei %s',\n past : 'ja%s',\n s : processRelativeTime,\n ss : processRelativeTime,\n m : processRelativeTime,\n mm : processRelativeTime,\n h : processRelativeTime,\n hh : processRelativeTime,\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 's': ['viensas secunds', '\\'iensas secunds'],\n 'ss': [number + ' secunds', '' + number + ' secunds'],\n 'm': ['\\'n míut', '\\'iens míut'],\n 'mm': [number + ' míuts', '' + number + ' míuts'],\n 'h': ['\\'n þora', '\\'iensa þora'],\n 'hh': [number + ' þoras', '' + number + ' þoras'],\n 'd': ['\\'n ziua', '\\'iensa ziua'],\n 'dd': [number + ' ziuas', '' + number + ' ziuas'],\n 'M': ['\\'n mes', '\\'iens mes'],\n 'MM': [number + ' mesen', '' + number + ' mesen'],\n 'y': ['\\'n ar', '\\'iens ar'],\n 'yy': [number + ' ars', '' + number + ' ars']\n };\n return isFuture ? format[key][0] : (withoutSuffix ? format[key][0] : format[key][1]);\n }\n\n return tzl;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var tzm = moment.defineLocale('tzm', {\n months : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),\n monthsShort : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),\n weekdays : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysShort : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysMin : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS: 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',\n nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',\n nextWeek: 'dddd [ⴴ] LT',\n lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',\n lastWeek: 'dddd [ⴴ] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',\n past : 'ⵢⴰⵏ %s',\n s : 'ⵉⵎⵉⴽ',\n ss : '%d ⵉⵎⵉⴽ',\n m : 'ⵎⵉⵏⵓⴺ',\n mm : '%d ⵎⵉⵏⵓⴺ',\n h : 'ⵙⴰⵄⴰ',\n hh : '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',\n d : 'ⴰⵙⵙ',\n dd : '%d oⵙⵙⴰⵏ',\n M : 'ⴰⵢoⵓⵔ',\n MM : '%d ⵉⵢⵢⵉⵔⵏ',\n y : 'ⴰⵙⴳⴰⵙ',\n yy : '%d ⵉⵙⴳⴰⵙⵏ'\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return tzm;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var tzmLatn = moment.defineLocale('tzm-latn', {\n months : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),\n monthsShort : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),\n weekdays : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysShort : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysMin : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[asdkh g] LT',\n nextDay: '[aska g] LT',\n nextWeek: 'dddd [g] LT',\n lastDay: '[assant g] LT',\n lastWeek: 'dddd [g] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'dadkh s yan %s',\n past : 'yan %s',\n s : 'imik',\n ss : '%d imik',\n m : 'minuḍ',\n mm : '%d minuḍ',\n h : 'saɛa',\n hh : '%d tassaɛin',\n d : 'ass',\n dd : '%d ossan',\n M : 'ayowr',\n MM : '%d iyyirn',\n y : 'asgas',\n yy : '%d isgasn'\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return tzmLatn;\n\n})));\n","//! moment.js language configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ugCn = moment.defineLocale('ug-cn', {\n months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n monthsShort: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\n '_'\n ),\n weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',\n LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm'\n },\n meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n meridiem === 'يېرىم كېچە' ||\n meridiem === 'سەھەر' ||\n meridiem === 'چۈشتىن بۇرۇن'\n ) {\n return hour;\n } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'يېرىم كېچە';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'چۈشتىن بۇرۇن';\n } else if (hm < 1230) {\n return 'چۈش';\n } else if (hm < 1800) {\n return 'چۈشتىن كېيىن';\n } else {\n return 'كەچ';\n }\n },\n calendar: {\n sameDay: '[بۈگۈن سائەت] LT',\n nextDay: '[ئەتە سائەت] LT',\n nextWeek: '[كېلەركى] dddd [سائەت] LT',\n lastDay: '[تۆنۈگۈن] LT',\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s كېيىن',\n past: '%s بۇرۇن',\n s: 'نەچچە سېكونت',\n ss: '%d سېكونت',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر سائەت',\n hh: '%d سائەت',\n d: 'بىر كۈن',\n dd: '%d كۈن',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر يىل',\n yy: '%d يىل'\n },\n\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n default:\n return number;\n }\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return ugCn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n 'ss': withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n 'mm': withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n 'hh': withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n 'dd': 'день_дні_днів',\n 'MM': 'місяць_місяці_місяців',\n 'yy': 'рік_роки_років'\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n }\n else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n }\n else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n 'nominative': 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'),\n 'accusative': 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'),\n 'genitive': 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_')\n };\n\n if (!m) {\n return weekdays['nominative'];\n }\n\n var nounCase = (/(\\[[ВвУу]\\]) ?dddd/).test(format) ?\n 'accusative' :\n ((/\\[?(?:минулої|наступної)? ?\\] ?dddd/).test(format) ?\n 'genitive' :\n 'nominative');\n return weekdays[nounCase][m.day()];\n }\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n\n var uk = moment.defineLocale('uk', {\n months : {\n 'format': 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_'),\n 'standalone': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_')\n },\n monthsShort : 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'),\n weekdays : weekdaysCaseReplace,\n weekdaysShort : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY р.',\n LLL : 'D MMMM YYYY р., HH:mm',\n LLLL : 'dddd, D MMMM YYYY р., HH:mm'\n },\n calendar : {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'за %s',\n past : '%s тому',\n s : 'декілька секунд',\n ss : relativeTimeWithPlural,\n m : relativeTimeWithPlural,\n mm : relativeTimeWithPlural,\n h : 'годину',\n hh : relativeTimeWithPlural,\n d : 'день',\n dd : relativeTimeWithPlural,\n M : 'місяць',\n MM : relativeTimeWithPlural,\n y : 'рік',\n yy : relativeTimeWithPlural\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|дня|вечора/,\n isPM: function (input) {\n return /^(дня|вечора)$/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return uk;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var months = [\n 'جنوری',\n 'فروری',\n 'مارچ',\n 'اپریل',\n 'مئی',\n 'جون',\n 'جولائی',\n 'اگست',\n 'ستمبر',\n 'اکتوبر',\n 'نومبر',\n 'دسمبر'\n ];\n var days = [\n 'اتوار',\n 'پیر',\n 'منگل',\n 'بدھ',\n 'جمعرات',\n 'جمعہ',\n 'ہفتہ'\n ];\n\n var ur = moment.defineLocale('ur', {\n months : months,\n monthsShort : months,\n weekdays : days,\n weekdaysShort : days,\n weekdaysMin : days,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd، D MMMM YYYY HH:mm'\n },\n meridiemParse: /صبح|شام/,\n isPM : function (input) {\n return 'شام' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar : {\n sameDay : '[آج بوقت] LT',\n nextDay : '[کل بوقت] LT',\n nextWeek : 'dddd [بوقت] LT',\n lastDay : '[گذشتہ روز بوقت] LT',\n lastWeek : '[گذشتہ] dddd [بوقت] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s بعد',\n past : '%s قبل',\n s : 'چند سیکنڈ',\n ss : '%d سیکنڈ',\n m : 'ایک منٹ',\n mm : '%d منٹ',\n h : 'ایک گھنٹہ',\n hh : '%d گھنٹے',\n d : 'ایک دن',\n dd : '%d دن',\n M : 'ایک ماہ',\n MM : '%d ماہ',\n y : 'ایک سال',\n yy : '%d سال'\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return ur;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var uz = moment.defineLocale('uz', {\n months : 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'),\n monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays : 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort : 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin : 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'D MMMM YYYY, dddd HH:mm'\n },\n calendar : {\n sameDay : '[Бугун соат] LT [да]',\n nextDay : '[Эртага] LT [да]',\n nextWeek : 'dddd [куни соат] LT [да]',\n lastDay : '[Кеча соат] LT [да]',\n lastWeek : '[Утган] dddd [куни соат] LT [да]',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'Якин %s ичида',\n past : 'Бир неча %s олдин',\n s : 'фурсат',\n ss : '%d фурсат',\n m : 'бир дакика',\n mm : '%d дакика',\n h : 'бир соат',\n hh : '%d соат',\n d : 'бир кун',\n dd : '%d кун',\n M : 'бир ой',\n MM : '%d ой',\n y : 'бир йил',\n yy : '%d йил'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return uz;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var uzLatn = moment.defineLocale('uz-latn', {\n months : 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split('_'),\n monthsShort : 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays : 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split('_'),\n weekdaysShort : 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin : 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'D MMMM YYYY, dddd HH:mm'\n },\n calendar : {\n sameDay : '[Bugun soat] LT [da]',\n nextDay : '[Ertaga] LT [da]',\n nextWeek : 'dddd [kuni soat] LT [da]',\n lastDay : '[Kecha soat] LT [da]',\n lastWeek : '[O\\'tgan] dddd [kuni soat] LT [da]',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'Yaqin %s ichida',\n past : 'Bir necha %s oldin',\n s : 'soniya',\n ss : '%d soniya',\n m : 'bir daqiqa',\n mm : '%d daqiqa',\n h : 'bir soat',\n hh : '%d soat',\n d : 'bir kun',\n dd : '%d kun',\n M : 'bir oy',\n MM : '%d oy',\n y : 'bir yil',\n yy : '%d yil'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return uzLatn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var vi = moment.defineLocale('vi', {\n months : 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split('_'),\n monthsShort : 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split('_'),\n monthsParseExact : true,\n weekdays : 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split('_'),\n weekdaysShort : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact : true,\n meridiemParse: /sa|ch/i,\n isPM : function (input) {\n return /^ch$/i.test(input);\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM [năm] YYYY',\n LLL : 'D MMMM [năm] YYYY HH:mm',\n LLLL : 'dddd, D MMMM [năm] YYYY HH:mm',\n l : 'DD/M/YYYY',\n ll : 'D MMM YYYY',\n lll : 'D MMM YYYY HH:mm',\n llll : 'ddd, D MMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngày mai lúc] LT',\n nextWeek: 'dddd [tuần tới lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần rồi lúc] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : '%s tới',\n past : '%s trước',\n s : 'vài giây',\n ss : '%d giây' ,\n m : 'một phút',\n mm : '%d phút',\n h : 'một giờ',\n hh : '%d giờ',\n d : 'một ngày',\n dd : '%d ngày',\n M : 'một tháng',\n MM : '%d tháng',\n y : 'một năm',\n yy : '%d năm'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal : function (number) {\n return number;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return vi;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var xPseudo = moment.defineLocale('x-pseudo', {\n months : 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split('_'),\n monthsShort : 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split('_'),\n monthsParseExact : true,\n weekdays : 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split('_'),\n weekdaysShort : 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\n weekdaysMin : 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[T~ódá~ý át] LT',\n nextDay : '[T~ómó~rró~w át] LT',\n nextWeek : 'dddd [át] LT',\n lastDay : '[Ý~ést~érdá~ý át] LT',\n lastWeek : '[L~ást] dddd [át] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'í~ñ %s',\n past : '%s á~gó',\n s : 'á ~féw ~sécó~ñds',\n ss : '%d s~écóñ~ds',\n m : 'á ~míñ~úté',\n mm : '%d m~íñú~tés',\n h : 'á~ñ hó~úr',\n hh : '%d h~óúrs',\n d : 'á ~dáý',\n dd : '%d d~áýs',\n M : 'á ~móñ~th',\n MM : '%d m~óñt~hs',\n y : 'á ~ýéár',\n yy : '%d ý~éárs'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return xPseudo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var yo = moment.defineLocale('yo', {\n months : 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split('_'),\n monthsShort : 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),\n weekdays : 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),\n weekdaysShort : 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),\n weekdaysMin : 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendar : {\n sameDay : '[Ònì ni] LT',\n nextDay : '[Ọ̀la ni] LT',\n nextWeek : 'dddd [Ọsẹ̀ tón\\'bọ] [ni] LT',\n lastDay : '[Àna ni] LT',\n lastWeek : 'dddd [Ọsẹ̀ tólọ́] [ni] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'ní %s',\n past : '%s kọjá',\n s : 'ìsẹjú aayá die',\n ss :'aayá %d',\n m : 'ìsẹjú kan',\n mm : 'ìsẹjú %d',\n h : 'wákati kan',\n hh : 'wákati %d',\n d : 'ọjọ́ kan',\n dd : 'ọjọ́ %d',\n M : 'osù kan',\n MM : 'osù %d',\n y : 'ọdún kan',\n yy : 'ọdún %d'\n },\n dayOfMonthOrdinalParse : /ọjọ́\\s\\d{1,2}/,\n ordinal : 'ọjọ́ %d',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return yo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var zhCn = moment.defineLocale('zh-cn', {\n months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort : '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n weekdaysMin : '日_一_二_三_四_五_六'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYY年M月D日',\n LLL : 'YYYY年M月D日Ah点mm分',\n LLLL : 'YYYY年M月D日ddddAh点mm分',\n l : 'YYYY/M/D',\n ll : 'YYYY年M月D日',\n lll : 'YYYY年M月D日 HH:mm',\n llll : 'YYYY年M月D日dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' ||\n meridiem === '上午') {\n return hour;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // '中午'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar : {\n sameDay : '[今天]LT',\n nextDay : '[明天]LT',\n nextWeek : '[下]ddddLT',\n lastDay : '[昨天]LT',\n lastWeek : '[上]ddddLT',\n sameElse : 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime : {\n future : '%s内',\n past : '%s前',\n s : '几秒',\n ss : '%d 秒',\n m : '1 分钟',\n mm : '%d 分钟',\n h : '1 小时',\n hh : '%d 小时',\n d : '1 天',\n dd : '%d 天',\n M : '1 个月',\n MM : '%d 个月',\n y : '1 年',\n yy : '%d 年'\n },\n week : {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return zhCn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var zhHk = moment.defineLocale('zh-hk', {\n months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin : '日_一_二_三_四_五_六'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYY年M月D日',\n LLL : 'YYYY年M月D日 HH:mm',\n LLLL : 'YYYY年M月D日dddd HH:mm',\n l : 'YYYY/M/D',\n ll : 'YYYY年M月D日',\n lll : 'YYYY年M月D日 HH:mm',\n llll : 'YYYY年M月D日dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar : {\n sameDay : '[今天]LT',\n nextDay : '[明天]LT',\n nextWeek : '[下]ddddLT',\n lastDay : '[昨天]LT',\n lastWeek : '[上]ddddLT',\n sameElse : 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd' :\n case 'D' :\n case 'DDD' :\n return number + '日';\n case 'M' :\n return number + '月';\n case 'w' :\n case 'W' :\n return number + '週';\n default :\n return number;\n }\n },\n relativeTime : {\n future : '%s內',\n past : '%s前',\n s : '幾秒',\n ss : '%d 秒',\n m : '1 分鐘',\n mm : '%d 分鐘',\n h : '1 小時',\n hh : '%d 小時',\n d : '1 天',\n dd : '%d 天',\n M : '1 個月',\n MM : '%d 個月',\n y : '1 年',\n yy : '%d 年'\n }\n });\n\n return zhHk;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var zhTw = moment.defineLocale('zh-tw', {\n months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin : '日_一_二_三_四_五_六'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYY年M月D日',\n LLL : 'YYYY年M月D日 HH:mm',\n LLLL : 'YYYY年M月D日dddd HH:mm',\n l : 'YYYY/M/D',\n ll : 'YYYY年M月D日',\n lll : 'YYYY年M月D日 HH:mm',\n llll : 'YYYY年M月D日dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar : {\n sameDay : '[今天] LT',\n nextDay : '[明天] LT',\n nextWeek : '[下]dddd LT',\n lastDay : '[昨天] LT',\n lastWeek : '[上]dddd LT',\n sameElse : 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd' :\n case 'D' :\n case 'DDD' :\n return number + '日';\n case 'M' :\n return number + '月';\n case 'w' :\n case 'W' :\n return number + '週';\n default :\n return number;\n }\n },\n relativeTime : {\n future : '%s內',\n past : '%s前',\n s : '幾秒',\n ss : '%d 秒',\n m : '1 分鐘',\n mm : '%d 分鐘',\n h : '1 小時',\n hh : '%d 小時',\n d : '1 天',\n dd : '%d 天',\n M : '1 個月',\n MM : '%d 個月',\n y : '1 年',\n yy : '%d 年'\n }\n });\n\n return zhTw;\n\n})));\n"],"sourceRoot":""}