{"version":3,"sources":["../node_modules/react/index.js","../node_modules/axios/lib/utils.js","../node_modules/webpack/buildin/global.js","../node_modules/process/browser.js","../node_modules/inherits/inherits_browser.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/buffer/index.js","../node_modules/stream-http/node_modules/readable-stream/lib/_stream_duplex.js","../node_modules/core-util-is/lib/util.js","../node_modules/process-nextick-args/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/safe-buffer/index.js","../node_modules/object-assign/index.js","../node_modules/webpack/buildin/module.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/defaults.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/cancel/Cancel.js","../node_modules/isarray/index.js","../node_modules/stream-http/lib/capability.js","../node_modules/stream-http/lib/response.js","../node_modules/stream-http/node_modules/readable-stream/readable-browser.js","../node_modules/stream-http/node_modules/readable-stream/lib/_stream_readable.js","../node_modules/events/events.js","../node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/stream-browser.js","../node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/destroy.js","../node_modules/stream-http/node_modules/readable-stream/lib/_stream_writable.js","../node_modules/string_decoder/lib/string_decoder.js","../node_modules/stream-http/node_modules/readable-stream/lib/_stream_transform.js","../node_modules/url/url.js","../node_modules/react-dom/index.js","../node_modules/chart.js/dist/Chart.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/moment/moment.js","../node_modules/axios/index.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/https-browserify/index.js","../node_modules/stream-http/index.js","../node_modules/stream-http/lib/request.js","../node_modules/base64-js/index.js","../node_modules/ieee754/index.js","../node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/BufferList.js","../node_modules/timers-browserify/main.js","../node_modules/setimmediate/setImmediate.js","../node_modules/util-deprecate/browser.js","../node_modules/string_decoder/node_modules/safe-buffer/index.js","../node_modules/stream-http/node_modules/readable-stream/lib/_stream_passthrough.js","../node_modules/to-arraybuffer/index.js","../node_modules/xtend/immutable.js","../node_modules/builtin-status-codes/browser.js","../node_modules/node-libs-browser/node_modules/punycode/punycode.js","../node_modules/url/util.js","../node_modules/querystring-es3/index.js","../node_modules/querystring-es3/decode.js","../node_modules/querystring-es3/encode.js"],"names":["module","exports","require","bind","toString","Object","prototype","isArray","val","call","isUndefined","isObject","isPlainObject","getPrototypeOf","isFunction","forEach","obj","fn","i","l","length","key","hasOwnProperty","isArrayBuffer","isBuffer","constructor","isFormData","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isString","isNumber","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","navigator","product","window","document","merge","result","assignValue","slice","arguments","extend","a","b","thisArg","trim","str","replace","stripBOM","content","charCodeAt","g","this","Function","e","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","len","run","marker","runClearTimeout","Item","array","noop","nextTick","args","Array","push","apply","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","name","binding","cwd","chdir","dir","umask","create","ctor","superCtor","super_","value","enumerable","writable","configurable","TempCtor","_defineProperty","defineProperty","base64","ieee754","kMaxLength","Buffer","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","Uint8Array","__proto__","arg","encodingOrOffset","allocUnsafe","from","TypeError","byteOffset","byteLength","undefined","fromArrayLike","fromArrayBuffer","string","encoding","isEncoding","actual","write","fromString","checked","copy","type","data","fromObject","assertSize","size","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","start","end","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","n","m","bidirectionalIndexOf","isNaN","arrayIndexOf","indexOf","lastIndexOf","arr","indexSize","arrLength","valLength","String","read","buf","readUInt16BE","foundIndex","found","j","hexWrite","offset","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","c","hi","lo","utf16leToBytes","fromByteArray","Math","min","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","fromCharCode","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","global","foo","subarray","typedArraySupport","poolSize","_augment","Symbol","species","fill","allocUnsafeSlow","_isBuffer","compare","x","y","list","pos","swap16","swap32","swap64","equals","inspect","max","match","join","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","ret","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","floor","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","set","code","INVALID_BASE64_RE","Infinity","leadSurrogate","toByteArray","stringtrim","base64clean","src","dst","pna","objectKeys","keys","Duplex","util","inherits","Readable","Writable","v","method","options","readable","allowHalfOpen","onend","_writableState","ended","onEndNT","self","get","highWaterMark","_readableState","destroyed","_destroy","err","cb","objectToString","o","isBoolean","isNull","isNullOrUndefined","isSymbol","isRegExp","re","d","isError","isPrimitive","arg1","arg2","arg3","_classCallCheck","instance","Constructor","_defineProperties","props","descriptor","_createClass","protoProps","staticProps","_getPrototypeOf","setPrototypeOf","_typeof","iterator","_possibleConstructorReturn","ReferenceError","_setPrototypeOf","p","_inherits","subClass","superClass","copyProps","SafeBuffer","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","toObject","assign","test1","getOwnPropertyNames","test2","map","test3","split","letter","shouldUseNative","source","symbols","to","s","webpackPolyfill","deprecate","paths","children","utils","encode","encodeURIComponent","url","params","paramsSerializer","serializedParams","parts","toISOString","JSON","stringify","hashmarkIndex","__CANCEL__","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","headers","defaults","adapter","XMLHttpRequest","getDefaultAdapter","transformRequest","transformResponse","parse","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","status","common","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","config","Promise","resolve","reject","requestData","requestHeaders","request","auth","username","password","unescape","Authorization","btoa","fullPath","baseURL","open","toUpperCase","onreadystatechange","readyState","responseURL","responseHeaders","getAllResponseHeaders","response","responseType","responseText","statusText","onabort","onerror","ontimeout","timeoutErrorMessage","xsrfValue","withCredentials","setRequestHeader","onDownloadProgress","addEventListener","onUploadProgress","upload","cancelToken","promise","then","cancel","abort","send","enhanceError","message","error","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","mergeDeepProperties","prop","axiosKeys","otherKeys","filter","Cancel","fetch","ReadableStream","writableStream","WritableStream","abortController","AbortController","blobConstructor","Blob","xhr","getXHR","XDomainRequest","checkTypeSupport","haveArrayBuffer","haveSlice","arraybuffer","msstream","mozchunkedarraybuffer","overrideMimeType","vbArray","VBArray","capability","stream","rStates","readyStates","UNSENT","OPENED","HEADERS_RECEIVED","LOADING","DONE","IncomingMessage","mode","fetchTimer","_mode","rawHeaders","trailers","rawTrailers","_fetchResponse","statusCode","statusMessage","header","chunk","_destroyed","_resumeFetch","close","body","pipeTo","catch","reader","getReader","done","_xhr","_pos","matches","_charset","mimeType","charsetMatch","_read","_onXHRProgress","responseBody","toArray","newData","MSStreamReader","onprogress","onload","readAsArrayBuffer","Stream","Transform","PassThrough","ReadableState","EventEmitter","EElistenerCount","emitter","OurUint8Array","debugUtil","debug","debuglog","StringDecoder","BufferList","destroyImpl","kProxyEvents","isDuplex","objectMode","readableObjectMode","hwm","readableHwm","readableHighWaterMark","defaultHwm","pipes","pipesCount","flowing","endEmitted","reading","sync","needReadable","emittedReadable","readableListening","resumeScheduled","defaultEncoding","awaitDrain","readingMore","decoder","destroy","readableAddChunk","addToFront","skipChunkCheck","er","state","emitReadable","onEofChunk","chunkInvalid","_uint8ArrayToBuffer","addChunk","maybeReadMore","needMoreData","unshift","_undestroy","undestroy","isPaused","setEncoding","enc","howMuchToRead","head","computeNewHighWaterMark","emitReadable_","flow","maybeReadMore_","nReadingNextTick","resume_","fromList","shift","clear","hasStrings","next","nb","tail","copyFromBufferString","copyFromBuffer","fromListPartial","endReadable","endReadableNT","xs","nOrig","doRead","dest","pipeOpts","endFn","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","onclose","onfinish","ondrain","ondata","cleanedUp","needDrain","pipeOnDrain","increasedAwaitDrain","pause","event","_events","resume","dests","index","splice","ev","wrap","_this","paused","_fromList","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","ownKeys","NumberIsNaN","init","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","_addListener","prepend","events","existing","warning","newListener","warned","w","count","console","warn","onceWrapper","fired","wrapFn","_onceWrap","wrapped","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","setMaxListeners","getMaxListeners","doError","context","handler","position","originalListener","pop","spliceOne","rawListeners","eventNames","emitErrorNT","readableDestroyed","writableDestroyed","errorEmitted","ending","finished","CorkedRequest","entry","finish","corkReq","callback","pendingcb","corkedRequestsFree","onCorkedFinish","asyncWrite","setImmediate","WritableState","internalUtil","realHasInstance","nop","writableObjectMode","writableHwm","writableHighWaterMark","finalCalled","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writecb","writelen","onwriteStateUpdate","finishMaybe","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","_write","writev","_writev","final","_final","doWrite","onwriteDrain","holder","allBuffers","isBuf","callFinal","need","prefinish","getBuffer","current","_","hasInstance","object","writeAfterEnd","valid","validChunk","newChunk","decodeChunk","last","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","nenc","retried","_normalizeEncoding","normalizeEncoding","text","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","r","utf8CheckExtraBytes","total","utf8CheckIncomplete","afterTransform","ts","_transformState","transforming","writechunk","rs","needTransform","writeencoding","transform","_transform","flush","_flush","_this2","err2","punycode","Url","protocol","slashes","host","port","hostname","hash","search","query","pathname","path","href","urlParse","relative","resolveObject","format","protocolPattern","portPattern","simplePathPattern","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","unsafeProtocol","hostlessProtocol","slashedProtocol","querystring","parseQueryString","slashesDenoteHost","u","queryIndex","splitter","uSplit","rest","simplePath","exec","proto","lowerProto","atSign","hostEnd","hec","decodeURIComponent","parseHost","ipv6Hostname","hostparts","part","newpart","k","validParts","notHost","bit","toASCII","h","ae","esc","escape","qm","charAt","rel","tkeys","tk","tkey","rkeys","rk","rkey","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","authInHost","hasTrailingSlash","up","isAbsolute","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","moment","colorName","conversions","createCommonjsModule","reverseKeywords","convert","rgb","channels","labels","hsl","hsv","hwb","cmyk","xyz","lab","lch","hex","keyword","ansi16","ansi256","hcg","apple","gray","model","delta","rdif","gdif","bdif","diff","diffc","reversed","currentClosestKeyword","currentClosestDistance","distance","z","t1","t2","t3","smin","lmin","f","q","t","sl","vmin","wh","bl","ratio","y2","x2","z2","atan2","PI","sqrt","hr","cos","sin","round","ansi","color","mult","rem","substring","colorString","char","integer","hue","chroma","mg","pure","deriveBFS","fromModel","graph","models","parent","buildGraph","adjacents","adjacent","node","link","wrapConversion","toModel","cur","conversion","routes","route","wrappedFn","wrapRounded","raw","wrapRaw","colorConvert","colorName$1","getRgba","getHsla","getRgb","rgba","getHsl","hsla","getHwb","getAlpha","vals","hexString","hexDouble","rgbString","alpha","rgbaString","percentString","percentaString","hslString","hslaString","hwbString","reverseNames","hexAlpha","parseFloat","scale","num","Color","values","setValues","red","lightness","whiteness","cyan","isValid","setSpace","rgbArray","hslArray","hsvArray","hwbArray","cmykArray","rgbaArray","hslaArray","setChannel","green","blue","saturation","saturationv","blackness","magenta","yellow","black","rgbNumber","luminosity","lum","chan","contrast","color2","lum1","lum2","level","contrastRatio","dark","light","negate","lighten","darken","saturate","desaturate","whiten","blacken","greyscale","clearer","opaquer","rotate","degrees","mix","mixinColor","weight","w1","w2","clone","spaces","maxes","getValues","space","capped","chans","sname","svalues","chartjsColor","isValidKey","helpers","uid","id","isNullOrUndef","valueOrDefault","defaultValue","valueAtIndexOrDefault","each","loopable","reverse","arrayEquals","a0","a1","ilen","v0","v1","klen","_merger","tval","sval","_mergerIf","mergeIf","sources","merger","extensions","me","ChartElement","Surrogate","__super__","_deprecated","scope","previous","helpers_core","callCallback","item","fromIndex","getValueOrDefault","getValueAtIndexOrDefault","effects","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","asin","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","helpers_easing","easingEffects","RAD_PER_DEG","DOUBLE_PI","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","exports$1","chart","ctx","clearRect","width","height","roundedRect","radius","left","top","right","bottom","moveTo","arc","closePath","rect","drawPoint","style","rotation","xOffset","yOffset","cornerRadius","rad","save","translate","drawImage","restore","beginPath","lineTo","SQRT1_2","stroke","_isPointInArea","point","area","clipArea","clip","unclipArea","flip","stepped","steppedLine","midpoint","tension","bezierCurveTo","controlPointPreviousX","controlPointNextX","controlPointPreviousY","controlPointNextY","helpers_canvas","drawRoundedRectangle","_set","defaultColor","defaultFontColor","defaultFontFamily","defaultFontSize","defaultFontStyle","defaultLineHeight","showLines","core_defaults","helpers_options","toLineHeight","toPadding","_parseFont","globalDefaults","fontSize","font","family","fontFamily","lineHeight","fontStyle","toFontString","inputs","info","cacheable","exports$2","_factorize","sort","log10","exponent","log","LOG10E","powerOf10","helpers_math","helpers$1","easing","canvas","math","rtl","getRtlAdapter","rectX","setWidth","textAlign","align","xPlus","leftForLtr","itemWidth","_itemWidth","overrideTextDirection","direction","original","getPropertyValue","getPropertyPriority","setProperty","prevTextDirection","restoreTextDirection","Element","configuration","initialize","_type","hidden","pivot","_view","_model","_start","transition","ease","view","origin","c0","c1","interpolate","tooltipPosition","hasValue","core_element","exports$3","currentStep","numSteps","render","onAnimationProgress","onAnimationComplete","core_animation","animation","duration","onProgress","onComplete","core_animations","animations","addAnimation","lazy","startTime","Date","now","animating","requestAnimationFrame","cancelAnimation","findIndex","requestAnimFrame","startDigest","advance","nextStep","arrayEvents","unlistenArrayEvents","stub","_chartjs","DatasetController","datasetIndex","datasetElementType","dataElementType","_datasetElementOptions","_dataElementOptions","linkScales","addElements","getMeta","updateIndex","meta","scales","dataset","getDataset","scalesOpts","xAxisID","xAxes","yAxisID","yAxes","datasets","getDatasetMeta","getScaleForId","scaleID","_getValueScaleId","_getIndexScaleId","_getValueScale","_getIndexScale","reset","_update","_data","createMetaDataset","_chart","_datasetIndex","createMetaData","_index","metaData","addElementAndReset","element","updateElement","buildOrUpdateElements","isExtensible","base","resyncElements","_configure","_config","_cachedDataOpts","update","easingValue","elements","draw","getStyle","_resolveDatasetElementOptions","_resolveDataElementOptions","backgroundColor","borderColor","hover","readKey","datasetOpts","custom","elementOptions","cached","dataIndex","freeze","removeHoverStyle","$previousStyle","setHoverStyle","getHoverColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","_removeDatasetHoverStyle","_setDatasetHoverStyle","hoverOptions","prev","numMeta","numData","insertElements","onDataPush","onDataPop","onDataShift","onDataSplice","onDataUnshift","core_datasetController","TAU","clipArc","startAngle","endAngle","pixelMargin","angleMargin","outerRadius","innerRadius","drawBorder","vm","inner","borderAlign","lineWidth","lineJoin","fullCircles","drawFullCircleBorders","element_arc","inLabelRange","mouseX","hoverRadius","inRange","chartX","chartY","pointRelativePosition","getAngleFromPoint","angle","betweenAngles","withinRadius","getCenterPoint","halfAngle","halfRadius","getArea","centreAngle","rangeFromCentre","circumference","fillStyle","strokeStyle","valueOrDefault$1","line","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","capBezierPoints","element_line","currentVM","spanGaps","points","_children","globalOptionLineElements","lastDrawnIndex","_loop","previousItem","skip","lineCap","setLineDash","lineDashOffset","valueOrDefault$2","defaultColor$1","xRange","abs","hitRadius","pointStyle","element_point","mouseY","inXRange","inYRange","padding","chartArea","defaultColor$2","isVertical","getBarBounds","x1","y1","half","orig","v2","parseBorderWidth","maxW","maxH","edge","borderSkipped","horizontal","parseBorderSkipped","skipX","skipY","bounds","rectangle","element_rectangle","rects","border","outer","boundingRects","fillRect","Arc","Line","Point","Rectangle","deprecated","valueOrDefault$3","computeFitCategoryTraits","ruler","thickness","barThickness","stackCount","curr","pixels","_length","getTicks","getPixelForTick","computeMinSampleSize","categoryPercentage","barPercentage","gridLines","offsetGridLines","bar","controller_bar","scaleOpts","stack","minBarLength","maxBarThickness","_ruler","getRuler","_xScale","_yScale","datasetLabel","label","_updateElementGeometry","vscale","getBasePixel","isHorizontal","vpixels","calculateBarValuePixels","ipixels","calculateBarIndexPixels","center","_getStacks","metasets","_getMatchingVisibleMetas","stacked","stacks","getStackCount","getStackIndex","getPixelForValue","_startPixel","_endPixel","imeta","ivalue","stackLength","_parseValue","range","percent","computeFlexCategoryTraits","stackIndex","indexOpts","valueOpts","valueOrDefault$4","resolve$1","tooltips","callbacks","dataPoint","xLabel","yLabel","controller_bubble","xScale","yScale","dsIndex","getPixelForDecimal","NaN","_options","valueOrDefault$5","PI$1","DOUBLE_PI$1","HALF_PI$1","animateRotate","animateScale","legendCallback","listItem","createElement","setAttribute","appendChild","createTextNode","outerHTML","legend","generateLabels","controller","onClick","legendItem","cutoutPercentage","tooltipItem","dataLabel","controller_doughnut","getRingIndex","ringIndex","isDatasetVisible","maxWidth","maxHeight","opts","ratioX","ratioY","offsetX","offsetY","arcs","cutout","chartWeight","_getRingWeight","startX","startY","endX","endY","contains0","contains90","contains270","minX","minY","maxX","maxY","getMaxBorderWidth","radiusLength","_getVisibleDatasetWeightTotal","calculateTotal","_getRingWeightOffset","animationOpts","centerX","centerY","calculateCircumference","hoverWidth","ringWeightOffset","dataSetIndex","axis","horizontalBar","controller_horizontalBar","valueOrDefault$6","resolve$2","isPointInArea","scaleClip","halfBorderWidth","tickOpts","ticks","defaultClip","toClip","controller_line","showLine","_showLine","lineTension","_scale","updateBezierControlPoints","lineModel","calculatePointY","lineOptions","ds","dsMeta","stackedRightValue","rightValue","sumPos","sumNeg","getRightValue","_getSortedVisibleDatasetMetas","controlPoints","capControlPoint","pt","cubicInterpolationMode","splineCurveMonotone","splineCurve","nextItem","resolve$3","angleLines","display","circular","pointLabels","beginAtZero","controller_polarArea","starts","_starts","angles","_angles","_updateRadius","countVisibleElements","_computeAngle","minSize","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getDistanceFromCenterForValue","resetRadius","doughnut","controller_pie","valueOrDefault$7","controller_radar","pointPosition","getPointPositionForValue","scatter","controllers","bubble","polarArea","pie","radar","getRelativePosition","native","parseVisibleItems","metadata","jlen","getIntersectItems","getNearestItems","intersect","distanceMetric","minDistance","POSITIVE_INFINITY","nearestItems","getDistanceMetricForAxis","useX","useY","pt1","pt2","deltaX","deltaY","indexMode","items","core_interaction","modes","single","nearest","intersectsItem","filterByPosition","where","sortByWeight","getCombinedMax","maxPadding","updateDims","layout","newWidth","newHeight","box","getPadding","boxPadding","outerWidth","outerHeight","sizes","getMargins","marginForPositions","positions","margin","fitBoxes","boxes","refit","changed","refitBoxes","fullWidth","placeBoxes","userPadding","core_layouts","addBox","_layers","removeBox","layoutItem","configure","layoutOptions","availableWidth","availableHeight","layoutBoxes","wrapBoxes","leftAndTop","rightAndBottom","vertical","buildLayoutBoxes","verticalBoxes","horizontalBoxes","vBoxMaxWidth","hBoxMaxHeight","layouts","setLayoutDims","updatePos","change","handleMaxPadding","stylesheet","ANIMATION_START_EVENTS","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","readUsedSize","property","eventListenerOptions","supports","passive","removeEventListener","createEvent","nativeEvent","createDiv","cls","el","className","addResizeListener","expando","resizer","CSS_PREFIX","expand","CSS_SIZE_MONITOR","shrink","_reset","scrollLeft","scrollTop","onScroll","createResizer","ticking","throttled","container","maintainAspectRatio","parentNode","clientWidth","proxy","renderProxy","animationName","reflow","offsetParent","classList","add","watchForRender","insertBefore","firstChild","removeResizeListener","remove","unwatchForRender","removeChild","platform_dom$2","disableCSSInjection","_enabled","_ensureLoaded","root","getRootNode","rootNode","css","containsStyles","injectCSS","acquireContext","getElementById","getContext","renderHeight","getAttribute","renderWidth","initial","displayWidth","aspectRatio","displayHeight","initCanvas","releaseContext","removeAttribute","proxies","fromNativeEvent","addEvent","removeEvent","implementation","platform","plugins","core_plugins","_plugins","_cacheId","register","plugin","unregister","idx","getAll","notify","hook","descriptors","cache","$plugins","_invalidate","core_scaleService","constructors","registerScaleType","scaleConstructor","scaleDefaults","getScaleConstructor","getScaleDefaults","updateScaleDefaults","additions","addScalesToLayout","valueOrDefault$8","getRtlHelper","enabled","titleFontStyle","titleSpacing","titleMarginBottom","titleFontColor","titleAlign","bodySpacing","bodyFontColor","bodyAlign","footerFontStyle","footerSpacing","footerMarginTop","footerFontColor","footerAlign","yPadding","xPadding","caretPadding","caretSize","multiKeyBackground","displayColors","beforeTitle","tooltipItems","labelCount","afterTitle","beforeBody","beforeLabel","labelColor","labelTextColor","afterLabel","afterBody","beforeFooter","footer","afterFooter","positioners","average","eventPosition","nearestElement","distanceBetweenPoints","tp","pushOrConcat","toPush","splitNewlines","createTooltipItem","indexScale","valueScale","getLabelForIndex","getBaseModel","tooltipOpts","xAlign","yAlign","textDirection","_bodyFontFamily","bodyFontFamily","_bodyFontStyle","bodyFontStyle","_bodyAlign","bodyFontSize","_titleFontFamily","titleFontFamily","_titleFontStyle","titleFontSize","_titleAlign","_footerFontFamily","footerFontFamily","_footerFontStyle","footerFontSize","_footerAlign","opacity","legendColorBackground","getAlignedX","getBeforeAfterBodyLines","exports$4","_lastActive","getTitle","lines","getBeforeBody","getBody","bodyItems","bodyItem","before","after","getAfterBody","getFooter","existingModel","active","_active","alignment","backgroundPoint","tooltipSize","caretX","caretY","labelColors","labelTextColors","_eventPosition","itemSort","dataPoints","tooltip","combinedBodyLength","reduce","titleLineCount","footerLineCount","widthPadding","maxLineWidth","measureText","fontString","getTooltipSize","paddingAndSize","radiusAndPadding","getBackgroundPoint","lf","rf","olf","orf","yf","midX","midY","determineAlignment","drawCaret","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","tmp","drawTitle","rtlHelper","textBaseline","fillText","drawBody","textColor","drawColorBoxes","xLinePadding","colorX","fillLineOfText","bodyAlignForCalculation","rtlColorX","strokeRect","drawFooter","drawBackground","quadraticCurveTo","hasTooltipContent","globalAlpha","handleEvent","getElementsAtEventForMode","positioners_1","core_tooltip","valueOrDefault$9","mergeScaleConfig","slen","mergeConfig","updateConfig","newOptions","ensureScalesHaveIDs","buildOrUpdateScales","nextAvailableScaleId","axesOpts","prefix","hasId","positionIsHorizontal","compare2Level","l1","l2","onHover","animationDuration","responsive","responsiveAnimationDuration","Chart","construct","initConfig","_bufferedRender","instances","retinaScale","devicePixelRatio","bindEvents","resize","initToolTip","stop","silent","getMaximumWidth","getMaximumHeight","newSize","onResize","scalesOptions","scaleOptions","xAxisOptions","yAxisOptions","updated","dtype","dposition","isDefault","scaleType","scaleClass","mergeTicksOptions","hasUpdated","buildOrUpdateControllers","newControllers","destroyDatasetMeta","order","ControllerClass","resetElements","updateLayout","updateDatasets","lastActive","_bufferedRequest","_idx","updateDataset","animationOptions","animationObject","easingFunction","stepDecimal","layers","drawDatasets","_drawTooltip","_getSortedDatasetMetas","filterVisible","drawDataset","getElementAtEvent","getElementsAtEvent","getElementsAtXAxis","getDatasetAtEvent","_meta","generateLegend","unbindEvents","toBase64Image","toDataURL","_chartInstance","eventHandler","updateHoverStyle","core_controller","abstract","DateAdapter","Controller","types","configMerge","scaleMerge","formats","startOf","endOf","_create","override","members","core_adapters","_date","core_ticks","formatters","tickValue","logDelta","tickString","logTick","numExponential","toExponential","numDecimal","toFixed","logarithmic","remain","valueOrDefault$a","getPixelForGridLine","validIndex","lineValue","computeLabelSizes","tickFonts","caches","tickFont","nestedLabel","widest","highest","widths","heights","offsets","widestLabelSize","highestLabelSize","major","minor","gc","valueAt","gcLen","garbageCollect","first","getTickMarkLength","drawTicks","tickMarkLength","getScaleLabelHeight","parseFontOptions","nestedOpts","fontColor","parseTickFontOptions","nonSkipped","ticksToFilter","filtered","spacing","majorStart","majorEnd","tick","ceil","drawOnChartArea","zeroLineWidth","zeroLineColor","zeroLineBorderDash","zeroLineBorderDashOffset","scaleLabel","labelString","minRotation","maxRotation","mirror","autoSkip","autoSkipPadding","labelOffset","Scale","zeroLineIndex","paddingLeft","paddingTop","paddingRight","paddingBottom","_ticks","_getLabels","xLabels","yLabels","beforeUpdate","margins","samplingEnabled","sampleSize","_labelSizes","_maxLabelLines","longestLabelWidth","longestTextCache","_gridLineItems","_labelItems","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","beforeBuildTicks","buildTicks","afterBuildTicks","_convertTicksToLabels","numItems","increment","sample","beforeCalculateTickRotation","calculateTickRotation","afterCalculateTickRotation","beforeFit","fit","afterFit","_ticksToDraw","_autoSkip","afterUpdate","startPixel","endPixel","reversePixels","_reversePixels","beforeTickToLabelConversion","convertTicksToLabels","userCallback","afterTickToLabelConversion","labelSizes","maxLabelWidth","maxLabelHeight","tickWidth","maxLabelDiagonal","numTicks","labelRotation","_isVisible","_getLabelSizes","toDegrees","scaleLabelOpts","gridLineOpts","isBottom","firstLabelSize","lastLabelSize","lineSpace","tickPadding","isRotated","angleRadians","toRadians","cosRotation","sinRotation","labelHeight","offsetLeft","offsetRight","labelWidth","handleMargins","isFullWidth","rawValue","_getScaleLabel","getValueForPixel","decimal","getDecimalForPixel","pixel","getBaseValue","avgMajorSpacing","axisLength","ticksLimit","maxTicksLimit","_tickSize","majorIndices","getMajorIndices","numMajorIndices","skipMajors","factors","factor","evenMajorSpacing","getEvenSpacing","calculateSpacing","optionTicks","rot","_computeGridLineItems","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","lineColor","ticksLength","tl","axisWidth","axisHalfWidth","alignPixel","_alignPixel","alignBorderValue","_computeLabelItems","lineCount","textOffset","isMirrored","fonts","_drawGrid","firstLineWidth","lastLineWidth","_drawLabels","_drawTitle","scaleLabelX","scaleLabelY","scaleLabelFontColor","scaleLabelFont","scaleLabelPadding","halfLineHeight","isLeft","tz","gz","_draw","core_scale","isNullOrUndef$1","scale_category","ticksOpts","minIndex","maxIndex","_startValue","_valueRange","valueCategory","_defaults","isNullOrUndef$2","scale_linearbase","handleTickRangeOptions","minSign","sign","maxSign","setMin","suggestedMin","setMax","suggestedMax","getTickLimit","maxTicks","stepSize","_computeTickLimit","handleDirectionalChanges","numericGeneratorOptions","precision","fixedStepSize","generationOptions","dataRange","niceMin","niceMax","numSpaces","unit","maxNumSpaces","rmin","rmax","niceNum","_decimalPlaces","almostWhole","almostEquals","generateTicks","ticksAsNumbers","_endValue","defaultConfig$1","stackData","neg","getOrCreateStack","relativePoints","updateMinMax","scale_linear","hasStacks","NEGATIVE_INFINITY","stackValues","_defaults$1","valueOrDefault$b","defaultConfig$2","nonNegativeOrDefault","scale_logarithmic","IDMatches","minNotZero","valuesPerStack","valuesForType","minVal","maxVal","exp","significand","tickVal","endExp","endSignificand","lastTick","generateTicks$1","tickValues","_getFirstTickValue","_valueOffset","_defaults$2","valueOrDefault$c","valueAtIndexOrDefault$1","resolve$4","defaultConfig$3","animate","showLabelBackdrop","backdropColor","backdropPaddingY","backdropPaddingX","getTickBackdropHeight","determineLimits","getTextAlignForAngle","adjustPointPositionForLabelHeight","textSize","numberOrZero","param","scale_radialLinear","drawingArea","plFont","furthestLimits","furthestAngles","_pointLabelSizes","valueCount","getPointPosition","longestText","getIndexAngle","hLimits","vLimits","setReductions","fitWithPointLabels","setCenterPoint","largestPossibleRadius","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxRight","maxLeft","maxTop","maxBottom","scalingFactor","distanceFromCenter","thisAngle","getBasePosition","angleLineOpts","pointLabelOpts","tickBackdropHeight","outerDistance","extra","pointLabelPosition","pointLabelFontColor","drawPointLabels","drawRadiusLine","tickFontColor","_defaults$3","deprecated$1","resolve$5","valueOrDefault$d","MIN_INTEGER","MIN_SAFE_INTEGER","MAX_INTEGER","MAX_SAFE_INTEGER","INTERVALS","millisecond","steps","second","minute","hour","day","week","month","quarter","year","UNITS","sorter","getMin","time","getMax","interpolate$1","table","skey","mid","i0","i1","lookup","span","toTimestamp","input","_adapter","parser","determineUnitForAutoTicks","minUnit","capacity","interval","ticksFromTimestamps","majorUnit","setMajorTicks","scale_time","adapters","date","displayFormats","timestamp","labelsAdded","timestamps","dataLabels","arrayUnique","_table","_timestamps","timeOpts","getLabelCapacity","distribution","unitStepSize","weekday","isoWeekday","generate","_unit","determineUnitForFormatting","_majorUnit","determineMajorUnit","buildLookupTable","_offsets","computeOffsets","tooltipFormat","datetime","tickFormatFunction","minorFormat","majorFormat","nestedTickOpts","formatter","getPixelForOffset","_getLabelSize","tickLabelWidth","tickFontSize","getLabelWidth","exampleTime","exampleLabel","_defaults$4","displayFormat","category","radialLinear","FORMATS","_id","valueOf","amount","filler","propagate","mappers","boundary","decodeFill","computeBoundary","cx","cy","computeCircularBoundary","scaleBottom","scaleTop","scaleZero","computeLinearBoundary","resolveTarget","visited","visible","createMapper","isDrawable","drawArea","curve0","curve1","len0","len1","doFill","mapper","loop","p0","p1","d0","d1","loopOffset","plugin_filler","afterDatasetsUpdate","$filler","beforeDatasetsDraw","getRtlHelper$1","noop$1","valueOrDefault$e","getBoxWidth","labelOpts","usePointStyle","boxWidth","ci","onLeave","lineDash","Legend","legendHitBoxes","_hoveredItem","doughnutMode","beforeBuildLabels","buildLabels","afterBuildLabels","legendItems","labelFont","hitboxes","lineWidths","totalHeight","vPadding","columnWidths","columnHeights","totalWidth","currentColWidth","currentColHeight","lineDefault","legendHeight","legendWidth","cursor","alignmentOffset","dimension","blockSize","itemHeight","textWidth","realX","SQRT2","drawLegendBox","halfFontSize","xLeft","yMiddle","_getLegendItemAt","hitBox","lh","hoveredItem","createNewLegendAndAttach","legendOpts","plugin_legend","_element","beforeInit","afterEvent","noop$2","Title","titleX","titleY","fontOpts","createNewTitleBlockAndAttach","titleOpts","titleBlock","parseMaxStyle","styleValue","parentProperty","valueInPixels","isConstrainedValue","getConstraintDimension","domNode","maxStyle","percentageProperty","defaultView","_getParentNode","constrainedNode","getComputedStyle","constrainedContainer","hasCNode","hasCContainer","infinity","collection","filterCallback","findNextWhere","arrayToSearch","startIndex","currentItem","findPreviousWhere","epsilon","rounded","radians","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","aliasPixel","pixelWidth","currentDevicePixelRatio","halfWidth","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","fa","fb","EPSILON","pointBefore","pointCurrent","pointAfter","alphaK","betaK","tauK","squaredMagnitude","pointsWithTangents","deltaK","mK","pointsLen","slopeDeltaX","fraction","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","evt","originalEvent","srcElement","boundingRect","getBoundingClientRect","touches","clientX","clientY","getConstraintWidth","getConstraintHeight","_calculatePadding","parentDimension","cw","clientHeight","ch","currentStyle","forceRatio","pixelRatio","pixelSize","arrayOfThings","thing","nestedThing","longest","numberOfLabelLines","numberOfLines","CanvasGradient","colorValue","CanvasPattern","core_helpers","_adapters","Animation","animationService","Interaction","scaleService","Ticks","Tooltip","pluginService","PluginBase","canvasHelpers","layoutService","LinearScaleBase","klass","cfg","factory","for","A","B","C","D","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","E","F","refs","updater","G","H","isReactComponent","setState","forceUpdate","I","isPureReactComponent","J","K","L","ref","__self","__source","M","defaultProps","$$typeof","_owner","O","P","Q","keyPrefix","func","S","V","T","U","W","aa","X","N","Y","Z","ba","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","Children","only","Component","Fragment","Profiler","PureComponent","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","createContext","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_context","createFactory","createRef","forwardRef","isValidElement","_ctor","_status","_result","memo","useCallback","useContext","useDebugValue","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","onError","da","ea","ha","ia","ja","la","ma","na","oa","currentTarget","ka","pa","qa","ra","sa","ta","ua","va","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ia","displayName","Ja","tag","_debugOwner","_debugSource","fileName","lineNumber","return","Ka","La","Ma","Na","extractEvents","eventTypes","Oa","phasedRegistrationNames","Pa","registrationName","Qa","Ra","dependencies","Sa","Ta","Ua","Va","Wa","Xa","stateNode","Ya","Za","$a","ab","bb","db","eb","gb","hb","ib","jb","kb","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","ob","pb","qb","mb","test","lb","setAttributeNS","rb","sb","nodeName","xb","_valueTracker","getOwnPropertyDescriptor","getValue","setValue","stopTracking","tb","yb","zb","defaultChecked","_wrapperState","initialChecked","Ab","initialValue","controlled","Bb","Cb","Db","Eb","ownerDocument","activeElement","Gb","Fb","Hb","selected","defaultSelected","disabled","Ib","dangerouslySetInnerHTML","Jb","Kb","Lb","textContent","xlinkHref","Mb","Nb","Ob","Pb","Qb","MSApp","execUnsafeLocalFunction","namespaceURI","innerHTML","Rb","lastChild","nodeType","nodeValue","Sb","Tb","animationend","animationiteration","animationstart","transitionend","Ub","Vb","Wb","Xb","Yb","Zb","$b","ac","bc","WeakMap","Map","cc","dc","alternate","effectTag","ec","memoizedState","dehydrated","fc","hc","child","sibling","ic","jc","kc","lc","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","mc","nc","correspondingUseElement","oc","pc","qc","topLevelType","targetInst","ancestors","rc","eventSystemFlags","sc","containerInfo","tc","uc","has","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Kc","blockedOn","Lc","delete","pointerId","Mc","Nc","Pc","unstable_runWithPriority","priority","hydrate","Qc","Rc","Sc","Tc","Uc","unstable_scheduleCallback","unstable_NormalPriority","Vc","Wc","Yc","Zc","$c","ad","bubbled","captured","eventPriority","bd","cd","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","Oc","jd","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","kd","ld","md","nd","menuitem","br","col","embed","img","keygen","track","wbr","od","pd","is","qd","rd","sd","td","ud","vd","nextSibling","xd","HTMLIFrameElement","contentWindow","location","yd","contentEditable","Dd","Ed","Fd","autoFocus","Gd","__html","Hd","Id","Jd","Kd","previousSibling","Ld","random","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","dispatchConfig","Ud","_targetInst","Vd","Wd","Xd","Yd","Zd","$d","be","ce","Interface","isDefaultPrevented","defaultPrevented","returnValue","ee","eventPool","fe","destructor","de","getPooled","preventDefault","stopPropagation","cancelBubble","persist","eventPhase","bubbles","cancelable","timeStamp","isTrusted","ge","he","ie","je","ke","documentMode","le","ne","oe","beforeInput","compositionEnd","compositionStart","compositionUpdate","pe","qe","keyCode","detail","se","ve","locale","which","te","ctrlKey","altKey","metaKey","ue","we","email","number","tel","xe","ye","ze","Ae","Be","Ce","De","Ee","Fe","Ge","detachEvent","He","Ie","attachEvent","Je","Ke","Le","Me","_isInputEventSupported","Ne","Oe","Alt","Control","Meta","Shift","Pe","getModifierState","Qe","Re","Se","Te","Ue","Ve","screenX","screenY","pageX","pageY","shiftKey","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","We","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Xe","mouseEnter","mouseLeave","pointerEnter","pointerLeave","Ye","parentWindow","$e","af","bf","cf","df","select","ef","ff","gf","hf","jf","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","kf","onSelect","elapsedTime","pseudoElement","mf","clipboardData","nf","of","charCode","pf","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","qf","8","9","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","repeat","sf","dataTransfer","tf","targetTouches","changedTouches","uf","vf","wheelDeltaX","wheelDeltaY","wheelDelta","deltaZ","deltaMode","wf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","zf","Af","Bf","Cf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","childContextTypes","Df","Ef","Ff","getChildContext","Gf","__reactInternalMemoizedMergedChildContext","Hf","If","Jf","Kf","unstable_cancelCallback","Lf","unstable_requestPaint","Mf","unstable_now","Nf","unstable_getCurrentPriorityLevel","Of","unstable_ImmediatePriority","Pf","Qf","Rf","unstable_LowPriority","Sf","unstable_IdlePriority","Tf","Uf","unstable_shouldYield","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","ng","og","pg","childExpirationTime","qg","firstContext","expirationTime","rg","sg","observedBits","responders","tg","ug","updateQueue","baseState","baseQueue","shared","pending","vg","wg","suspenseConfig","payload","xg","yg","zg","ca","Ag","Bg","Cg","Dg","Eg","Fg","Jg","_reactInternalFiber","Gg","Hg","Ig","Kg","shouldComponentUpdate","Lg","contextType","Mg","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Ng","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Og","Pg","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","elementType","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","dh","documentElement","tagName","eh","fh","gh","hh","memoizedProps","revealOrder","ih","responder","jh","kh","mh","nh","oh","ph","qh","rh","sh","th","uh","vh","lastRenderedReducer","action","eagerReducer","eagerState","lastRenderedState","dispatch","xh","yh","zh","Ah","deps","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","readContext","useResponder","useDeferredValue","useTransition","Oh","Ph","Qh","Rh","Sh","Th","pendingProps","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","di","ei","fi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","gi","getDerivedStateFromError","pendingContext","ni","pi","qi","ii","retryTime","ji","fallback","unstable_avoidThisFallback","ki","li","isBackwards","rendering","renderingStartTime","tailExpiration","tailMode","mi","ri","si","wasMultiple","multiple","onclick","createElementNS","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","WeakSet","Set","Ci","Fi","Ei","Gi","__reactInternalSnapshotBeforeUpdate","Hi","Ii","Ji","focus","Ki","Li","componentWillUnmount","Di","Mi","Ni","Oi","Pi","Qi","_reactRootContainer","Ri","Si","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","componentDidCatch","aj","componentStack","Rj","bj","cj","dj","kj","lj","mj","nj","oj","qj","rj","sj","tj","uj","vj","wj","timeoutMs","xj","yj","zj","lastExpiredTime","Aj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Bj","Cj","Dj","Ej","Fj","Gj","Hj","finishedWork","finishedExpirationTime","lastSuspendedTime","Ij","timeoutHandle","Jj","busyMinDurationMs","busyDelayMs","Kj","Mj","Nj","pingCache","Oj","ub","Pj","Xc","Qj","Sj","firstSuspendedTime","rangeCount","wb","activeElementDetached","focusedElem","selectionRange","Tj","wd","contains","compareDocumentPosition","createRange","setStart","removeAllRanges","addRange","setEnd","vb","Uj","Vj","Wj","default","Ha","Xj","unstable_observedBits","Zj","pendingChildren","ak","bk","ck","dk","ek","fk","Jc","_internalRoot","gk","ik","hasAttribute","hk","jk","kk","unmount","querySelectorAll","form","Lj","lk","Events","findFiberByHostInstance","isDisabled","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","performance","cancelAnimationFrame","port2","port1","onmessage","postMessage","sortIndex","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","delay","unstable_wrapCallback","hookCallback","some","hooks","hasOwnProp","isObjectEmpty","createUTC","strict","createLocalOrUTC","utc","getParsingFlags","_pf","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","_isValid","flags","parsedParts","isNowValid","_d","getTime","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","momentProperties","updateInProgress","copyConfig","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","updateOffset","isMoment","msg","suppressDeprecationWarnings","firstTime","deprecationHandler","deprecations","deprecateSimple","mergeConfigs","parentConfig","childConfig","Locale","zeroFill","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","localeData","formatMoment","expandFormat","mom","output","makeFormatFunction","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","aliases","addUnitAlias","shorthand","lowerCase","normalizeUnits","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","isLeapYear","absFloor","toInt","argumentForCoercion","coercedNumber","makeGetSet","keepTime","set$1","daysInMonth","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","RegExp","regexEscape","matched","p2","p3","p4","tokens","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","_a","modMonth","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","handleStrictParse","monthName","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","setMonth","dayOfMonth","getSetMonth","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","daysInYear","parseTwoDigitYear","getSetYear","createDate","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","ws","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","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","LL","LLL","LLLL","dayOfMonthOrdinalParse","relativeTime","future","past","ss","mm","ww","MM","yy","meridiemParse","locales","localeFamilies","commonPrefix","arr1","arr2","minl","normalizeLocale","loadLocale","oldLocale","_abbr","aliasedRequire","getSetGlobalLocale","getLocale","defineLocale","abbr","parentLocale","names","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","configFromStringAndFormat","untruncateYear","yearStr","configFromRFC2822","parsedArray","monthStr","dayStr","hourStr","minuteStr","secondStr","extractFromRFC2822Strings","weekdayStr","parsedInput","getDay","checkWeekday","obsOffset","militaryOffset","numOffset","hm","calculateOffset","setUTCMinutes","getUTCMinutes","configFromArray","currentDate","expectedWeekday","yearToUse","nowValue","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","currentDateArray","weekYear","temp","weekdayOverflow","curWeek","GG","createLocal","_week","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","isPm","meridiemHour","meridiemFixWrap","erasConvertYear","prepareConfig","preparse","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","score","configFromStringAndArray","createFromInputFallback","configFromString","dayOrDate","configFromObject","configFromInput","isUTC","createFromConfig","prototypeMin","other","prototypeMax","pickBy","moments","ordering","Duration","years","quarters","weeks","isoWeek","days","milliseconds","unitHasDecimal","isDurationValid","_milliseconds","_days","_months","_bubble","isDuration","absRound","separator","utcOffset","offsetFromString","chunkOffset","matcher","cloneWithOffset","setTime","local","getDateOffset","getTimezoneOffset","isUtc","aspNetRegex","isoRegex","createDuration","diffRes","parseIso","isBefore","positiveMomentsDifference","momentsDifference","inp","isAfter","createAdder","period","addSubtract","isAdding","invalid","subtract","isMomentInput","arrayTest","dataTypeTest","isNumberOrStringArray","objectTest","propertyTest","properties","isMomentInputObject","isCalendarSpec","monthDiff","wholeMonthDiff","anchor","newLocaleData","defaultFormat","defaultFormatUtc","lang","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","matchEraAbbr","erasAbbrRegex","computeErasParse","abbrPieces","namePieces","narrowPieces","eras","narrow","_erasRegex","_erasNameRegex","_erasAbbrRegex","_erasNarrowRegex","addWeekYearFormatToken","getter","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","erasNameRegex","erasNarrowRegex","erasParse","_eraYearOrdinalRegex","eraYearOrdinalParse","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetMillisecond","getSetSecond","parseMs","preParsePostFormat","sod","calendarFormat","asFloat","zoneDelta","startOfDate","inputString","postformat","withoutSuffix","humanize","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","prioritized","unitsObj","getPrioritizedUnits","toDate","keepOffset","suffix","zone","isLocal","unix","creationData","eraName","since","until","eraNarrow","eraAbbr","eraYear","isoWeeks","weekInfo","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","parseWeekday","parseIsoWeekday","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","dates","isDSTShifted","_isDSTShifted","array1","array2","dontConvert","lengthDiff","diffs","compareArrays","proto$1","get$1","field","setter","listMonthsImpl","listWeekdaysImpl","localeSorted","_calendar","_longDateFormat","formatUpper","tok","_invalidDate","_ordinal","isFuture","_relativeTime","pastFuture","_eras","isFormat","_monthsShort","_monthsParseExact","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","_weekdaysParseExact","_fullWeekdaysParse","isLower","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","alias","as","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","makeGetter","thresholds","substituteTimeAgo","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","proto$2","monthsFromDays","argWithSuffix","argThresholds","withSuffix","posNegDuration","relativeTime$1","toIsoString","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","threshold","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","DATE","TIME","TIME_SECONDS","TIME_MS","WEEK","MONTH","Axios","createInstance","defaultConfig","axios","instanceConfig","CancelToken","isCancel","all","promises","spread","isAxiosError","InterceptorManager","dispatchRequest","interceptors","chain","interceptor","fulfilled","rejected","getUri","handlers","use","eject","transformData","throwIfCancellationRequested","throwIfRequested","reason","fns","normalizedName","description","columnNumber","expires","domain","secure","cookie","toGMTString","isAbsoluteURL","combineURLs","requestedURL","relativeURL","ignoreDuplicateOf","originURL","msie","userAgent","urlParsingNode","resolveURL","requestURL","executor","resolvePromise","http","https","validateParams","ClientRequest","statusCodes","defaultProtocol","req","Agent","defaultMaxSockets","globalAgent","STATUS_CODES","METHODS","toArrayBuffer","preferBinary","_opts","_body","_headers","setHeader","useFetch","decideMode","_fetchTimer","_onFinish","lowerName","unsafeHeaders","getHeader","removeHeader","headersObj","headersList","keyName","signal","_fetchAbortController","requestTimeout","credentials","_connect","_response","statusValid","flushHeaders","setNoDelay","setSocketKeepAlive","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","len2","encodeChunk","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","LN2","Timeout","clearFn","_clearFn","setInterval","clearInterval","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","clearImmediate","registerImmediate","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","handle","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","messagePrefix","onGlobalMessage","installPostMessageImplementation","channel","installMessageChannelImplementation","html","script","installReadyStateChangeImplementation","task","localStorage","trace","arrayCopy","freeGlobal","maxInt","regexPunycode","regexNonASCII","regexSeparators","errors","stringFromCharCode","mapDomain","ucs2decode","counter","ucs2encode","digitToBasic","digit","flag","adapt","numPoints","baseMinusTMin","decode","basic","oldi","baseMinusT","inputLength","bias","handledCPCount","basicLength","currentValue","handledCPCountPlusOne","qMinusT","define","qs","sep","eq","regexp","maxKeys","kstr","vstr","stringifyPrimitive","ks"],"mappings":"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","file":"static/js/2.bd16157b.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","exports.fetch = isFunction(global.fetch) && isFunction(global.ReadableStream)\n\nexports.writableStream = isFunction(global.WritableStream)\n\nexports.abortController = isFunction(global.AbortController)\n\nexports.blobConstructor = false\ntry {\n\tnew Blob([new ArrayBuffer(1)])\n\texports.blobConstructor = true\n} catch (e) {}\n\n// The xhr request to example.com may violate some restrictive CSP configurations,\n// so if we're running in a browser that supports `fetch`, avoid calling getXHR()\n// and assume support for certain features below.\nvar xhr\nfunction getXHR () {\n\t// Cache the xhr value\n\tif (xhr !== undefined) return xhr\n\n\tif (global.XMLHttpRequest) {\n\t\txhr = new global.XMLHttpRequest()\n\t\t// If XDomainRequest is available (ie only, where xhr might not work\n\t\t// cross domain), use the page location. Otherwise use example.com\n\t\t// Note: this doesn't actually make an http request.\n\t\ttry {\n\t\t\txhr.open('GET', global.XDomainRequest ? '/' : 'https://example.com')\n\t\t} catch(e) {\n\t\t\txhr = null\n\t\t}\n\t} else {\n\t\t// Service workers don't have XHR\n\t\txhr = null\n\t}\n\treturn xhr\n}\n\nfunction checkTypeSupport (type) {\n\tvar xhr = getXHR()\n\tif (!xhr) return false\n\ttry {\n\t\txhr.responseType = type\n\t\treturn xhr.responseType === type\n\t} catch (e) {}\n\treturn false\n}\n\n// For some strange reason, Safari 7.0 reports typeof global.ArrayBuffer === 'object'.\n// Safari 7.1 appears to have fixed this bug.\nvar haveArrayBuffer = typeof global.ArrayBuffer !== 'undefined'\nvar haveSlice = haveArrayBuffer && isFunction(global.ArrayBuffer.prototype.slice)\n\n// If fetch is supported, then arraybuffer will be supported too. Skip calling\n// checkTypeSupport(), since that calls getXHR().\nexports.arraybuffer = exports.fetch || (haveArrayBuffer && checkTypeSupport('arraybuffer'))\n\n// These next two tests unavoidably show warnings in Chrome. Since fetch will always\n// be used if it's available, just return false for these to avoid the warnings.\nexports.msstream = !exports.fetch && haveSlice && checkTypeSupport('ms-stream')\nexports.mozchunkedarraybuffer = !exports.fetch && haveArrayBuffer &&\n\tcheckTypeSupport('moz-chunked-arraybuffer')\n\n// If fetch is supported, then overrideMimeType will be supported too. Skip calling\n// getXHR().\nexports.overrideMimeType = exports.fetch || (getXHR() ? isFunction(getXHR().overrideMimeType) : false)\n\nexports.vbArray = isFunction(global.VBArray)\n\nfunction isFunction (value) {\n\treturn typeof value === 'function'\n}\n\nxhr = null // Help gc\n","var capability = require('./capability')\nvar inherits = require('inherits')\nvar stream = require('readable-stream')\n\nvar rStates = exports.readyStates = {\n\tUNSENT: 0,\n\tOPENED: 1,\n\tHEADERS_RECEIVED: 2,\n\tLOADING: 3,\n\tDONE: 4\n}\n\nvar IncomingMessage = exports.IncomingMessage = function (xhr, response, mode, fetchTimer) {\n\tvar self = this\n\tstream.Readable.call(self)\n\n\tself._mode = mode\n\tself.headers = {}\n\tself.rawHeaders = []\n\tself.trailers = {}\n\tself.rawTrailers = []\n\n\t// Fake the 'close' event, but only once 'end' fires\n\tself.on('end', function () {\n\t\t// The nextTick is necessary to prevent the 'request' module from causing an infinite loop\n\t\tprocess.nextTick(function () {\n\t\t\tself.emit('close')\n\t\t})\n\t})\n\n\tif (mode === 'fetch') {\n\t\tself._fetchResponse = response\n\n\t\tself.url = response.url\n\t\tself.statusCode = response.status\n\t\tself.statusMessage = response.statusText\n\t\t\n\t\tresponse.headers.forEach(function (header, key){\n\t\t\tself.headers[key.toLowerCase()] = header\n\t\t\tself.rawHeaders.push(key, header)\n\t\t})\n\n\t\tif (capability.writableStream) {\n\t\t\tvar writable = new WritableStream({\n\t\t\t\twrite: function (chunk) {\n\t\t\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t\t\tif (self._destroyed) {\n\t\t\t\t\t\t\treject()\n\t\t\t\t\t\t} else if(self.push(new Buffer(chunk))) {\n\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself._resumeFetch = resolve\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t\tclose: function () {\n\t\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.push(null)\n\t\t\t\t},\n\t\t\t\tabort: function (err) {\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\ttry {\n\t\t\t\tresponse.body.pipeTo(writable).catch(function (err) {\n\t\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t})\n\t\t\t\treturn\n\t\t\t} catch (e) {} // pipeTo method isn't defined. Can't find a better way to feature test this\n\t\t}\n\t\t// fallback for when writableStream or pipeTo aren't available\n\t\tvar reader = response.body.getReader()\n\t\tfunction read () {\n\t\t\treader.read().then(function (result) {\n\t\t\t\tif (self._destroyed)\n\t\t\t\t\treturn\n\t\t\t\tif (result.done) {\n\t\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\t\tself.push(null)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tself.push(new Buffer(result.value))\n\t\t\t\tread()\n\t\t\t}).catch(function (err) {\n\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\tif (!self._destroyed)\n\t\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t}\n\t\tread()\n\t} else {\n\t\tself._xhr = xhr\n\t\tself._pos = 0\n\n\t\tself.url = xhr.responseURL\n\t\tself.statusCode = xhr.status\n\t\tself.statusMessage = xhr.statusText\n\t\tvar headers = xhr.getAllResponseHeaders().split(/\\r?\\n/)\n\t\theaders.forEach(function (header) {\n\t\t\tvar matches = header.match(/^([^:]+):\\s*(.*)/)\n\t\t\tif (matches) {\n\t\t\t\tvar key = matches[1].toLowerCase()\n\t\t\t\tif (key === 'set-cookie') {\n\t\t\t\t\tif (self.headers[key] === undefined) {\n\t\t\t\t\t\tself.headers[key] = []\n\t\t\t\t\t}\n\t\t\t\t\tself.headers[key].push(matches[2])\n\t\t\t\t} else if (self.headers[key] !== undefined) {\n\t\t\t\t\tself.headers[key] += ', ' + matches[2]\n\t\t\t\t} else {\n\t\t\t\t\tself.headers[key] = matches[2]\n\t\t\t\t}\n\t\t\t\tself.rawHeaders.push(matches[1], matches[2])\n\t\t\t}\n\t\t})\n\n\t\tself._charset = 'x-user-defined'\n\t\tif (!capability.overrideMimeType) {\n\t\t\tvar mimeType = self.rawHeaders['mime-type']\n\t\t\tif (mimeType) {\n\t\t\t\tvar charsetMatch = mimeType.match(/;\\s*charset=([^;])(;|$)/)\n\t\t\t\tif (charsetMatch) {\n\t\t\t\t\tself._charset = charsetMatch[1].toLowerCase()\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!self._charset)\n\t\t\t\tself._charset = 'utf-8' // best guess\n\t\t}\n\t}\n}\n\ninherits(IncomingMessage, stream.Readable)\n\nIncomingMessage.prototype._read = function () {\n\tvar self = this\n\n\tvar resolve = self._resumeFetch\n\tif (resolve) {\n\t\tself._resumeFetch = null\n\t\tresolve()\n\t}\n}\n\nIncomingMessage.prototype._onXHRProgress = function () {\n\tvar self = this\n\n\tvar xhr = self._xhr\n\n\tvar response = null\n\tswitch (self._mode) {\n\t\tcase 'text:vbarray': // For IE9\n\t\t\tif (xhr.readyState !== rStates.DONE)\n\t\t\t\tbreak\n\t\t\ttry {\n\t\t\t\t// This fails in IE8\n\t\t\t\tresponse = new global.VBArray(xhr.responseBody).toArray()\n\t\t\t} catch (e) {}\n\t\t\tif (response !== null) {\n\t\t\t\tself.push(new Buffer(response))\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// Falls through in IE8\t\n\t\tcase 'text':\n\t\t\ttry { // This will fail when readyState = 3 in IE9. Switch mode and wait for readyState = 4\n\t\t\t\tresponse = xhr.responseText\n\t\t\t} catch (e) {\n\t\t\t\tself._mode = 'text:vbarray'\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif (response.length > self._pos) {\n\t\t\t\tvar newData = response.substr(self._pos)\n\t\t\t\tif (self._charset === 'x-user-defined') {\n\t\t\t\t\tvar buffer = new Buffer(newData.length)\n\t\t\t\t\tfor (var i = 0; i < newData.length; i++)\n\t\t\t\t\t\tbuffer[i] = newData.charCodeAt(i) & 0xff\n\n\t\t\t\t\tself.push(buffer)\n\t\t\t\t} else {\n\t\t\t\t\tself.push(newData, self._charset)\n\t\t\t\t}\n\t\t\t\tself._pos = response.length\n\t\t\t}\n\t\t\tbreak\n\t\tcase 'arraybuffer':\n\t\t\tif (xhr.readyState !== rStates.DONE || !xhr.response)\n\t\t\t\tbreak\n\t\t\tresponse = xhr.response\n\t\t\tself.push(new Buffer(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'moz-chunked-arraybuffer': // take whole\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING || !response)\n\t\t\t\tbreak\n\t\t\tself.push(new Buffer(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'ms-stream':\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING)\n\t\t\t\tbreak\n\t\t\tvar reader = new global.MSStreamReader()\n\t\t\treader.onprogress = function () {\n\t\t\t\tif (reader.result.byteLength > self._pos) {\n\t\t\t\t\tself.push(new Buffer(new Uint8Array(reader.result.slice(self._pos))))\n\t\t\t\t\tself._pos = reader.result.byteLength\n\t\t\t\t}\n\t\t\t}\n\t\t\treader.onload = function () {\n\t\t\t\tself.push(null)\n\t\t\t}\n\t\t\t// reader.onerror = ??? // TODO: this\n\t\t\treader.readAsArrayBuffer(response)\n\t\t\tbreak\n\t}\n\n\t// The ms-stream case handles end separately in reader.onload()\n\tif (self._xhr.readyState === rStates.DONE && self._mode !== 'ms-stream') {\n\t\tself.push(null)\n\t}\n}\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, unpipeInfo);\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n","module.exports = require('events').EventEmitter;\n","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n pna.nextTick(emitErrorNT, _this, err);\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar punycode = require('punycode');\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && util.isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!util.isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n var queryIndex = url.indexOf('?'),\n splitter =\n (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1)\n continue;\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (util.isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n util.isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (util.isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol')\n result[rkey] = relative[rkey];\n }\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!util.isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host || srcPath.length > 1) &&\n (last === '.' || last === '..') || last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","/*!\n * Chart.js v2.9.4\n * https://www.chartjs.org\n * (c) 2020 Chart.js Contributors\n * Released under the MIT License\n */\n(function (global, factory) {\ntypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(function() { try { return require('moment'); } catch(e) { } }()) :\ntypeof define === 'function' && define.amd ? define(['require'], function(require) { return factory(function() { try { return require('moment'); } catch(e) { } }()); }) :\n(global = global || self, global.Chart = factory(global.moment));\n}(this, (function (moment) { 'use strict';\n\nmoment = moment && moment.hasOwnProperty('default') ? moment['default'] : moment;\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nfunction getCjsExportFromNamespace (n) {\n\treturn n && n['default'] || n;\n}\n\nvar colorName = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\n\nvar conversions = createCommonjsModule(function (module) {\n/* MIT license */\n\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in colorName) {\n\tif (colorName.hasOwnProperty(key)) {\n\t\treverseKeywords[colorName[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in colorName) {\n\t\tif (colorName.hasOwnProperty(keyword)) {\n\t\t\tvar value = colorName[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn colorName[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n});\nvar conversions_1 = conversions.rgb;\nvar conversions_2 = conversions.hsl;\nvar conversions_3 = conversions.hsv;\nvar conversions_4 = conversions.hwb;\nvar conversions_5 = conversions.cmyk;\nvar conversions_6 = conversions.xyz;\nvar conversions_7 = conversions.lab;\nvar conversions_8 = conversions.lch;\nvar conversions_9 = conversions.hex;\nvar conversions_10 = conversions.keyword;\nvar conversions_11 = conversions.ansi16;\nvar conversions_12 = conversions.ansi256;\nvar conversions_13 = conversions.hcg;\nvar conversions_14 = conversions.apple;\nvar conversions_15 = conversions.gray;\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nvar route = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nvar colorConvert = convert;\n\nvar colorName$1 = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\n\n/* MIT license */\n\n\nvar colorString = {\n getRgba: getRgba,\n getHsla: getHsla,\n getRgb: getRgb,\n getHsl: getHsl,\n getHwb: getHwb,\n getAlpha: getAlpha,\n\n hexString: hexString,\n rgbString: rgbString,\n rgbaString: rgbaString,\n percentString: percentString,\n percentaString: percentaString,\n hslString: hslString,\n hslaString: hslaString,\n hwbString: hwbString,\n keyword: keyword\n};\n\nfunction getRgba(string) {\n if (!string) {\n return;\n }\n var abbr = /^#([a-fA-F0-9]{3,4})$/i,\n hex = /^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i,\n rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n keyword = /(\\w+)/;\n\n var rgb = [0, 0, 0],\n a = 1,\n match = string.match(abbr),\n hexAlpha = \"\";\n if (match) {\n match = match[1];\n hexAlpha = match[3];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i] + match[i], 16);\n }\n if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n }\n }\n else if (match = string.match(hex)) {\n hexAlpha = match[2];\n match = match[1];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match.slice(i * 2, i * 2 + 2), 16);\n }\n if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\n }\n }\n else if (match = string.match(rgba)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i + 1]);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(per)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(keyword)) {\n if (match[1] == \"transparent\") {\n return [0, 0, 0, 0];\n }\n rgb = colorName$1[match[1]];\n if (!rgb) {\n return;\n }\n }\n\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = scale(rgb[i], 0, 255);\n }\n if (!a && a != 0) {\n a = 1;\n }\n else {\n a = scale(a, 0, 1);\n }\n rgb[3] = a;\n return rgb;\n}\n\nfunction getHsla(string) {\n if (!string) {\n return;\n }\n var hsl = /^hsla?\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hsl);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n s = scale(parseFloat(match[2]), 0, 100),\n l = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, s, l, a];\n }\n}\n\nfunction getHwb(string) {\n if (!string) {\n return;\n }\n var hwb = /^hwb\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hwb);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n w = scale(parseFloat(match[2]), 0, 100),\n b = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, w, b, a];\n }\n}\n\nfunction getRgb(string) {\n var rgba = getRgba(string);\n return rgba && rgba.slice(0, 3);\n}\n\nfunction getHsl(string) {\n var hsla = getHsla(string);\n return hsla && hsla.slice(0, 3);\n}\n\nfunction getAlpha(string) {\n var vals = getRgba(string);\n if (vals) {\n return vals[3];\n }\n else if (vals = getHsla(string)) {\n return vals[3];\n }\n else if (vals = getHwb(string)) {\n return vals[3];\n }\n}\n\n// generators\nfunction hexString(rgba, a) {\n var a = (a !== undefined && rgba.length === 3) ? a : rgba[3];\n return \"#\" + hexDouble(rgba[0]) \n + hexDouble(rgba[1])\n + hexDouble(rgba[2])\n + (\n (a >= 0 && a < 1)\n ? hexDouble(Math.round(a * 255))\n : \"\"\n );\n}\n\nfunction rgbString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return rgbaString(rgba, alpha);\n }\n return \"rgb(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2] + \")\";\n}\n\nfunction rgbaString(rgba, alpha) {\n if (alpha === undefined) {\n alpha = (rgba[3] !== undefined ? rgba[3] : 1);\n }\n return \"rgba(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2]\n + \", \" + alpha + \")\";\n}\n\nfunction percentString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return percentaString(rgba, alpha);\n }\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n\n return \"rgb(\" + r + \"%, \" + g + \"%, \" + b + \"%)\";\n}\n\nfunction percentaString(rgba, alpha) {\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n return \"rgba(\" + r + \"%, \" + g + \"%, \" + b + \"%, \" + (alpha || rgba[3] || 1) + \")\";\n}\n\nfunction hslString(hsla, alpha) {\n if (alpha < 1 || (hsla[3] && hsla[3] < 1)) {\n return hslaString(hsla, alpha);\n }\n return \"hsl(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%)\";\n}\n\nfunction hslaString(hsla, alpha) {\n if (alpha === undefined) {\n alpha = (hsla[3] !== undefined ? hsla[3] : 1);\n }\n return \"hsla(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%, \"\n + alpha + \")\";\n}\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\nfunction hwbString(hwb, alpha) {\n if (alpha === undefined) {\n alpha = (hwb[3] !== undefined ? hwb[3] : 1);\n }\n return \"hwb(\" + hwb[0] + \", \" + hwb[1] + \"%, \" + hwb[2] + \"%\"\n + (alpha !== undefined && alpha !== 1 ? \", \" + alpha : \"\") + \")\";\n}\n\nfunction keyword(rgb) {\n return reverseNames[rgb.slice(0, 3)];\n}\n\n// helpers\nfunction scale(num, min, max) {\n return Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n var str = num.toString(16).toUpperCase();\n return (str.length < 2) ? \"0\" + str : str;\n}\n\n\n//create a list of reverse color names\nvar reverseNames = {};\nfor (var name in colorName$1) {\n reverseNames[colorName$1[name]] = name;\n}\n\n/* MIT license */\n\n\n\nvar Color = function (obj) {\n\tif (obj instanceof Color) {\n\t\treturn obj;\n\t}\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj);\n\t}\n\n\tthis.valid = false;\n\tthis.values = {\n\t\trgb: [0, 0, 0],\n\t\thsl: [0, 0, 0],\n\t\thsv: [0, 0, 0],\n\t\thwb: [0, 0, 0],\n\t\tcmyk: [0, 0, 0, 0],\n\t\talpha: 1\n\t};\n\n\t// parse Color() argument\n\tvar vals;\n\tif (typeof obj === 'string') {\n\t\tvals = colorString.getRgba(obj);\n\t\tif (vals) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals = colorString.getHsla(obj)) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals = colorString.getHwb(obj)) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t}\n\t} else if (typeof obj === 'object') {\n\t\tvals = obj;\n\t\tif (vals.r !== undefined || vals.red !== undefined) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals.l !== undefined || vals.lightness !== undefined) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals.v !== undefined || vals.value !== undefined) {\n\t\t\tthis.setValues('hsv', vals);\n\t\t} else if (vals.w !== undefined || vals.whiteness !== undefined) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t} else if (vals.c !== undefined || vals.cyan !== undefined) {\n\t\t\tthis.setValues('cmyk', vals);\n\t\t}\n\t}\n};\n\nColor.prototype = {\n\tisValid: function () {\n\t\treturn this.valid;\n\t},\n\trgb: function () {\n\t\treturn this.setSpace('rgb', arguments);\n\t},\n\thsl: function () {\n\t\treturn this.setSpace('hsl', arguments);\n\t},\n\thsv: function () {\n\t\treturn this.setSpace('hsv', arguments);\n\t},\n\thwb: function () {\n\t\treturn this.setSpace('hwb', arguments);\n\t},\n\tcmyk: function () {\n\t\treturn this.setSpace('cmyk', arguments);\n\t},\n\n\trgbArray: function () {\n\t\treturn this.values.rgb;\n\t},\n\thslArray: function () {\n\t\treturn this.values.hsl;\n\t},\n\thsvArray: function () {\n\t\treturn this.values.hsv;\n\t},\n\thwbArray: function () {\n\t\tvar values = this.values;\n\t\tif (values.alpha !== 1) {\n\t\t\treturn values.hwb.concat([values.alpha]);\n\t\t}\n\t\treturn values.hwb;\n\t},\n\tcmykArray: function () {\n\t\treturn this.values.cmyk;\n\t},\n\trgbaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.rgb.concat([values.alpha]);\n\t},\n\thslaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.hsl.concat([values.alpha]);\n\t},\n\talpha: function (val) {\n\t\tif (val === undefined) {\n\t\t\treturn this.values.alpha;\n\t\t}\n\t\tthis.setValues('alpha', val);\n\t\treturn this;\n\t},\n\n\tred: function (val) {\n\t\treturn this.setChannel('rgb', 0, val);\n\t},\n\tgreen: function (val) {\n\t\treturn this.setChannel('rgb', 1, val);\n\t},\n\tblue: function (val) {\n\t\treturn this.setChannel('rgb', 2, val);\n\t},\n\thue: function (val) {\n\t\tif (val) {\n\t\t\tval %= 360;\n\t\t\tval = val < 0 ? 360 + val : val;\n\t\t}\n\t\treturn this.setChannel('hsl', 0, val);\n\t},\n\tsaturation: function (val) {\n\t\treturn this.setChannel('hsl', 1, val);\n\t},\n\tlightness: function (val) {\n\t\treturn this.setChannel('hsl', 2, val);\n\t},\n\tsaturationv: function (val) {\n\t\treturn this.setChannel('hsv', 1, val);\n\t},\n\twhiteness: function (val) {\n\t\treturn this.setChannel('hwb', 1, val);\n\t},\n\tblackness: function (val) {\n\t\treturn this.setChannel('hwb', 2, val);\n\t},\n\tvalue: function (val) {\n\t\treturn this.setChannel('hsv', 2, val);\n\t},\n\tcyan: function (val) {\n\t\treturn this.setChannel('cmyk', 0, val);\n\t},\n\tmagenta: function (val) {\n\t\treturn this.setChannel('cmyk', 1, val);\n\t},\n\tyellow: function (val) {\n\t\treturn this.setChannel('cmyk', 2, val);\n\t},\n\tblack: function (val) {\n\t\treturn this.setChannel('cmyk', 3, val);\n\t},\n\n\thexString: function () {\n\t\treturn colorString.hexString(this.values.rgb);\n\t},\n\trgbString: function () {\n\t\treturn colorString.rgbString(this.values.rgb, this.values.alpha);\n\t},\n\trgbaString: function () {\n\t\treturn colorString.rgbaString(this.values.rgb, this.values.alpha);\n\t},\n\tpercentString: function () {\n\t\treturn colorString.percentString(this.values.rgb, this.values.alpha);\n\t},\n\thslString: function () {\n\t\treturn colorString.hslString(this.values.hsl, this.values.alpha);\n\t},\n\thslaString: function () {\n\t\treturn colorString.hslaString(this.values.hsl, this.values.alpha);\n\t},\n\thwbString: function () {\n\t\treturn colorString.hwbString(this.values.hwb, this.values.alpha);\n\t},\n\tkeyword: function () {\n\t\treturn colorString.keyword(this.values.rgb, this.values.alpha);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.values.rgb;\n\t\treturn (rgb[0] << 16) | (rgb[1] << 8) | rgb[2];\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.values.rgb;\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tdark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.values.rgb;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tlight: function () {\n\t\treturn !this.dark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = [];\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb[i] = 255 - this.values.rgb[i];\n\t\t}\n\t\tthis.setValues('rgb', rgb);\n\t\treturn this;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] += hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] -= hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] += hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] -= hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[1] += hwb[1] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[2] += hwb[2] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tgreyscale: function () {\n\t\tvar rgb = this.values.rgb;\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\tthis.setValues('rgb', [val, val, val]);\n\t\treturn this;\n\t},\n\n\tclearer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha - (alpha * ratio));\n\t\treturn this;\n\t},\n\n\topaquer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha + (alpha * ratio));\n\t\treturn this;\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.values.hsl;\n\t\tvar hue = (hsl[0] + degrees) % 360;\n\t\thsl[0] = hue < 0 ? 360 + hue : hue;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\t/**\n\t * Ported from sass implementation in C\n\t * https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t */\n\tmix: function (mixinColor, weight) {\n\t\tvar color1 = this;\n\t\tvar color2 = mixinColor;\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn this\n\t\t\t.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue()\n\t\t\t)\n\t\t\t.alpha(color1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n\n\ttoJSON: function () {\n\t\treturn this.rgb();\n\t},\n\n\tclone: function () {\n\t\t// NOTE(SB): using node-clone creates a dependency to Buffer when using browserify,\n\t\t// making the final build way to big to embed in Chart.js. So let's do it manually,\n\t\t// assuming that values to clone are 1 dimension arrays containing only numbers,\n\t\t// except 'alpha' which is a number.\n\t\tvar result = new Color();\n\t\tvar source = this.values;\n\t\tvar target = result.values;\n\t\tvar value, type;\n\n\t\tfor (var prop in source) {\n\t\t\tif (source.hasOwnProperty(prop)) {\n\t\t\t\tvalue = source[prop];\n\t\t\t\ttype = ({}).toString.call(value);\n\t\t\t\tif (type === '[object Array]') {\n\t\t\t\t\ttarget[prop] = value.slice(0);\n\t\t\t\t} else if (type === '[object Number]') {\n\t\t\t\t\ttarget[prop] = value;\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error('unexpected color value:', value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n};\n\nColor.prototype.spaces = {\n\trgb: ['red', 'green', 'blue'],\n\thsl: ['hue', 'saturation', 'lightness'],\n\thsv: ['hue', 'saturation', 'value'],\n\thwb: ['hue', 'whiteness', 'blackness'],\n\tcmyk: ['cyan', 'magenta', 'yellow', 'black']\n};\n\nColor.prototype.maxes = {\n\trgb: [255, 255, 255],\n\thsl: [360, 100, 100],\n\thsv: [360, 100, 100],\n\thwb: [360, 100, 100],\n\tcmyk: [100, 100, 100, 100]\n};\n\nColor.prototype.getValues = function (space) {\n\tvar values = this.values;\n\tvar vals = {};\n\n\tfor (var i = 0; i < space.length; i++) {\n\t\tvals[space.charAt(i)] = values[space][i];\n\t}\n\n\tif (values.alpha !== 1) {\n\t\tvals.a = values.alpha;\n\t}\n\n\t// {r: 255, g: 255, b: 255, a: 0.4}\n\treturn vals;\n};\n\nColor.prototype.setValues = function (space, vals) {\n\tvar values = this.values;\n\tvar spaces = this.spaces;\n\tvar maxes = this.maxes;\n\tvar alpha = 1;\n\tvar i;\n\n\tthis.valid = true;\n\n\tif (space === 'alpha') {\n\t\talpha = vals;\n\t} else if (vals.length) {\n\t\t// [10, 10, 10]\n\t\tvalues[space] = vals.slice(0, space.length);\n\t\talpha = vals[space.length];\n\t} else if (vals[space.charAt(0)] !== undefined) {\n\t\t// {r: 10, g: 10, b: 10}\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[space.charAt(i)];\n\t\t}\n\n\t\talpha = vals.a;\n\t} else if (vals[spaces[space][0]] !== undefined) {\n\t\t// {red: 10, green: 10, blue: 10}\n\t\tvar chans = spaces[space];\n\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[chans[i]];\n\t\t}\n\n\t\talpha = vals.alpha;\n\t}\n\n\tvalues.alpha = Math.max(0, Math.min(1, (alpha === undefined ? values.alpha : alpha)));\n\n\tif (space === 'alpha') {\n\t\treturn false;\n\t}\n\n\tvar capped;\n\n\t// cap values of the space prior converting all values\n\tfor (i = 0; i < space.length; i++) {\n\t\tcapped = Math.max(0, Math.min(maxes[space][i], values[space][i]));\n\t\tvalues[space][i] = Math.round(capped);\n\t}\n\n\t// convert to all the other color spaces\n\tfor (var sname in spaces) {\n\t\tif (sname !== space) {\n\t\t\tvalues[sname] = colorConvert[space][sname](values[space]);\n\t\t}\n\t}\n\n\treturn true;\n};\n\nColor.prototype.setSpace = function (space, args) {\n\tvar vals = args[0];\n\n\tif (vals === undefined) {\n\t\t// color.rgb()\n\t\treturn this.getValues(space);\n\t}\n\n\t// color.rgb(10, 10, 10)\n\tif (typeof vals === 'number') {\n\t\tvals = Array.prototype.slice.call(args);\n\t}\n\n\tthis.setValues(space, vals);\n\treturn this;\n};\n\nColor.prototype.setChannel = function (space, index, val) {\n\tvar svalues = this.values[space];\n\tif (val === undefined) {\n\t\t// color.red()\n\t\treturn svalues[index];\n\t} else if (val === svalues[index]) {\n\t\t// color.red(color.red())\n\t\treturn this;\n\t}\n\n\t// color.red(100)\n\tsvalues[index] = val;\n\tthis.setValues(space, svalues);\n\n\treturn this;\n};\n\nif (typeof window !== 'undefined') {\n\twindow.Color = Color;\n}\n\nvar chartjsColor = Color;\n\nfunction isValidKey(key) {\r\n\treturn ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\r\n}\r\n\r\n/**\r\n * @namespace Chart.helpers\r\n */\r\nvar helpers = {\r\n\t/**\r\n\t * An empty function that can be used, for example, for optional callback.\r\n\t */\r\n\tnoop: function() {},\r\n\r\n\t/**\r\n\t * Returns a unique id, sequentially generated from a global variable.\r\n\t * @returns {number}\r\n\t * @function\r\n\t */\r\n\tuid: (function() {\r\n\t\tvar id = 0;\r\n\t\treturn function() {\r\n\t\t\treturn id++;\r\n\t\t};\r\n\t}()),\r\n\r\n\t/**\r\n\t * Returns true if `value` is neither null nor undefined, else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @since 2.7.0\r\n\t */\r\n\tisNullOrUndef: function(value) {\r\n\t\treturn value === null || typeof value === 'undefined';\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is an array (including typed arrays), else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @function\r\n\t */\r\n\tisArray: function(value) {\r\n\t\tif (Array.isArray && Array.isArray(value)) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tvar type = Object.prototype.toString.call(value);\r\n\t\tif (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is an object (excluding null), else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @since 2.7.0\r\n\t */\r\n\tisObject: function(value) {\r\n\t\treturn value !== null && Object.prototype.toString.call(value) === '[object Object]';\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is a finite number, else returns false\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t */\r\n\tisFinite: function(value) {\r\n\t\treturn (typeof value === 'number' || value instanceof Number) && isFinite(value);\r\n\t},\r\n\r\n\t/**\r\n\t * Returns `value` if defined, else returns `defaultValue`.\r\n\t * @param {*} value - The value to return if defined.\r\n\t * @param {*} defaultValue - The value to return if `value` is undefined.\r\n\t * @returns {*}\r\n\t */\r\n\tvalueOrDefault: function(value, defaultValue) {\r\n\t\treturn typeof value === 'undefined' ? defaultValue : value;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns value at the given `index` in array if defined, else returns `defaultValue`.\r\n\t * @param {Array} value - The array to lookup for value at `index`.\r\n\t * @param {number} index - The index in `value` to lookup for value.\r\n\t * @param {*} defaultValue - The value to return if `value[index]` is undefined.\r\n\t * @returns {*}\r\n\t */\r\n\tvalueAtIndexOrDefault: function(value, index, defaultValue) {\r\n\t\treturn helpers.valueOrDefault(helpers.isArray(value) ? value[index] : value, defaultValue);\r\n\t},\r\n\r\n\t/**\r\n\t * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\r\n\t * value returned by `fn`. If `fn` is not a function, this method returns undefined.\r\n\t * @param {function} fn - The function to call.\r\n\t * @param {Array|undefined|null} args - The arguments with which `fn` should be called.\r\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\r\n\t * @returns {*}\r\n\t */\r\n\tcallback: function(fn, args, thisArg) {\r\n\t\tif (fn && typeof fn.call === 'function') {\r\n\t\t\treturn fn.apply(thisArg, args);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Note(SB) for performance sake, this method should only be used when loopable type\r\n\t * is unknown or in none intensive code (not called often and small loopable). Else\r\n\t * it's preferable to use a regular for() loop and save extra function calls.\r\n\t * @param {object|Array} loopable - The object or array to be iterated.\r\n\t * @param {function} fn - The function to call for each item.\r\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\r\n\t * @param {boolean} [reverse] - If true, iterates backward on the loopable.\r\n\t */\r\n\teach: function(loopable, fn, thisArg, reverse) {\r\n\t\tvar i, len, keys;\r\n\t\tif (helpers.isArray(loopable)) {\r\n\t\t\tlen = loopable.length;\r\n\t\t\tif (reverse) {\r\n\t\t\t\tfor (i = len - 1; i >= 0; i--) {\r\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tfor (i = 0; i < len; i++) {\r\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else if (helpers.isObject(loopable)) {\r\n\t\t\tkeys = Object.keys(loopable);\r\n\t\t\tlen = keys.length;\r\n\t\t\tfor (i = 0; i < len; i++) {\r\n\t\t\t\tfn.call(thisArg, loopable[keys[i]], keys[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\r\n\t * @see https://stackoverflow.com/a/14853974\r\n\t * @param {Array} a0 - The array to compare\r\n\t * @param {Array} a1 - The array to compare\r\n\t * @returns {boolean}\r\n\t */\r\n\tarrayEquals: function(a0, a1) {\r\n\t\tvar i, ilen, v0, v1;\r\n\r\n\t\tif (!a0 || !a1 || a0.length !== a1.length) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = a0.length; i < ilen; ++i) {\r\n\t\t\tv0 = a0[i];\r\n\t\t\tv1 = a1[i];\r\n\r\n\t\t\tif (v0 instanceof Array && v1 instanceof Array) {\r\n\t\t\t\tif (!helpers.arrayEquals(v0, v1)) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t} else if (v0 !== v1) {\r\n\t\t\t\t// NOTE: two different object instances will never be equal: {x:20} != {x:20}\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns a deep copy of `source` without keeping references on objects and arrays.\r\n\t * @param {*} source - The value to clone.\r\n\t * @returns {*}\r\n\t */\r\n\tclone: function(source) {\r\n\t\tif (helpers.isArray(source)) {\r\n\t\t\treturn source.map(helpers.clone);\r\n\t\t}\r\n\r\n\t\tif (helpers.isObject(source)) {\r\n\t\t\tvar target = Object.create(source);\r\n\t\t\tvar keys = Object.keys(source);\r\n\t\t\tvar klen = keys.length;\r\n\t\t\tvar k = 0;\r\n\r\n\t\t\tfor (; k < klen; ++k) {\r\n\t\t\t\ttarget[keys[k]] = helpers.clone(source[keys[k]]);\r\n\t\t\t}\r\n\r\n\t\t\treturn target;\r\n\t\t}\r\n\r\n\t\treturn source;\r\n\t},\r\n\r\n\t/**\r\n\t * The default merger when Chart.helpers.merge is called without merger option.\r\n\t * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\r\n\t * @private\r\n\t */\r\n\t_merger: function(key, target, source, options) {\r\n\t\tif (!isValidKey(key)) {\r\n\t\t\t// We want to ensure we do not copy prototypes over\r\n\t\t\t// as this can pollute global namespaces\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar tval = target[key];\r\n\t\tvar sval = source[key];\r\n\r\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\r\n\t\t\thelpers.merge(tval, sval, options);\r\n\t\t} else {\r\n\t\t\ttarget[key] = helpers.clone(sval);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Merges source[key] in target[key] only if target[key] is undefined.\r\n\t * @private\r\n\t */\r\n\t_mergerIf: function(key, target, source) {\r\n\t\tif (!isValidKey(key)) {\r\n\t\t\t// We want to ensure we do not copy prototypes over\r\n\t\t\t// as this can pollute global namespaces\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar tval = target[key];\r\n\t\tvar sval = source[key];\r\n\r\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\r\n\t\t\thelpers.mergeIf(tval, sval);\r\n\t\t} else if (!target.hasOwnProperty(key)) {\r\n\t\t\ttarget[key] = helpers.clone(sval);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Recursively deep copies `source` properties into `target` with the given `options`.\r\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\r\n\t * @param {object} target - The target object in which all sources are merged into.\r\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\r\n\t * @param {object} [options] - Merging options:\r\n\t * @param {function} [options.merger] - The merge method (key, target, source, options)\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\tmerge: function(target, source, options) {\r\n\t\tvar sources = helpers.isArray(source) ? source : [source];\r\n\t\tvar ilen = sources.length;\r\n\t\tvar merge, i, keys, klen, k;\r\n\r\n\t\tif (!helpers.isObject(target)) {\r\n\t\t\treturn target;\r\n\t\t}\r\n\r\n\t\toptions = options || {};\r\n\t\tmerge = options.merger || helpers._merger;\r\n\r\n\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\tsource = sources[i];\r\n\t\t\tif (!helpers.isObject(source)) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tkeys = Object.keys(source);\r\n\t\t\tfor (k = 0, klen = keys.length; k < klen; ++k) {\r\n\t\t\t\tmerge(keys[k], target, source, options);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn target;\r\n\t},\r\n\r\n\t/**\r\n\t * Recursively deep copies `source` properties into `target` *only* if not defined in target.\r\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\r\n\t * @param {object} target - The target object in which all sources are merged into.\r\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\tmergeIf: function(target, source) {\r\n\t\treturn helpers.merge(target, source, {merger: helpers._mergerIf});\r\n\t},\r\n\r\n\t/**\r\n\t * Applies the contents of two or more objects together into the first object.\r\n\t * @param {object} target - The target object in which all objects are merged into.\r\n\t * @param {object} arg1 - Object containing additional properties to merge in target.\r\n\t * @param {object} argN - Additional objects containing properties to merge in target.\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\textend: Object.assign || function(target) {\r\n\t\treturn helpers.merge(target, [].slice.call(arguments, 1), {\r\n\t\t\tmerger: function(key, dst, src) {\r\n\t\t\t\tdst[key] = src[key];\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * Basic javascript inheritance based on the model created in Backbone.js\r\n\t */\r\n\tinherits: function(extensions) {\r\n\t\tvar me = this;\r\n\t\tvar ChartElement = (extensions && extensions.hasOwnProperty('constructor')) ? extensions.constructor : function() {\r\n\t\t\treturn me.apply(this, arguments);\r\n\t\t};\r\n\r\n\t\tvar Surrogate = function() {\r\n\t\t\tthis.constructor = ChartElement;\r\n\t\t};\r\n\r\n\t\tSurrogate.prototype = me.prototype;\r\n\t\tChartElement.prototype = new Surrogate();\r\n\t\tChartElement.extend = helpers.inherits;\r\n\r\n\t\tif (extensions) {\r\n\t\t\thelpers.extend(ChartElement.prototype, extensions);\r\n\t\t}\r\n\r\n\t\tChartElement.__super__ = me.prototype;\r\n\t\treturn ChartElement;\r\n\t},\r\n\r\n\t_deprecated: function(scope, value, previous, current) {\r\n\t\tif (value !== undefined) {\r\n\t\t\tconsole.warn(scope + ': \"' + previous +\r\n\t\t\t\t'\" is deprecated. Please use \"' + current + '\" instead');\r\n\t\t}\r\n\t}\r\n};\r\n\r\nvar helpers_core = helpers;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.callback instead.\r\n * @function Chart.helpers.callCallback\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.callCallback = helpers.callback;\r\n\r\n/**\r\n * Provided for backward compatibility, use Array.prototype.indexOf instead.\r\n * Array.prototype.indexOf compatibility: Chrome, Opera, Safari, FF1.5+, IE9+\r\n * @function Chart.helpers.indexOf\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.indexOf = function(array, item, fromIndex) {\r\n\treturn Array.prototype.indexOf.call(array, item, fromIndex);\r\n};\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.valueOrDefault instead.\r\n * @function Chart.helpers.getValueOrDefault\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.getValueOrDefault = helpers.valueOrDefault;\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.valueAtIndexOrDefault instead.\r\n * @function Chart.helpers.getValueAtIndexOrDefault\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.getValueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n\n/**\r\n * Easing functions adapted from Robert Penner's easing equations.\r\n * @namespace Chart.helpers.easingEffects\r\n * @see http://www.robertpenner.com/easing/\r\n */\r\nvar effects = {\r\n\tlinear: function(t) {\r\n\t\treturn t;\r\n\t},\r\n\r\n\teaseInQuad: function(t) {\r\n\t\treturn t * t;\r\n\t},\r\n\r\n\teaseOutQuad: function(t) {\r\n\t\treturn -t * (t - 2);\r\n\t},\r\n\r\n\teaseInOutQuad: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t;\r\n\t\t}\r\n\t\treturn -0.5 * ((--t) * (t - 2) - 1);\r\n\t},\r\n\r\n\teaseInCubic: function(t) {\r\n\t\treturn t * t * t;\r\n\t},\r\n\r\n\teaseOutCubic: function(t) {\r\n\t\treturn (t = t - 1) * t * t + 1;\r\n\t},\r\n\r\n\teaseInOutCubic: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t;\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * t + 2);\r\n\t},\r\n\r\n\teaseInQuart: function(t) {\r\n\t\treturn t * t * t * t;\r\n\t},\r\n\r\n\teaseOutQuart: function(t) {\r\n\t\treturn -((t = t - 1) * t * t * t - 1);\r\n\t},\r\n\r\n\teaseInOutQuart: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t * t;\r\n\t\t}\r\n\t\treturn -0.5 * ((t -= 2) * t * t * t - 2);\r\n\t},\r\n\r\n\teaseInQuint: function(t) {\r\n\t\treturn t * t * t * t * t;\r\n\t},\r\n\r\n\teaseOutQuint: function(t) {\r\n\t\treturn (t = t - 1) * t * t * t * t + 1;\r\n\t},\r\n\r\n\teaseInOutQuint: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t * t * t;\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * t * t * t + 2);\r\n\t},\r\n\r\n\teaseInSine: function(t) {\r\n\t\treturn -Math.cos(t * (Math.PI / 2)) + 1;\r\n\t},\r\n\r\n\teaseOutSine: function(t) {\r\n\t\treturn Math.sin(t * (Math.PI / 2));\r\n\t},\r\n\r\n\teaseInOutSine: function(t) {\r\n\t\treturn -0.5 * (Math.cos(Math.PI * t) - 1);\r\n\t},\r\n\r\n\teaseInExpo: function(t) {\r\n\t\treturn (t === 0) ? 0 : Math.pow(2, 10 * (t - 1));\r\n\t},\r\n\r\n\teaseOutExpo: function(t) {\r\n\t\treturn (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1;\r\n\t},\r\n\r\n\teaseInOutExpo: function(t) {\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * Math.pow(2, 10 * (t - 1));\r\n\t\t}\r\n\t\treturn 0.5 * (-Math.pow(2, -10 * --t) + 2);\r\n\t},\r\n\r\n\teaseInCirc: function(t) {\r\n\t\tif (t >= 1) {\r\n\t\t\treturn t;\r\n\t\t}\r\n\t\treturn -(Math.sqrt(1 - t * t) - 1);\r\n\t},\r\n\r\n\teaseOutCirc: function(t) {\r\n\t\treturn Math.sqrt(1 - (t = t - 1) * t);\r\n\t},\r\n\r\n\teaseInOutCirc: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn -0.5 * (Math.sqrt(1 - t * t) - 1);\r\n\t\t}\r\n\t\treturn 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\r\n\t},\r\n\r\n\teaseInElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.3;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\treturn -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\r\n\t},\r\n\r\n\teaseOutElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.3;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\treturn a * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / p) + 1;\r\n\t},\r\n\r\n\teaseInOutElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif ((t /= 0.5) === 2) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.45;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\tif (t < 1) {\r\n\t\t\treturn -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\r\n\t\t}\r\n\t\treturn a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p) * 0.5 + 1;\r\n\t},\r\n\teaseInBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\treturn t * t * ((s + 1) * t - s);\r\n\t},\r\n\r\n\teaseOutBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\treturn (t = t - 1) * t * ((s + 1) * t + s) + 1;\r\n\t},\r\n\r\n\teaseInOutBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\r\n\t},\r\n\r\n\teaseInBounce: function(t) {\r\n\t\treturn 1 - effects.easeOutBounce(1 - t);\r\n\t},\r\n\r\n\teaseOutBounce: function(t) {\r\n\t\tif (t < (1 / 2.75)) {\r\n\t\t\treturn 7.5625 * t * t;\r\n\t\t}\r\n\t\tif (t < (2 / 2.75)) {\r\n\t\t\treturn 7.5625 * (t -= (1.5 / 2.75)) * t + 0.75;\r\n\t\t}\r\n\t\tif (t < (2.5 / 2.75)) {\r\n\t\t\treturn 7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375;\r\n\t\t}\r\n\t\treturn 7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375;\r\n\t},\r\n\r\n\teaseInOutBounce: function(t) {\r\n\t\tif (t < 0.5) {\r\n\t\t\treturn effects.easeInBounce(t * 2) * 0.5;\r\n\t\t}\r\n\t\treturn effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5;\r\n\t}\r\n};\r\n\r\nvar helpers_easing = {\r\n\teffects: effects\r\n};\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.easing.effects instead.\r\n * @function Chart.helpers.easingEffects\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.easingEffects = effects;\n\nvar PI = Math.PI;\r\nvar RAD_PER_DEG = PI / 180;\r\nvar DOUBLE_PI = PI * 2;\r\nvar HALF_PI = PI / 2;\r\nvar QUARTER_PI = PI / 4;\r\nvar TWO_THIRDS_PI = PI * 2 / 3;\r\n\r\n/**\r\n * @namespace Chart.helpers.canvas\r\n */\r\nvar exports$1 = {\r\n\t/**\r\n\t * Clears the entire canvas associated to the given `chart`.\r\n\t * @param {Chart} chart - The chart for which to clear the canvas.\r\n\t */\r\n\tclear: function(chart) {\r\n\t\tchart.ctx.clearRect(0, 0, chart.width, chart.height);\r\n\t},\r\n\r\n\t/**\r\n\t * Creates a \"path\" for a rectangle with rounded corners at position (x, y) with a\r\n\t * given size (width, height) and the same `radius` for all corners.\r\n\t * @param {CanvasRenderingContext2D} ctx - The canvas 2D Context.\r\n\t * @param {number} x - The x axis of the coordinate for the rectangle starting point.\r\n\t * @param {number} y - The y axis of the coordinate for the rectangle starting point.\r\n\t * @param {number} width - The rectangle's width.\r\n\t * @param {number} height - The rectangle's height.\r\n\t * @param {number} radius - The rounded amount (in pixels) for the four corners.\r\n\t * @todo handle `radius` as top-left, top-right, bottom-right, bottom-left array/object?\r\n\t */\r\n\troundedRect: function(ctx, x, y, width, height, radius) {\r\n\t\tif (radius) {\r\n\t\t\tvar r = Math.min(radius, height / 2, width / 2);\r\n\t\t\tvar left = x + r;\r\n\t\t\tvar top = y + r;\r\n\t\t\tvar right = x + width - r;\r\n\t\t\tvar bottom = y + height - r;\r\n\r\n\t\t\tctx.moveTo(x, top);\r\n\t\t\tif (left < right && top < bottom) {\r\n\t\t\t\tctx.arc(left, top, r, -PI, -HALF_PI);\r\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, 0);\r\n\t\t\t\tctx.arc(right, bottom, r, 0, HALF_PI);\r\n\t\t\t\tctx.arc(left, bottom, r, HALF_PI, PI);\r\n\t\t\t} else if (left < right) {\r\n\t\t\t\tctx.moveTo(left, y);\r\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, HALF_PI);\r\n\t\t\t\tctx.arc(left, top, r, HALF_PI, PI + HALF_PI);\r\n\t\t\t} else if (top < bottom) {\r\n\t\t\t\tctx.arc(left, top, r, -PI, 0);\r\n\t\t\t\tctx.arc(left, bottom, r, 0, PI);\r\n\t\t\t} else {\r\n\t\t\t\tctx.arc(left, top, r, -PI, PI);\r\n\t\t\t}\r\n\t\t\tctx.closePath();\r\n\t\t\tctx.moveTo(x, y);\r\n\t\t} else {\r\n\t\t\tctx.rect(x, y, width, height);\r\n\t\t}\r\n\t},\r\n\r\n\tdrawPoint: function(ctx, style, radius, x, y, rotation) {\r\n\t\tvar type, xOffset, yOffset, size, cornerRadius;\r\n\t\tvar rad = (rotation || 0) * RAD_PER_DEG;\r\n\r\n\t\tif (style && typeof style === 'object') {\r\n\t\t\ttype = style.toString();\r\n\t\t\tif (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\r\n\t\t\t\tctx.save();\r\n\t\t\t\tctx.translate(x, y);\r\n\t\t\t\tctx.rotate(rad);\r\n\t\t\t\tctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\r\n\t\t\t\tctx.restore();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (isNaN(radius) || radius <= 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.beginPath();\r\n\r\n\t\tswitch (style) {\r\n\t\t// Default includes circle\r\n\t\tdefault:\r\n\t\t\tctx.arc(x, y, radius, 0, DOUBLE_PI);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'triangle':\r\n\t\t\tctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\trad += TWO_THIRDS_PI;\r\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\trad += TWO_THIRDS_PI;\r\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'rectRounded':\r\n\t\t\t// NOTE: the rounded rect implementation changed to use `arc` instead of\r\n\t\t\t// `quadraticCurveTo` since it generates better results when rect is\r\n\t\t\t// almost a circle. 0.516 (instead of 0.5) produces results with visually\r\n\t\t\t// closer proportion to the previous impl and it is inscribed in the\r\n\t\t\t// circle with `radius`. For more details, see the following PRs:\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5597\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5858\r\n\t\t\tcornerRadius = radius * 0.516;\r\n\t\t\tsize = radius - cornerRadius;\r\n\t\t\txOffset = Math.cos(rad + QUARTER_PI) * size;\r\n\t\t\tyOffset = Math.sin(rad + QUARTER_PI) * size;\r\n\t\t\tctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\r\n\t\t\tctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\r\n\t\t\tctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\r\n\t\t\tctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'rect':\r\n\t\t\tif (!rotation) {\r\n\t\t\t\tsize = Math.SQRT1_2 * radius;\r\n\t\t\t\tctx.rect(x - size, y - size, 2 * size, 2 * size);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\t/* falls through */\r\n\t\tcase 'rectRot':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'crossRot':\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\t/* falls through */\r\n\t\tcase 'cross':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'star':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'line':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'dash':\r\n\t\t\tctx.moveTo(x, y);\r\n\t\t\tctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tctx.fill();\r\n\t\tctx.stroke();\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if the point is inside the rectangle\r\n\t * @param {object} point - The point to test\r\n\t * @param {object} area - The rectangle\r\n\t * @returns {boolean}\r\n\t * @private\r\n\t */\r\n\t_isPointInArea: function(point, area) {\r\n\t\tvar epsilon = 1e-6; // 1e-6 is margin in pixels for accumulated error.\r\n\r\n\t\treturn point.x > area.left - epsilon && point.x < area.right + epsilon &&\r\n\t\t\tpoint.y > area.top - epsilon && point.y < area.bottom + epsilon;\r\n\t},\r\n\r\n\tclipArea: function(ctx, area) {\r\n\t\tctx.save();\r\n\t\tctx.beginPath();\r\n\t\tctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\r\n\t\tctx.clip();\r\n\t},\r\n\r\n\tunclipArea: function(ctx) {\r\n\t\tctx.restore();\r\n\t},\r\n\r\n\tlineTo: function(ctx, previous, target, flip) {\r\n\t\tvar stepped = target.steppedLine;\r\n\t\tif (stepped) {\r\n\t\t\tif (stepped === 'middle') {\r\n\t\t\t\tvar midpoint = (previous.x + target.x) / 2.0;\r\n\t\t\t\tctx.lineTo(midpoint, flip ? target.y : previous.y);\r\n\t\t\t\tctx.lineTo(midpoint, flip ? previous.y : target.y);\r\n\t\t\t} else if ((stepped === 'after' && !flip) || (stepped !== 'after' && flip)) {\r\n\t\t\t\tctx.lineTo(previous.x, target.y);\r\n\t\t\t} else {\r\n\t\t\t\tctx.lineTo(target.x, previous.y);\r\n\t\t\t}\r\n\t\t\tctx.lineTo(target.x, target.y);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!target.tension) {\r\n\t\t\tctx.lineTo(target.x, target.y);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.bezierCurveTo(\r\n\t\t\tflip ? previous.controlPointPreviousX : previous.controlPointNextX,\r\n\t\t\tflip ? previous.controlPointPreviousY : previous.controlPointNextY,\r\n\t\t\tflip ? target.controlPointNextX : target.controlPointPreviousX,\r\n\t\t\tflip ? target.controlPointNextY : target.controlPointPreviousY,\r\n\t\t\ttarget.x,\r\n\t\t\ttarget.y);\r\n\t}\r\n};\r\n\r\nvar helpers_canvas = exports$1;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.canvas.clear instead.\r\n * @namespace Chart.helpers.clear\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.clear = exports$1.clear;\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.canvas.roundedRect instead.\r\n * @namespace Chart.helpers.drawRoundedRectangle\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.drawRoundedRectangle = function(ctx) {\r\n\tctx.beginPath();\r\n\texports$1.roundedRect.apply(exports$1, arguments);\r\n};\n\nvar defaults = {\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_set: function(scope, values) {\r\n\t\treturn helpers_core.merge(this[scope] || (this[scope] = {}), values);\r\n\t}\r\n};\r\n\r\n// TODO(v3): remove 'global' from namespace. all default are global and\r\n// there's inconsistency around which options are under 'global'\r\ndefaults._set('global', {\r\n\tdefaultColor: 'rgba(0,0,0,0.1)',\r\n\tdefaultFontColor: '#666',\r\n\tdefaultFontFamily: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\r\n\tdefaultFontSize: 12,\r\n\tdefaultFontStyle: 'normal',\r\n\tdefaultLineHeight: 1.2,\r\n\tshowLines: true\r\n});\r\n\r\nvar core_defaults = defaults;\n\nvar valueOrDefault = helpers_core.valueOrDefault;\r\n\r\n/**\r\n * Converts the given font object into a CSS font string.\r\n * @param {object} font - A font object.\r\n * @return {string} The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\r\n * @private\r\n */\r\nfunction toFontString(font) {\r\n\tif (!font || helpers_core.isNullOrUndef(font.size) || helpers_core.isNullOrUndef(font.family)) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (font.style ? font.style + ' ' : '')\r\n\t\t+ (font.weight ? font.weight + ' ' : '')\r\n\t\t+ font.size + 'px '\r\n\t\t+ font.family;\r\n}\r\n\r\n/**\r\n * @alias Chart.helpers.options\r\n * @namespace\r\n */\r\nvar helpers_options = {\r\n\t/**\r\n\t * Converts the given line height `value` in pixels for a specific font `size`.\r\n\t * @param {number|string} value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\r\n\t * @param {number} size - The font size (in pixels) used to resolve relative `value`.\r\n\t * @returns {number} The effective line height in pixels (size * 1.2 if value is invalid).\r\n\t * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\r\n\t * @since 2.7.0\r\n\t */\r\n\ttoLineHeight: function(value, size) {\r\n\t\tvar matches = ('' + value).match(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\r\n\t\tif (!matches || matches[1] === 'normal') {\r\n\t\t\treturn size * 1.2;\r\n\t\t}\r\n\r\n\t\tvalue = +matches[2];\r\n\r\n\t\tswitch (matches[3]) {\r\n\t\tcase 'px':\r\n\t\t\treturn value;\r\n\t\tcase '%':\r\n\t\t\tvalue /= 100;\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\treturn size * value;\r\n\t},\r\n\r\n\t/**\r\n\t * Converts the given value into a padding object with pre-computed width/height.\r\n\t * @param {number|object} value - If a number, set the value to all TRBL component,\r\n\t * else, if and object, use defined properties and sets undefined ones to 0.\r\n\t * @returns {object} The padding values (top, right, bottom, left, width, height)\r\n\t * @since 2.7.0\r\n\t */\r\n\ttoPadding: function(value) {\r\n\t\tvar t, r, b, l;\r\n\r\n\t\tif (helpers_core.isObject(value)) {\r\n\t\t\tt = +value.top || 0;\r\n\t\t\tr = +value.right || 0;\r\n\t\t\tb = +value.bottom || 0;\r\n\t\t\tl = +value.left || 0;\r\n\t\t} else {\r\n\t\t\tt = r = b = l = +value || 0;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\ttop: t,\r\n\t\t\tright: r,\r\n\t\t\tbottom: b,\r\n\t\t\tleft: l,\r\n\t\t\theight: t + b,\r\n\t\t\twidth: l + r\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * Parses font options and returns the font object.\r\n\t * @param {object} options - A object that contains font options to be parsed.\r\n\t * @return {object} The font object.\r\n\t * @todo Support font.* options and renamed to toFont().\r\n\t * @private\r\n\t */\r\n\t_parseFont: function(options) {\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar size = valueOrDefault(options.fontSize, globalDefaults.defaultFontSize);\r\n\t\tvar font = {\r\n\t\t\tfamily: valueOrDefault(options.fontFamily, globalDefaults.defaultFontFamily),\r\n\t\t\tlineHeight: helpers_core.options.toLineHeight(valueOrDefault(options.lineHeight, globalDefaults.defaultLineHeight), size),\r\n\t\t\tsize: size,\r\n\t\t\tstyle: valueOrDefault(options.fontStyle, globalDefaults.defaultFontStyle),\r\n\t\t\tweight: null,\r\n\t\t\tstring: ''\r\n\t\t};\r\n\r\n\t\tfont.string = toFontString(font);\r\n\t\treturn font;\r\n\t},\r\n\r\n\t/**\r\n\t * Evaluates the given `inputs` sequentially and returns the first defined value.\r\n\t * @param {Array} inputs - An array of values, falling back to the last value.\r\n\t * @param {object} [context] - If defined and the current value is a function, the value\r\n\t * is called with `context` as first argument and the result becomes the new input.\r\n\t * @param {number} [index] - If defined and the current value is an array, the value\r\n\t * at `index` become the new input.\r\n\t * @param {object} [info] - object to return information about resolution in\r\n\t * @param {boolean} [info.cacheable] - Will be set to `false` if option is not cacheable.\r\n\t * @since 2.7.0\r\n\t */\r\n\tresolve: function(inputs, context, index, info) {\r\n\t\tvar cacheable = true;\r\n\t\tvar i, ilen, value;\r\n\r\n\t\tfor (i = 0, ilen = inputs.length; i < ilen; ++i) {\r\n\t\t\tvalue = inputs[i];\r\n\t\t\tif (value === undefined) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tif (context !== undefined && typeof value === 'function') {\r\n\t\t\t\tvalue = value(context);\r\n\t\t\t\tcacheable = false;\r\n\t\t\t}\r\n\t\t\tif (index !== undefined && helpers_core.isArray(value)) {\r\n\t\t\t\tvalue = value[index];\r\n\t\t\t\tcacheable = false;\r\n\t\t\t}\r\n\t\t\tif (value !== undefined) {\r\n\t\t\t\tif (info && !cacheable) {\r\n\t\t\t\t\tinfo.cacheable = false;\r\n\t\t\t\t}\r\n\t\t\t\treturn value;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\n\n/**\r\n * @alias Chart.helpers.math\r\n * @namespace\r\n */\r\nvar exports$2 = {\r\n\t/**\r\n\t * Returns an array of factors sorted from 1 to sqrt(value)\r\n\t * @private\r\n\t */\r\n\t_factorize: function(value) {\r\n\t\tvar result = [];\r\n\t\tvar sqrt = Math.sqrt(value);\r\n\t\tvar i;\r\n\r\n\t\tfor (i = 1; i < sqrt; i++) {\r\n\t\t\tif (value % i === 0) {\r\n\t\t\t\tresult.push(i);\r\n\t\t\t\tresult.push(value / i);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (sqrt === (sqrt | 0)) { // if value is a square number\r\n\t\t\tresult.push(sqrt);\r\n\t\t}\r\n\r\n\t\tresult.sort(function(a, b) {\r\n\t\t\treturn a - b;\r\n\t\t}).pop();\r\n\t\treturn result;\r\n\t},\r\n\r\n\tlog10: Math.log10 || function(x) {\r\n\t\tvar exponent = Math.log(x) * Math.LOG10E; // Math.LOG10E = 1 / Math.LN10.\r\n\t\t// Check for whole powers of 10,\r\n\t\t// which due to floating point rounding error should be corrected.\r\n\t\tvar powerOf10 = Math.round(exponent);\r\n\t\tvar isPowerOf10 = x === Math.pow(10, powerOf10);\r\n\r\n\t\treturn isPowerOf10 ? powerOf10 : exponent;\r\n\t}\r\n};\r\n\r\nvar helpers_math = exports$2;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.math.log10 instead.\r\n * @namespace Chart.helpers.log10\r\n * @deprecated since version 2.9.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.log10 = exports$2.log10;\n\nvar getRtlAdapter = function(rectX, width) {\r\n\treturn {\r\n\t\tx: function(x) {\r\n\t\t\treturn rectX + rectX + width - x;\r\n\t\t},\r\n\t\tsetWidth: function(w) {\r\n\t\t\twidth = w;\r\n\t\t},\r\n\t\ttextAlign: function(align) {\r\n\t\t\tif (align === 'center') {\r\n\t\t\t\treturn align;\r\n\t\t\t}\r\n\t\t\treturn align === 'right' ? 'left' : 'right';\r\n\t\t},\r\n\t\txPlus: function(x, value) {\r\n\t\t\treturn x - value;\r\n\t\t},\r\n\t\tleftForLtr: function(x, itemWidth) {\r\n\t\t\treturn x - itemWidth;\r\n\t\t},\r\n\t};\r\n};\r\n\r\nvar getLtrAdapter = function() {\r\n\treturn {\r\n\t\tx: function(x) {\r\n\t\t\treturn x;\r\n\t\t},\r\n\t\tsetWidth: function(w) { // eslint-disable-line no-unused-vars\r\n\t\t},\r\n\t\ttextAlign: function(align) {\r\n\t\t\treturn align;\r\n\t\t},\r\n\t\txPlus: function(x, value) {\r\n\t\t\treturn x + value;\r\n\t\t},\r\n\t\tleftForLtr: function(x, _itemWidth) { // eslint-disable-line no-unused-vars\r\n\t\t\treturn x;\r\n\t\t},\r\n\t};\r\n};\r\n\r\nvar getAdapter = function(rtl, rectX, width) {\r\n\treturn rtl ? getRtlAdapter(rectX, width) : getLtrAdapter();\r\n};\r\n\r\nvar overrideTextDirection = function(ctx, direction) {\r\n\tvar style, original;\r\n\tif (direction === 'ltr' || direction === 'rtl') {\r\n\t\tstyle = ctx.canvas.style;\r\n\t\toriginal = [\r\n\t\t\tstyle.getPropertyValue('direction'),\r\n\t\t\tstyle.getPropertyPriority('direction'),\r\n\t\t];\r\n\r\n\t\tstyle.setProperty('direction', direction, 'important');\r\n\t\tctx.prevTextDirection = original;\r\n\t}\r\n};\r\n\r\nvar restoreTextDirection = function(ctx) {\r\n\tvar original = ctx.prevTextDirection;\r\n\tif (original !== undefined) {\r\n\t\tdelete ctx.prevTextDirection;\r\n\t\tctx.canvas.style.setProperty('direction', original[0], original[1]);\r\n\t}\r\n};\r\n\r\nvar helpers_rtl = {\r\n\tgetRtlAdapter: getAdapter,\r\n\toverrideTextDirection: overrideTextDirection,\r\n\trestoreTextDirection: restoreTextDirection,\r\n};\n\nvar helpers$1 = helpers_core;\r\nvar easing = helpers_easing;\r\nvar canvas = helpers_canvas;\r\nvar options = helpers_options;\r\nvar math = helpers_math;\r\nvar rtl = helpers_rtl;\nhelpers$1.easing = easing;\nhelpers$1.canvas = canvas;\nhelpers$1.options = options;\nhelpers$1.math = math;\nhelpers$1.rtl = rtl;\n\nfunction interpolate(start, view, model, ease) {\r\n\tvar keys = Object.keys(model);\r\n\tvar i, ilen, key, actual, origin, target, type, c0, c1;\r\n\r\n\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\tkey = keys[i];\r\n\r\n\t\ttarget = model[key];\r\n\r\n\t\t// if a value is added to the model after pivot() has been called, the view\r\n\t\t// doesn't contain it, so let's initialize the view to the target value.\r\n\t\tif (!view.hasOwnProperty(key)) {\r\n\t\t\tview[key] = target;\r\n\t\t}\r\n\r\n\t\tactual = view[key];\r\n\r\n\t\tif (actual === target || key[0] === '_') {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tif (!start.hasOwnProperty(key)) {\r\n\t\t\tstart[key] = actual;\r\n\t\t}\r\n\r\n\t\torigin = start[key];\r\n\r\n\t\ttype = typeof target;\r\n\r\n\t\tif (type === typeof origin) {\r\n\t\t\tif (type === 'string') {\r\n\t\t\t\tc0 = chartjsColor(origin);\r\n\t\t\t\tif (c0.valid) {\r\n\t\t\t\t\tc1 = chartjsColor(target);\r\n\t\t\t\t\tif (c1.valid) {\r\n\t\t\t\t\t\tview[key] = c1.mix(c0, ease).rgbString();\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else if (helpers$1.isFinite(origin) && helpers$1.isFinite(target)) {\r\n\t\t\t\tview[key] = origin + (target - origin) * ease;\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tview[key] = target;\r\n\t}\r\n}\r\n\r\nvar Element = function(configuration) {\r\n\thelpers$1.extend(this, configuration);\r\n\tthis.initialize.apply(this, arguments);\r\n};\r\n\r\nhelpers$1.extend(Element.prototype, {\r\n\t_type: undefined,\r\n\r\n\tinitialize: function() {\r\n\t\tthis.hidden = false;\r\n\t},\r\n\r\n\tpivot: function() {\r\n\t\tvar me = this;\r\n\t\tif (!me._view) {\r\n\t\t\tme._view = helpers$1.extend({}, me._model);\r\n\t\t}\r\n\t\tme._start = {};\r\n\t\treturn me;\r\n\t},\r\n\r\n\ttransition: function(ease) {\r\n\t\tvar me = this;\r\n\t\tvar model = me._model;\r\n\t\tvar start = me._start;\r\n\t\tvar view = me._view;\r\n\r\n\t\t// No animation -> No Transition\r\n\t\tif (!model || ease === 1) {\r\n\t\t\tme._view = helpers$1.extend({}, model);\r\n\t\t\tme._start = null;\r\n\t\t\treturn me;\r\n\t\t}\r\n\r\n\t\tif (!view) {\r\n\t\t\tview = me._view = {};\r\n\t\t}\r\n\r\n\t\tif (!start) {\r\n\t\t\tstart = me._start = {};\r\n\t\t}\r\n\r\n\t\tinterpolate(start, view, model, ease);\r\n\r\n\t\treturn me;\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\treturn {\r\n\t\t\tx: this._model.x,\r\n\t\t\ty: this._model.y\r\n\t\t};\r\n\t},\r\n\r\n\thasValue: function() {\r\n\t\treturn helpers$1.isNumber(this._model.x) && helpers$1.isNumber(this._model.y);\r\n\t}\r\n});\r\n\r\nElement.extend = helpers$1.inherits;\r\n\r\nvar core_element = Element;\n\nvar exports$3 = core_element.extend({\r\n\tchart: null, // the animation associated chart instance\r\n\tcurrentStep: 0, // the current animation step\r\n\tnumSteps: 60, // default number of steps\r\n\teasing: '', // the easing to use for this animation\r\n\trender: null, // render function used by the animation service\r\n\r\n\tonAnimationProgress: null, // user specified callback to fire on each step of the animation\r\n\tonAnimationComplete: null, // user specified callback to fire when the animation finishes\r\n});\r\n\r\nvar core_animation = exports$3;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.Animation instead\r\n * @prop Chart.Animation#animationObject\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n */\r\nObject.defineProperty(exports$3.prototype, 'animationObject', {\r\n\tget: function() {\r\n\t\treturn this;\r\n\t}\r\n});\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.Animation#chart instead\r\n * @prop Chart.Animation#chartInstance\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n */\r\nObject.defineProperty(exports$3.prototype, 'chartInstance', {\r\n\tget: function() {\r\n\t\treturn this.chart;\r\n\t},\r\n\tset: function(value) {\r\n\t\tthis.chart = value;\r\n\t}\r\n});\n\ncore_defaults._set('global', {\r\n\tanimation: {\r\n\t\tduration: 1000,\r\n\t\teasing: 'easeOutQuart',\r\n\t\tonProgress: helpers$1.noop,\r\n\t\tonComplete: helpers$1.noop\r\n\t}\r\n});\r\n\r\nvar core_animations = {\r\n\tanimations: [],\r\n\trequest: null,\r\n\r\n\t/**\r\n\t * @param {Chart} chart - The chart to animate.\r\n\t * @param {Chart.Animation} animation - The animation that we will animate.\r\n\t * @param {number} duration - The animation duration in ms.\r\n\t * @param {boolean} lazy - if true, the chart is not marked as animating to enable more responsive interactions\r\n\t */\r\n\taddAnimation: function(chart, animation, duration, lazy) {\r\n\t\tvar animations = this.animations;\r\n\t\tvar i, ilen;\r\n\r\n\t\tanimation.chart = chart;\r\n\t\tanimation.startTime = Date.now();\r\n\t\tanimation.duration = duration;\r\n\r\n\t\tif (!lazy) {\r\n\t\t\tchart.animating = true;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = animations.length; i < ilen; ++i) {\r\n\t\t\tif (animations[i].chart === chart) {\r\n\t\t\t\tanimations[i] = animation;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tanimations.push(animation);\r\n\r\n\t\t// If there are no animations queued, manually kickstart a digest, for lack of a better word\r\n\t\tif (animations.length === 1) {\r\n\t\t\tthis.requestAnimationFrame();\r\n\t\t}\r\n\t},\r\n\r\n\tcancelAnimation: function(chart) {\r\n\t\tvar index = helpers$1.findIndex(this.animations, function(animation) {\r\n\t\t\treturn animation.chart === chart;\r\n\t\t});\r\n\r\n\t\tif (index !== -1) {\r\n\t\t\tthis.animations.splice(index, 1);\r\n\t\t\tchart.animating = false;\r\n\t\t}\r\n\t},\r\n\r\n\trequestAnimationFrame: function() {\r\n\t\tvar me = this;\r\n\t\tif (me.request === null) {\r\n\t\t\t// Skip animation frame requests until the active one is executed.\r\n\t\t\t// This can happen when processing mouse events, e.g. 'mousemove'\r\n\t\t\t// and 'mouseout' events will trigger multiple renders.\r\n\t\t\tme.request = helpers$1.requestAnimFrame.call(window, function() {\r\n\t\t\t\tme.request = null;\r\n\t\t\t\tme.startDigest();\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tstartDigest: function() {\r\n\t\tvar me = this;\r\n\r\n\t\tme.advance();\r\n\r\n\t\t// Do we have more stuff to animate?\r\n\t\tif (me.animations.length > 0) {\r\n\t\t\tme.requestAnimationFrame();\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tadvance: function() {\r\n\t\tvar animations = this.animations;\r\n\t\tvar animation, chart, numSteps, nextStep;\r\n\t\tvar i = 0;\r\n\r\n\t\t// 1 animation per chart, so we are looping charts here\r\n\t\twhile (i < animations.length) {\r\n\t\t\tanimation = animations[i];\r\n\t\t\tchart = animation.chart;\r\n\t\t\tnumSteps = animation.numSteps;\r\n\r\n\t\t\t// Make sure that currentStep starts at 1\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/6104\r\n\t\t\tnextStep = Math.floor((Date.now() - animation.startTime) / animation.duration * numSteps) + 1;\r\n\t\t\tanimation.currentStep = Math.min(nextStep, numSteps);\r\n\r\n\t\t\thelpers$1.callback(animation.render, [chart, animation], chart);\r\n\t\t\thelpers$1.callback(animation.onAnimationProgress, [animation], chart);\r\n\r\n\t\t\tif (animation.currentStep >= numSteps) {\r\n\t\t\t\thelpers$1.callback(animation.onAnimationComplete, [animation], chart);\r\n\t\t\t\tchart.animating = false;\r\n\t\t\t\tanimations.splice(i, 1);\r\n\t\t\t} else {\r\n\t\t\t\t++i;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\n\nvar resolve = helpers$1.options.resolve;\r\n\r\nvar arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\r\n\r\n/**\r\n * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\r\n * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\r\n * called on the 'onData*' callbacks (e.g. onDataPush, etc.) with same arguments.\r\n */\r\nfunction listenArrayEvents(array, listener) {\r\n\tif (array._chartjs) {\r\n\t\tarray._chartjs.listeners.push(listener);\r\n\t\treturn;\r\n\t}\r\n\r\n\tObject.defineProperty(array, '_chartjs', {\r\n\t\tconfigurable: true,\r\n\t\tenumerable: false,\r\n\t\tvalue: {\r\n\t\t\tlisteners: [listener]\r\n\t\t}\r\n\t});\r\n\r\n\tarrayEvents.forEach(function(key) {\r\n\t\tvar method = 'onData' + key.charAt(0).toUpperCase() + key.slice(1);\r\n\t\tvar base = array[key];\r\n\r\n\t\tObject.defineProperty(array, key, {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: false,\r\n\t\t\tvalue: function() {\r\n\t\t\t\tvar args = Array.prototype.slice.call(arguments);\r\n\t\t\t\tvar res = base.apply(this, args);\r\n\r\n\t\t\t\thelpers$1.each(array._chartjs.listeners, function(object) {\r\n\t\t\t\t\tif (typeof object[method] === 'function') {\r\n\t\t\t\t\t\tobject[method].apply(object, args);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn res;\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n}\r\n\r\n/**\r\n * Removes the given array event listener and cleanup extra attached properties (such as\r\n * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\r\n */\r\nfunction unlistenArrayEvents(array, listener) {\r\n\tvar stub = array._chartjs;\r\n\tif (!stub) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tvar listeners = stub.listeners;\r\n\tvar index = listeners.indexOf(listener);\r\n\tif (index !== -1) {\r\n\t\tlisteners.splice(index, 1);\r\n\t}\r\n\r\n\tif (listeners.length > 0) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tarrayEvents.forEach(function(key) {\r\n\t\tdelete array[key];\r\n\t});\r\n\r\n\tdelete array._chartjs;\r\n}\r\n\r\n// Base class for all dataset controllers (line, bar, etc)\r\nvar DatasetController = function(chart, datasetIndex) {\r\n\tthis.initialize(chart, datasetIndex);\r\n};\r\n\r\nhelpers$1.extend(DatasetController.prototype, {\r\n\r\n\t/**\r\n\t * Element type used to generate a meta dataset (e.g. Chart.element.Line).\r\n\t * @type {Chart.core.element}\r\n\t */\r\n\tdatasetElementType: null,\r\n\r\n\t/**\r\n\t * Element type used to generate a meta data (e.g. Chart.element.Point).\r\n\t * @type {Chart.core.element}\r\n\t */\r\n\tdataElementType: null,\r\n\r\n\t/**\r\n\t * Dataset element option keys to be resolved in _resolveDatasetElementOptions.\r\n\t * A derived controller may override this to resolve controller-specific options.\r\n\t * The keys defined here are for backward compatibility for legend styles.\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderColor',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'borderWidth'\r\n\t],\r\n\r\n\t/**\r\n\t * Data element option keys to be resolved in _resolveDataElementOptions.\r\n\t * A derived controller may override this to resolve controller-specific options.\r\n\t * The keys defined here are for backward compatibility for legend styles.\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'pointStyle'\r\n\t],\r\n\r\n\tinitialize: function(chart, datasetIndex) {\r\n\t\tvar me = this;\r\n\t\tme.chart = chart;\r\n\t\tme.index = datasetIndex;\r\n\t\tme.linkScales();\r\n\t\tme.addElements();\r\n\t\tme._type = me.getMeta().type;\r\n\t},\r\n\r\n\tupdateIndex: function(datasetIndex) {\r\n\t\tthis.index = datasetIndex;\r\n\t},\r\n\r\n\tlinkScales: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar chart = me.chart;\r\n\t\tvar scales = chart.scales;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar scalesOpts = chart.options.scales;\r\n\r\n\t\tif (meta.xAxisID === null || !(meta.xAxisID in scales) || dataset.xAxisID) {\r\n\t\t\tmeta.xAxisID = dataset.xAxisID || scalesOpts.xAxes[0].id;\r\n\t\t}\r\n\t\tif (meta.yAxisID === null || !(meta.yAxisID in scales) || dataset.yAxisID) {\r\n\t\t\tmeta.yAxisID = dataset.yAxisID || scalesOpts.yAxes[0].id;\r\n\t\t}\r\n\t},\r\n\r\n\tgetDataset: function() {\r\n\t\treturn this.chart.data.datasets[this.index];\r\n\t},\r\n\r\n\tgetMeta: function() {\r\n\t\treturn this.chart.getDatasetMeta(this.index);\r\n\t},\r\n\r\n\tgetScaleForId: function(scaleID) {\r\n\t\treturn this.chart.scales[scaleID];\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.getMeta().yAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.getMeta().xAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScale: function() {\r\n\t\treturn this.getScaleForId(this._getValueScaleId());\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScale: function() {\r\n\t\treturn this.getScaleForId(this._getIndexScaleId());\r\n\t},\r\n\r\n\treset: function() {\r\n\t\tthis._update(true);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tdestroy: function() {\r\n\t\tif (this._data) {\r\n\t\t\tunlistenArrayEvents(this._data, this);\r\n\t\t}\r\n\t},\r\n\r\n\tcreateMetaDataset: function() {\r\n\t\tvar me = this;\r\n\t\tvar type = me.datasetElementType;\r\n\t\treturn type && new type({\r\n\t\t\t_chart: me.chart,\r\n\t\t\t_datasetIndex: me.index\r\n\t\t});\r\n\t},\r\n\r\n\tcreateMetaData: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar type = me.dataElementType;\r\n\t\treturn type && new type({\r\n\t\t\t_chart: me.chart,\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index\r\n\t\t});\r\n\t},\r\n\r\n\taddElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar data = me.getDataset().data || [];\r\n\t\tvar metaData = meta.data;\r\n\t\tvar i, ilen;\r\n\r\n\t\tfor (i = 0, ilen = data.length; i < ilen; ++i) {\r\n\t\t\tmetaData[i] = metaData[i] || me.createMetaData(i);\r\n\t\t}\r\n\r\n\t\tmeta.dataset = meta.dataset || me.createMetaDataset();\r\n\t},\r\n\r\n\taddElementAndReset: function(index) {\r\n\t\tvar element = this.createMetaData(index);\r\n\t\tthis.getMeta().data.splice(index, 0, element);\r\n\t\tthis.updateElement(element, index, true);\r\n\t},\r\n\r\n\tbuildOrUpdateElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar data = dataset.data || (dataset.data = []);\r\n\r\n\t\t// In order to correctly handle data addition/deletion animation (an thus simulate\r\n\t\t// real-time charts), we need to monitor these data modifications and synchronize\r\n\t\t// the internal meta data accordingly.\r\n\t\tif (me._data !== data) {\r\n\t\t\tif (me._data) {\r\n\t\t\t\t// This case happens when the user replaced the data array instance.\r\n\t\t\t\tunlistenArrayEvents(me._data, me);\r\n\t\t\t}\r\n\r\n\t\t\tif (data && Object.isExtensible(data)) {\r\n\t\t\t\tlistenArrayEvents(data, me);\r\n\t\t\t}\r\n\t\t\tme._data = data;\r\n\t\t}\r\n\r\n\t\t// Re-sync meta data in case the user replaced the data array or if we missed\r\n\t\t// any updates and so make sure that we handle number of datapoints changing.\r\n\t\tme.resyncElements();\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the merged user-supplied and default dataset-level options\r\n\t * @private\r\n\t */\r\n\t_configure: function() {\r\n\t\tvar me = this;\r\n\t\tme._config = helpers$1.merge(Object.create(null), [\r\n\t\t\tme.chart.options.datasets[me._type],\r\n\t\t\tme.getDataset(),\r\n\t\t], {\r\n\t\t\tmerger: function(key, target, source) {\r\n\t\t\t\tif (key !== '_meta' && key !== 'data') {\r\n\t\t\t\t\thelpers$1._merger(key, target, source);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t_update: function(reset) {\r\n\t\tvar me = this;\r\n\t\tme._configure();\r\n\t\tme._cachedDataOpts = null;\r\n\t\tme.update(reset);\r\n\t},\r\n\r\n\tupdate: helpers$1.noop,\r\n\r\n\ttransition: function(easingValue) {\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar elements = meta.data || [];\r\n\t\tvar ilen = elements.length;\r\n\t\tvar i = 0;\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\telements[i].transition(easingValue);\r\n\t\t}\r\n\r\n\t\tif (meta.dataset) {\r\n\t\t\tmeta.dataset.transition(easingValue);\r\n\t\t}\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar elements = meta.data || [];\r\n\t\tvar ilen = elements.length;\r\n\t\tvar i = 0;\r\n\r\n\t\tif (meta.dataset) {\r\n\t\t\tmeta.dataset.draw();\r\n\t\t}\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\telements[i].draw();\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Returns a set of predefined style properties that should be used to represent the dataset\r\n\t * or the data if the index is specified\r\n\t * @param {number} index - data index\r\n\t * @return {IStyleInterface} style object\r\n\t */\r\n\tgetStyle: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar dataset = meta.dataset;\r\n\t\tvar style;\r\n\r\n\t\tme._configure();\r\n\t\tif (dataset && index === undefined) {\r\n\t\t\tstyle = me._resolveDatasetElementOptions(dataset || {});\r\n\t\t} else {\r\n\t\t\tindex = index || 0;\r\n\t\t\tstyle = me._resolveDataElementOptions(meta.data[index] || {}, index);\r\n\t\t}\r\n\r\n\t\tif (style.fill === false || style.fill === null) {\r\n\t\t\tstyle.backgroundColor = style.borderColor;\r\n\t\t}\r\n\r\n\t\treturn style;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function(element, hover) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar datasetOpts = me._config;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar options = chart.options.elements[me.datasetElementType.prototype._type] || {};\r\n\t\tvar elementOptions = me._datasetElementOptions;\r\n\t\tvar values = {};\r\n\t\tvar i, ilen, key, readKey;\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataset: me.getDataset(),\r\n\t\t\tdatasetIndex: me.index,\r\n\t\t\thover: hover\r\n\t\t};\r\n\r\n\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\r\n\t\t\tkey = elementOptions[i];\r\n\t\t\treadKey = hover ? 'hover' + key.charAt(0).toUpperCase() + key.slice(1) : key;\r\n\t\t\tvalues[key] = resolve([\r\n\t\t\t\tcustom[readKey],\r\n\t\t\t\tdatasetOpts[readKey],\r\n\t\t\t\toptions[readKey]\r\n\t\t\t], context);\r\n\t\t}\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function(element, index) {\r\n\t\tvar me = this;\r\n\t\tvar custom = element && element.custom;\r\n\t\tvar cached = me._cachedDataOpts;\r\n\t\tif (cached && !custom) {\r\n\t\t\treturn cached;\r\n\t\t}\r\n\t\tvar chart = me.chart;\r\n\t\tvar datasetOpts = me._config;\r\n\t\tvar options = chart.options.elements[me.dataElementType.prototype._type] || {};\r\n\t\tvar elementOptions = me._dataElementOptions;\r\n\t\tvar values = {};\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: me.getDataset(),\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\t// `resolve` sets cacheable to `false` if any option is indexed or scripted\r\n\t\tvar info = {cacheable: !custom};\r\n\r\n\t\tvar keys, i, ilen, key;\r\n\r\n\t\tcustom = custom || {};\r\n\r\n\t\tif (helpers$1.isArray(elementOptions)) {\r\n\t\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\r\n\t\t\t\tkey = elementOptions[i];\r\n\t\t\t\tvalues[key] = resolve([\r\n\t\t\t\t\tcustom[key],\r\n\t\t\t\t\tdatasetOpts[key],\r\n\t\t\t\t\toptions[key]\r\n\t\t\t\t], context, index, info);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tkeys = Object.keys(elementOptions);\r\n\t\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\t\t\tkey = keys[i];\r\n\t\t\t\tvalues[key] = resolve([\r\n\t\t\t\t\tcustom[key],\r\n\t\t\t\t\tdatasetOpts[elementOptions[key]],\r\n\t\t\t\t\tdatasetOpts[key],\r\n\t\t\t\t\toptions[key]\r\n\t\t\t\t], context, index, info);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (info.cacheable) {\r\n\t\t\tme._cachedDataOpts = Object.freeze(values);\r\n\t\t}\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tremoveHoverStyle: function(element) {\r\n\t\thelpers$1.merge(element._model, element.$previousStyle || {});\r\n\t\tdelete element.$previousStyle;\r\n\t},\r\n\r\n\tsetHoverStyle: function(element) {\r\n\t\tvar dataset = this.chart.data.datasets[element._datasetIndex];\r\n\t\tvar index = element._index;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar model = element._model;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\telement.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = resolve([custom.hoverBackgroundColor, dataset.hoverBackgroundColor, getHoverColor(model.backgroundColor)], undefined, index);\r\n\t\tmodel.borderColor = resolve([custom.hoverBorderColor, dataset.hoverBorderColor, getHoverColor(model.borderColor)], undefined, index);\r\n\t\tmodel.borderWidth = resolve([custom.hoverBorderWidth, dataset.hoverBorderWidth, model.borderWidth], undefined, index);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_removeDatasetHoverStyle: function() {\r\n\t\tvar element = this.getMeta().dataset;\r\n\r\n\t\tif (element) {\r\n\t\t\tthis.removeHoverStyle(element);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_setDatasetHoverStyle: function() {\r\n\t\tvar element = this.getMeta().dataset;\r\n\t\tvar prev = {};\r\n\t\tvar i, ilen, key, keys, hoverOptions, model;\r\n\r\n\t\tif (!element) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tmodel = element._model;\r\n\t\thoverOptions = this._resolveDatasetElementOptions(element, true);\r\n\r\n\t\tkeys = Object.keys(hoverOptions);\r\n\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\t\tkey = keys[i];\r\n\t\t\tprev[key] = model[key];\r\n\t\t\tmodel[key] = hoverOptions[key];\r\n\t\t}\r\n\r\n\t\telement.$previousStyle = prev;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tresyncElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar data = me.getDataset().data;\r\n\t\tvar numMeta = meta.data.length;\r\n\t\tvar numData = data.length;\r\n\r\n\t\tif (numData < numMeta) {\r\n\t\t\tmeta.data.splice(numData, numMeta - numData);\r\n\t\t} else if (numData > numMeta) {\r\n\t\t\tme.insertElements(numMeta, numData - numMeta);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tinsertElements: function(start, count) {\r\n\t\tfor (var i = 0; i < count; ++i) {\r\n\t\t\tthis.addElementAndReset(start + i);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataPush: function() {\r\n\t\tvar count = arguments.length;\r\n\t\tthis.insertElements(this.getDataset().data.length - count, count);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataPop: function() {\r\n\t\tthis.getMeta().data.pop();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataShift: function() {\r\n\t\tthis.getMeta().data.shift();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataSplice: function(start, count) {\r\n\t\tthis.getMeta().data.splice(start, count);\r\n\t\tthis.insertElements(start, arguments.length - 2);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataUnshift: function() {\r\n\t\tthis.insertElements(0, arguments.length);\r\n\t}\r\n});\r\n\r\nDatasetController.extend = helpers$1.inherits;\r\n\r\nvar core_datasetController = DatasetController;\n\nvar TAU = Math.PI * 2;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tarc: {\r\n\t\t\tbackgroundColor: core_defaults.global.defaultColor,\r\n\t\t\tborderColor: '#fff',\r\n\t\t\tborderWidth: 2,\r\n\t\t\tborderAlign: 'center'\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction clipArc(ctx, arc) {\r\n\tvar startAngle = arc.startAngle;\r\n\tvar endAngle = arc.endAngle;\r\n\tvar pixelMargin = arc.pixelMargin;\r\n\tvar angleMargin = pixelMargin / arc.outerRadius;\r\n\tvar x = arc.x;\r\n\tvar y = arc.y;\r\n\r\n\t// Draw an inner border by cliping the arc and drawing a double-width border\r\n\t// Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\r\n\tctx.beginPath();\r\n\tctx.arc(x, y, arc.outerRadius, startAngle - angleMargin, endAngle + angleMargin);\r\n\tif (arc.innerRadius > pixelMargin) {\r\n\t\tangleMargin = pixelMargin / arc.innerRadius;\r\n\t\tctx.arc(x, y, arc.innerRadius - pixelMargin, endAngle + angleMargin, startAngle - angleMargin, true);\r\n\t} else {\r\n\t\tctx.arc(x, y, pixelMargin, endAngle + Math.PI / 2, startAngle - Math.PI / 2);\r\n\t}\r\n\tctx.closePath();\r\n\tctx.clip();\r\n}\r\n\r\nfunction drawFullCircleBorders(ctx, vm, arc, inner) {\r\n\tvar endAngle = arc.endAngle;\r\n\tvar i;\r\n\r\n\tif (inner) {\r\n\t\tarc.endAngle = arc.startAngle + TAU;\r\n\t\tclipArc(ctx, arc);\r\n\t\tarc.endAngle = endAngle;\r\n\t\tif (arc.endAngle === arc.startAngle && arc.fullCircles) {\r\n\t\t\tarc.endAngle += TAU;\r\n\t\t\tarc.fullCircles--;\r\n\t\t}\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.startAngle + TAU, arc.startAngle, true);\r\n\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\tctx.stroke();\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.startAngle + TAU);\r\n\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\tctx.stroke();\r\n\t}\r\n}\r\n\r\nfunction drawBorder(ctx, vm, arc) {\r\n\tvar inner = vm.borderAlign === 'inner';\r\n\r\n\tif (inner) {\r\n\t\tctx.lineWidth = vm.borderWidth * 2;\r\n\t\tctx.lineJoin = 'round';\r\n\t} else {\r\n\t\tctx.lineWidth = vm.borderWidth;\r\n\t\tctx.lineJoin = 'bevel';\r\n\t}\r\n\r\n\tif (arc.fullCircles) {\r\n\t\tdrawFullCircleBorders(ctx, vm, arc, inner);\r\n\t}\r\n\r\n\tif (inner) {\r\n\t\tclipArc(ctx, arc);\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.endAngle);\r\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\tctx.closePath();\r\n\tctx.stroke();\r\n}\r\n\r\nvar element_arc = core_element.extend({\r\n\t_type: 'arc',\r\n\r\n\tinLabelRange: function(mouseX) {\r\n\t\tvar vm = this._view;\r\n\r\n\t\tif (vm) {\r\n\t\t\treturn (Math.pow(mouseX - vm.x, 2) < Math.pow(vm.radius + vm.hoverRadius, 2));\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\tinRange: function(chartX, chartY) {\r\n\t\tvar vm = this._view;\r\n\r\n\t\tif (vm) {\r\n\t\t\tvar pointRelativePosition = helpers$1.getAngleFromPoint(vm, {x: chartX, y: chartY});\r\n\t\t\tvar angle = pointRelativePosition.angle;\r\n\t\t\tvar distance = pointRelativePosition.distance;\r\n\r\n\t\t\t// Sanitise angle range\r\n\t\t\tvar startAngle = vm.startAngle;\r\n\t\t\tvar endAngle = vm.endAngle;\r\n\t\t\twhile (endAngle < startAngle) {\r\n\t\t\t\tendAngle += TAU;\r\n\t\t\t}\r\n\t\t\twhile (angle > endAngle) {\r\n\t\t\t\tangle -= TAU;\r\n\t\t\t}\r\n\t\t\twhile (angle < startAngle) {\r\n\t\t\t\tangle += TAU;\r\n\t\t\t}\r\n\r\n\t\t\t// Check if within the range of the open/close angle\r\n\t\t\tvar betweenAngles = (angle >= startAngle && angle <= endAngle);\r\n\t\t\tvar withinRadius = (distance >= vm.innerRadius && distance <= vm.outerRadius);\r\n\r\n\t\t\treturn (betweenAngles && withinRadius);\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar halfAngle = (vm.startAngle + vm.endAngle) / 2;\r\n\t\tvar halfRadius = (vm.innerRadius + vm.outerRadius) / 2;\r\n\t\treturn {\r\n\t\t\tx: vm.x + Math.cos(halfAngle) * halfRadius,\r\n\t\t\ty: vm.y + Math.sin(halfAngle) * halfRadius\r\n\t\t};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn Math.PI * ((vm.endAngle - vm.startAngle) / (2 * Math.PI)) * (Math.pow(vm.outerRadius, 2) - Math.pow(vm.innerRadius, 2));\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar centreAngle = vm.startAngle + ((vm.endAngle - vm.startAngle) / 2);\r\n\t\tvar rangeFromCentre = (vm.outerRadius - vm.innerRadius) / 2 + vm.innerRadius;\r\n\r\n\t\treturn {\r\n\t\t\tx: vm.x + (Math.cos(centreAngle) * rangeFromCentre),\r\n\t\t\ty: vm.y + (Math.sin(centreAngle) * rangeFromCentre)\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar vm = this._view;\r\n\t\tvar pixelMargin = (vm.borderAlign === 'inner') ? 0.33 : 0;\r\n\t\tvar arc = {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y,\r\n\t\t\tinnerRadius: vm.innerRadius,\r\n\t\t\touterRadius: Math.max(vm.outerRadius - pixelMargin, 0),\r\n\t\t\tpixelMargin: pixelMargin,\r\n\t\t\tstartAngle: vm.startAngle,\r\n\t\t\tendAngle: vm.endAngle,\r\n\t\t\tfullCircles: Math.floor(vm.circumference / TAU)\r\n\t\t};\r\n\t\tvar i;\r\n\r\n\t\tctx.save();\r\n\r\n\t\tctx.fillStyle = vm.backgroundColor;\r\n\t\tctx.strokeStyle = vm.borderColor;\r\n\r\n\t\tif (arc.fullCircles) {\r\n\t\t\tarc.endAngle = arc.startAngle + TAU;\r\n\t\t\tctx.beginPath();\r\n\t\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\r\n\t\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\t\t\tctx.closePath();\r\n\t\t\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\t\t\tctx.fill();\r\n\t\t\t}\r\n\t\t\tarc.endAngle = arc.startAngle + vm.circumference % TAU;\r\n\t\t}\r\n\r\n\t\tctx.beginPath();\r\n\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\r\n\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\t\tctx.closePath();\r\n\t\tctx.fill();\r\n\r\n\t\tif (vm.borderWidth) {\r\n\t\t\tdrawBorder(ctx, vm, arc);\r\n\t\t}\r\n\r\n\t\tctx.restore();\r\n\t}\r\n});\n\nvar valueOrDefault$1 = helpers$1.valueOrDefault;\r\n\r\nvar defaultColor = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tline: {\r\n\t\t\ttension: 0.4,\r\n\t\t\tbackgroundColor: defaultColor,\r\n\t\t\tborderWidth: 3,\r\n\t\t\tborderColor: defaultColor,\r\n\t\t\tborderCapStyle: 'butt',\r\n\t\t\tborderDash: [],\r\n\t\t\tborderDashOffset: 0.0,\r\n\t\t\tborderJoinStyle: 'miter',\r\n\t\t\tcapBezierPoints: true,\r\n\t\t\tfill: true, // do we fill in the area between the line and its base axis\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar element_line = core_element.extend({\r\n\t_type: 'line',\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar vm = me._view;\r\n\t\tvar ctx = me._chart.ctx;\r\n\t\tvar spanGaps = vm.spanGaps;\r\n\t\tvar points = me._children.slice(); // clone array\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar globalOptionLineElements = globalDefaults.elements.line;\r\n\t\tvar lastDrawnIndex = -1;\r\n\t\tvar closePath = me._loop;\r\n\t\tvar index, previous, currentVM;\r\n\r\n\t\tif (!points.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (me._loop) {\r\n\t\t\tfor (index = 0; index < points.length; ++index) {\r\n\t\t\t\tprevious = helpers$1.previousItem(points, index);\r\n\t\t\t\t// If the line has an open path, shift the point array\r\n\t\t\t\tif (!points[index]._view.skip && previous._view.skip) {\r\n\t\t\t\t\tpoints = points.slice(index).concat(points.slice(0, index));\r\n\t\t\t\t\tclosePath = spanGaps;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// If the line has a close path, add the first point again\r\n\t\t\tif (closePath) {\r\n\t\t\t\tpoints.push(points[0]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tctx.save();\r\n\r\n\t\t// Stroke Line Options\r\n\t\tctx.lineCap = vm.borderCapStyle || globalOptionLineElements.borderCapStyle;\r\n\r\n\t\t// IE 9 and 10 do not support line dash\r\n\t\tif (ctx.setLineDash) {\r\n\t\t\tctx.setLineDash(vm.borderDash || globalOptionLineElements.borderDash);\r\n\t\t}\r\n\r\n\t\tctx.lineDashOffset = valueOrDefault$1(vm.borderDashOffset, globalOptionLineElements.borderDashOffset);\r\n\t\tctx.lineJoin = vm.borderJoinStyle || globalOptionLineElements.borderJoinStyle;\r\n\t\tctx.lineWidth = valueOrDefault$1(vm.borderWidth, globalOptionLineElements.borderWidth);\r\n\t\tctx.strokeStyle = vm.borderColor || globalDefaults.defaultColor;\r\n\r\n\t\t// Stroke Line\r\n\t\tctx.beginPath();\r\n\r\n\t\t// First point moves to it's starting position no matter what\r\n\t\tcurrentVM = points[0]._view;\r\n\t\tif (!currentVM.skip) {\r\n\t\t\tctx.moveTo(currentVM.x, currentVM.y);\r\n\t\t\tlastDrawnIndex = 0;\r\n\t\t}\r\n\r\n\t\tfor (index = 1; index < points.length; ++index) {\r\n\t\t\tcurrentVM = points[index]._view;\r\n\t\t\tprevious = lastDrawnIndex === -1 ? helpers$1.previousItem(points, index) : points[lastDrawnIndex];\r\n\r\n\t\t\tif (!currentVM.skip) {\r\n\t\t\t\tif ((lastDrawnIndex !== (index - 1) && !spanGaps) || lastDrawnIndex === -1) {\r\n\t\t\t\t\t// There was a gap and this is the first point after the gap\r\n\t\t\t\t\tctx.moveTo(currentVM.x, currentVM.y);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Line to next point\r\n\t\t\t\t\thelpers$1.canvas.lineTo(ctx, previous._view, currentVM);\r\n\t\t\t\t}\r\n\t\t\t\tlastDrawnIndex = index;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (closePath) {\r\n\t\t\tctx.closePath();\r\n\t\t}\r\n\r\n\t\tctx.stroke();\r\n\t\tctx.restore();\r\n\t}\r\n});\n\nvar valueOrDefault$2 = helpers$1.valueOrDefault;\r\n\r\nvar defaultColor$1 = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tpoint: {\r\n\t\t\tradius: 3,\r\n\t\t\tpointStyle: 'circle',\r\n\t\t\tbackgroundColor: defaultColor$1,\r\n\t\t\tborderColor: defaultColor$1,\r\n\t\t\tborderWidth: 1,\r\n\t\t\t// Hover\r\n\t\t\thitRadius: 1,\r\n\t\t\thoverRadius: 4,\r\n\t\t\thoverBorderWidth: 1\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction xRange(mouseX) {\r\n\tvar vm = this._view;\r\n\treturn vm ? (Math.abs(mouseX - vm.x) < vm.radius + vm.hitRadius) : false;\r\n}\r\n\r\nfunction yRange(mouseY) {\r\n\tvar vm = this._view;\r\n\treturn vm ? (Math.abs(mouseY - vm.y) < vm.radius + vm.hitRadius) : false;\r\n}\r\n\r\nvar element_point = core_element.extend({\r\n\t_type: 'point',\r\n\r\n\tinRange: function(mouseX, mouseY) {\r\n\t\tvar vm = this._view;\r\n\t\treturn vm ? ((Math.pow(mouseX - vm.x, 2) + Math.pow(mouseY - vm.y, 2)) < Math.pow(vm.hitRadius + vm.radius, 2)) : false;\r\n\t},\r\n\r\n\tinLabelRange: xRange,\r\n\tinXRange: xRange,\r\n\tinYRange: yRange,\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y\r\n\t\t};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\treturn Math.PI * Math.pow(this._view.radius, 2);\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y,\r\n\t\t\tpadding: vm.radius + vm.borderWidth\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function(chartArea) {\r\n\t\tvar vm = this._view;\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar pointStyle = vm.pointStyle;\r\n\t\tvar rotation = vm.rotation;\r\n\t\tvar radius = vm.radius;\r\n\t\tvar x = vm.x;\r\n\t\tvar y = vm.y;\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar defaultColor = globalDefaults.defaultColor; // eslint-disable-line no-shadow\r\n\r\n\t\tif (vm.skip) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Clipping for Points.\r\n\t\tif (chartArea === undefined || helpers$1.canvas._isPointInArea(vm, chartArea)) {\r\n\t\t\tctx.strokeStyle = vm.borderColor || defaultColor;\r\n\t\t\tctx.lineWidth = valueOrDefault$2(vm.borderWidth, globalDefaults.elements.point.borderWidth);\r\n\t\t\tctx.fillStyle = vm.backgroundColor || defaultColor;\r\n\t\t\thelpers$1.canvas.drawPoint(ctx, pointStyle, radius, x, y, rotation);\r\n\t\t}\r\n\t}\r\n});\n\nvar defaultColor$2 = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\trectangle: {\r\n\t\t\tbackgroundColor: defaultColor$2,\r\n\t\t\tborderColor: defaultColor$2,\r\n\t\t\tborderSkipped: 'bottom',\r\n\t\t\tborderWidth: 0\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction isVertical(vm) {\r\n\treturn vm && vm.width !== undefined;\r\n}\r\n\r\n/**\r\n * Helper function to get the bounds of the bar regardless of the orientation\r\n * @param bar {Chart.Element.Rectangle} the bar\r\n * @return {Bounds} bounds of the bar\r\n * @private\r\n */\r\nfunction getBarBounds(vm) {\r\n\tvar x1, x2, y1, y2, half;\r\n\r\n\tif (isVertical(vm)) {\r\n\t\thalf = vm.width / 2;\r\n\t\tx1 = vm.x - half;\r\n\t\tx2 = vm.x + half;\r\n\t\ty1 = Math.min(vm.y, vm.base);\r\n\t\ty2 = Math.max(vm.y, vm.base);\r\n\t} else {\r\n\t\thalf = vm.height / 2;\r\n\t\tx1 = Math.min(vm.x, vm.base);\r\n\t\tx2 = Math.max(vm.x, vm.base);\r\n\t\ty1 = vm.y - half;\r\n\t\ty2 = vm.y + half;\r\n\t}\r\n\r\n\treturn {\r\n\t\tleft: x1,\r\n\t\ttop: y1,\r\n\t\tright: x2,\r\n\t\tbottom: y2\r\n\t};\r\n}\r\n\r\nfunction swap(orig, v1, v2) {\r\n\treturn orig === v1 ? v2 : orig === v2 ? v1 : orig;\r\n}\r\n\r\nfunction parseBorderSkipped(vm) {\r\n\tvar edge = vm.borderSkipped;\r\n\tvar res = {};\r\n\r\n\tif (!edge) {\r\n\t\treturn res;\r\n\t}\r\n\r\n\tif (vm.horizontal) {\r\n\t\tif (vm.base > vm.x) {\r\n\t\t\tedge = swap(edge, 'left', 'right');\r\n\t\t}\r\n\t} else if (vm.base < vm.y) {\r\n\t\tedge = swap(edge, 'bottom', 'top');\r\n\t}\r\n\r\n\tres[edge] = true;\r\n\treturn res;\r\n}\r\n\r\nfunction parseBorderWidth(vm, maxW, maxH) {\r\n\tvar value = vm.borderWidth;\r\n\tvar skip = parseBorderSkipped(vm);\r\n\tvar t, r, b, l;\r\n\r\n\tif (helpers$1.isObject(value)) {\r\n\t\tt = +value.top || 0;\r\n\t\tr = +value.right || 0;\r\n\t\tb = +value.bottom || 0;\r\n\t\tl = +value.left || 0;\r\n\t} else {\r\n\t\tt = r = b = l = +value || 0;\r\n\t}\r\n\r\n\treturn {\r\n\t\tt: skip.top || (t < 0) ? 0 : t > maxH ? maxH : t,\r\n\t\tr: skip.right || (r < 0) ? 0 : r > maxW ? maxW : r,\r\n\t\tb: skip.bottom || (b < 0) ? 0 : b > maxH ? maxH : b,\r\n\t\tl: skip.left || (l < 0) ? 0 : l > maxW ? maxW : l\r\n\t};\r\n}\r\n\r\nfunction boundingRects(vm) {\r\n\tvar bounds = getBarBounds(vm);\r\n\tvar width = bounds.right - bounds.left;\r\n\tvar height = bounds.bottom - bounds.top;\r\n\tvar border = parseBorderWidth(vm, width / 2, height / 2);\r\n\r\n\treturn {\r\n\t\touter: {\r\n\t\t\tx: bounds.left,\r\n\t\t\ty: bounds.top,\r\n\t\t\tw: width,\r\n\t\t\th: height\r\n\t\t},\r\n\t\tinner: {\r\n\t\t\tx: bounds.left + border.l,\r\n\t\t\ty: bounds.top + border.t,\r\n\t\t\tw: width - border.l - border.r,\r\n\t\t\th: height - border.t - border.b\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction inRange(vm, x, y) {\r\n\tvar skipX = x === null;\r\n\tvar skipY = y === null;\r\n\tvar bounds = !vm || (skipX && skipY) ? false : getBarBounds(vm);\r\n\r\n\treturn bounds\r\n\t\t&& (skipX || x >= bounds.left && x <= bounds.right)\r\n\t\t&& (skipY || y >= bounds.top && y <= bounds.bottom);\r\n}\r\n\r\nvar element_rectangle = core_element.extend({\r\n\t_type: 'rectangle',\r\n\r\n\tdraw: function() {\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar vm = this._view;\r\n\t\tvar rects = boundingRects(vm);\r\n\t\tvar outer = rects.outer;\r\n\t\tvar inner = rects.inner;\r\n\r\n\t\tctx.fillStyle = vm.backgroundColor;\r\n\t\tctx.fillRect(outer.x, outer.y, outer.w, outer.h);\r\n\r\n\t\tif (outer.w === inner.w && outer.h === inner.h) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.save();\r\n\t\tctx.beginPath();\r\n\t\tctx.rect(outer.x, outer.y, outer.w, outer.h);\r\n\t\tctx.clip();\r\n\t\tctx.fillStyle = vm.borderColor;\r\n\t\tctx.rect(inner.x, inner.y, inner.w, inner.h);\r\n\t\tctx.fill('evenodd');\r\n\t\tctx.restore();\r\n\t},\r\n\r\n\theight: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn vm.base - vm.y;\r\n\t},\r\n\r\n\tinRange: function(mouseX, mouseY) {\r\n\t\treturn inRange(this._view, mouseX, mouseY);\r\n\t},\r\n\r\n\tinLabelRange: function(mouseX, mouseY) {\r\n\t\tvar vm = this._view;\r\n\t\treturn isVertical(vm)\r\n\t\t\t? inRange(vm, mouseX, null)\r\n\t\t\t: inRange(vm, null, mouseY);\r\n\t},\r\n\r\n\tinXRange: function(mouseX) {\r\n\t\treturn inRange(this._view, mouseX, null);\r\n\t},\r\n\r\n\tinYRange: function(mouseY) {\r\n\t\treturn inRange(this._view, null, mouseY);\r\n\t},\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar x, y;\r\n\t\tif (isVertical(vm)) {\r\n\t\t\tx = vm.x;\r\n\t\t\ty = (vm.y + vm.base) / 2;\r\n\t\t} else {\r\n\t\t\tx = (vm.x + vm.base) / 2;\r\n\t\t\ty = vm.y;\r\n\t\t}\r\n\r\n\t\treturn {x: x, y: y};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\tvar vm = this._view;\r\n\r\n\t\treturn isVertical(vm)\r\n\t\t\t? vm.width * Math.abs(vm.y - vm.base)\r\n\t\t\t: vm.height * Math.abs(vm.x - vm.base);\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y\r\n\t\t};\r\n\t}\r\n});\n\nvar elements = {};\r\nvar Arc = element_arc;\r\nvar Line = element_line;\r\nvar Point = element_point;\r\nvar Rectangle = element_rectangle;\nelements.Arc = Arc;\nelements.Line = Line;\nelements.Point = Point;\nelements.Rectangle = Rectangle;\n\nvar deprecated = helpers$1._deprecated;\r\nvar valueOrDefault$3 = helpers$1.valueOrDefault;\r\n\r\ncore_defaults._set('bar', {\r\n\thover: {\r\n\t\tmode: 'label'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\toffset: true,\r\n\t\t\tgridLines: {\r\n\t\t\t\toffsetGridLines: true\r\n\t\t\t}\r\n\t\t}],\r\n\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear'\r\n\t\t}]\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\tbar: {\r\n\t\t\tcategoryPercentage: 0.8,\r\n\t\t\tbarPercentage: 0.9\r\n\t\t}\r\n\t}\r\n});\r\n\r\n/**\r\n * Computes the \"optimal\" sample size to maintain bars equally sized while preventing overlap.\r\n * @private\r\n */\r\nfunction computeMinSampleSize(scale, pixels) {\r\n\tvar min = scale._length;\r\n\tvar prev, curr, i, ilen;\r\n\r\n\tfor (i = 1, ilen = pixels.length; i < ilen; ++i) {\r\n\t\tmin = Math.min(min, Math.abs(pixels[i] - pixels[i - 1]));\r\n\t}\r\n\r\n\tfor (i = 0, ilen = scale.getTicks().length; i < ilen; ++i) {\r\n\t\tcurr = scale.getPixelForTick(i);\r\n\t\tmin = i > 0 ? Math.min(min, Math.abs(curr - prev)) : min;\r\n\t\tprev = curr;\r\n\t}\r\n\r\n\treturn min;\r\n}\r\n\r\n/**\r\n * Computes an \"ideal\" category based on the absolute bar thickness or, if undefined or null,\r\n * uses the smallest interval (see computeMinSampleSize) that prevents bar overlapping. This\r\n * mode currently always generates bars equally sized (until we introduce scriptable options?).\r\n * @private\r\n */\r\nfunction computeFitCategoryTraits(index, ruler, options) {\r\n\tvar thickness = options.barThickness;\r\n\tvar count = ruler.stackCount;\r\n\tvar curr = ruler.pixels[index];\r\n\tvar min = helpers$1.isNullOrUndef(thickness)\r\n\t\t? computeMinSampleSize(ruler.scale, ruler.pixels)\r\n\t\t: -1;\r\n\tvar size, ratio;\r\n\r\n\tif (helpers$1.isNullOrUndef(thickness)) {\r\n\t\tsize = min * options.categoryPercentage;\r\n\t\tratio = options.barPercentage;\r\n\t} else {\r\n\t\t// When bar thickness is enforced, category and bar percentages are ignored.\r\n\t\t// Note(SB): we could add support for relative bar thickness (e.g. barThickness: '50%')\r\n\t\t// and deprecate barPercentage since this value is ignored when thickness is absolute.\r\n\t\tsize = thickness * count;\r\n\t\tratio = 1;\r\n\t}\r\n\r\n\treturn {\r\n\t\tchunk: size / count,\r\n\t\tratio: ratio,\r\n\t\tstart: curr - (size / 2)\r\n\t};\r\n}\r\n\r\n/**\r\n * Computes an \"optimal\" category that globally arranges bars side by side (no gap when\r\n * percentage options are 1), based on the previous and following categories. This mode\r\n * generates bars with different widths when data are not evenly spaced.\r\n * @private\r\n */\r\nfunction computeFlexCategoryTraits(index, ruler, options) {\r\n\tvar pixels = ruler.pixels;\r\n\tvar curr = pixels[index];\r\n\tvar prev = index > 0 ? pixels[index - 1] : null;\r\n\tvar next = index < pixels.length - 1 ? pixels[index + 1] : null;\r\n\tvar percent = options.categoryPercentage;\r\n\tvar start, size;\r\n\r\n\tif (prev === null) {\r\n\t\t// first data: its size is double based on the next point or,\r\n\t\t// if it's also the last data, we use the scale size.\r\n\t\tprev = curr - (next === null ? ruler.end - ruler.start : next - curr);\r\n\t}\r\n\r\n\tif (next === null) {\r\n\t\t// last data: its size is also double based on the previous point.\r\n\t\tnext = curr + curr - prev;\r\n\t}\r\n\r\n\tstart = curr - (curr - Math.min(prev, next)) / 2 * percent;\r\n\tsize = Math.abs(next - prev) / 2 * percent;\r\n\r\n\treturn {\r\n\t\tchunk: size / ruler.stackCount,\r\n\t\tratio: options.barPercentage,\r\n\t\tstart: start\r\n\t};\r\n}\r\n\r\nvar controller_bar = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Rectangle,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderSkipped',\r\n\t\t'borderWidth',\r\n\t\t'barPercentage',\r\n\t\t'barThickness',\r\n\t\t'categoryPercentage',\r\n\t\t'maxBarThickness',\r\n\t\t'minBarLength'\r\n\t],\r\n\r\n\tinitialize: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta, scaleOpts;\r\n\r\n\t\tcore_datasetController.prototype.initialize.apply(me, arguments);\r\n\r\n\t\tmeta = me.getMeta();\r\n\t\tmeta.stack = me.getDataset().stack;\r\n\t\tmeta.bar = true;\r\n\r\n\t\tscaleOpts = me._getIndexScale().options;\r\n\t\tdeprecated('bar chart', scaleOpts.barPercentage, 'scales.[x/y]Axes.barPercentage', 'dataset.barPercentage');\r\n\t\tdeprecated('bar chart', scaleOpts.barThickness, 'scales.[x/y]Axes.barThickness', 'dataset.barThickness');\r\n\t\tdeprecated('bar chart', scaleOpts.categoryPercentage, 'scales.[x/y]Axes.categoryPercentage', 'dataset.categoryPercentage');\r\n\t\tdeprecated('bar chart', me._getValueScale().options.minBarLength, 'scales.[x/y]Axes.minBarLength', 'dataset.minBarLength');\r\n\t\tdeprecated('bar chart', scaleOpts.maxBarThickness, 'scales.[x/y]Axes.maxBarThickness', 'dataset.maxBarThickness');\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar rects = me.getMeta().data;\r\n\t\tvar i, ilen;\r\n\r\n\t\tme._ruler = me.getRuler();\r\n\r\n\t\tfor (i = 0, ilen = rects.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(rects[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(rectangle, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar options = me._resolveDataElementOptions(rectangle, index);\r\n\r\n\t\trectangle._xScale = me.getScaleForId(meta.xAxisID);\r\n\t\trectangle._yScale = me.getScaleForId(meta.yAxisID);\r\n\t\trectangle._datasetIndex = me.index;\r\n\t\trectangle._index = index;\r\n\t\trectangle._model = {\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderSkipped: options.borderSkipped,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\tdatasetLabel: dataset.label,\r\n\t\t\tlabel: me.chart.data.labels[index]\r\n\t\t};\r\n\r\n\t\tif (helpers$1.isArray(dataset.data[index])) {\r\n\t\t\trectangle._model.borderSkipped = null;\r\n\t\t}\r\n\r\n\t\tme._updateElementGeometry(rectangle, index, reset, options);\r\n\r\n\t\trectangle.pivot();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_updateElementGeometry: function(rectangle, index, reset, options) {\r\n\t\tvar me = this;\r\n\t\tvar model = rectangle._model;\r\n\t\tvar vscale = me._getValueScale();\r\n\t\tvar base = vscale.getBasePixel();\r\n\t\tvar horizontal = vscale.isHorizontal();\r\n\t\tvar ruler = me._ruler || me.getRuler();\r\n\t\tvar vpixels = me.calculateBarValuePixels(me.index, index, options);\r\n\t\tvar ipixels = me.calculateBarIndexPixels(me.index, index, ruler, options);\r\n\r\n\t\tmodel.horizontal = horizontal;\r\n\t\tmodel.base = reset ? base : vpixels.base;\r\n\t\tmodel.x = horizontal ? reset ? base : vpixels.head : ipixels.center;\r\n\t\tmodel.y = horizontal ? ipixels.center : reset ? base : vpixels.head;\r\n\t\tmodel.height = horizontal ? ipixels.size : undefined;\r\n\t\tmodel.width = horizontal ? undefined : ipixels.size;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the stacks based on groups and bar visibility.\r\n\t * @param {number} [last] - The dataset index\r\n\t * @returns {string[]} The list of stack IDs\r\n\t * @private\r\n\t */\r\n\t_getStacks: function(last) {\r\n\t\tvar me = this;\r\n\t\tvar scale = me._getIndexScale();\r\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\r\n\t\tvar stacked = scale.options.stacked;\r\n\t\tvar ilen = metasets.length;\r\n\t\tvar stacks = [];\r\n\t\tvar i, meta;\r\n\r\n\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\tmeta = metasets[i];\r\n\t\t\t// stacked | meta.stack\r\n\t\t\t// | found | not found | undefined\r\n\t\t\t// false | x | x | x\r\n\t\t\t// true | | x |\r\n\t\t\t// undefined | | x | x\r\n\t\t\tif (stacked === false || stacks.indexOf(meta.stack) === -1 ||\r\n\t\t\t\t(stacked === undefined && meta.stack === undefined)) {\r\n\t\t\t\tstacks.push(meta.stack);\r\n\t\t\t}\r\n\t\t\tif (meta.index === last) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn stacks;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the effective number of stacks based on groups and bar visibility.\r\n\t * @private\r\n\t */\r\n\tgetStackCount: function() {\r\n\t\treturn this._getStacks().length;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the stack index for the given dataset based on groups and bar visibility.\r\n\t * @param {number} [datasetIndex] - The dataset index\r\n\t * @param {string} [name] - The stack name to find\r\n\t * @returns {number} The stack index\r\n\t * @private\r\n\t */\r\n\tgetStackIndex: function(datasetIndex, name) {\r\n\t\tvar stacks = this._getStacks(datasetIndex);\r\n\t\tvar index = (name !== undefined)\r\n\t\t\t? stacks.indexOf(name)\r\n\t\t\t: -1; // indexOf returns -1 if element is not present\r\n\r\n\t\treturn (index === -1)\r\n\t\t\t? stacks.length - 1\r\n\t\t\t: index;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tgetRuler: function() {\r\n\t\tvar me = this;\r\n\t\tvar scale = me._getIndexScale();\r\n\t\tvar pixels = [];\r\n\t\tvar i, ilen;\r\n\r\n\t\tfor (i = 0, ilen = me.getMeta().data.length; i < ilen; ++i) {\r\n\t\t\tpixels.push(scale.getPixelForValue(null, i, me.index));\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tpixels: pixels,\r\n\t\t\tstart: scale._startPixel,\r\n\t\t\tend: scale._endPixel,\r\n\t\t\tstackCount: me.getStackCount(),\r\n\t\t\tscale: scale\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * Note: pixel values are not clamped to the scale area.\r\n\t * @private\r\n\t */\r\n\tcalculateBarValuePixels: function(datasetIndex, index, options) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar scale = me._getValueScale();\r\n\t\tvar isHorizontal = scale.isHorizontal();\r\n\t\tvar datasets = chart.data.datasets;\r\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\r\n\t\tvar value = scale._parseValue(datasets[datasetIndex].data[index]);\r\n\t\tvar minBarLength = options.minBarLength;\r\n\t\tvar stacked = scale.options.stacked;\r\n\t\tvar stack = me.getMeta().stack;\r\n\t\tvar start = value.start === undefined ? 0 : value.max >= 0 && value.min >= 0 ? value.min : value.max;\r\n\t\tvar length = value.start === undefined ? value.end : value.max >= 0 && value.min >= 0 ? value.max - value.min : value.min - value.max;\r\n\t\tvar ilen = metasets.length;\r\n\t\tvar i, imeta, ivalue, base, head, size, stackLength;\r\n\r\n\t\tif (stacked || (stacked === undefined && stack !== undefined)) {\r\n\t\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\t\timeta = metasets[i];\r\n\r\n\t\t\t\tif (imeta.index === datasetIndex) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (imeta.stack === stack) {\r\n\t\t\t\t\tstackLength = scale._parseValue(datasets[imeta.index].data[index]);\r\n\t\t\t\t\tivalue = stackLength.start === undefined ? stackLength.end : stackLength.min >= 0 && stackLength.max >= 0 ? stackLength.max : stackLength.min;\r\n\r\n\t\t\t\t\tif ((value.min < 0 && ivalue < 0) || (value.max >= 0 && ivalue > 0)) {\r\n\t\t\t\t\t\tstart += ivalue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tbase = scale.getPixelForValue(start);\r\n\t\thead = scale.getPixelForValue(start + length);\r\n\t\tsize = head - base;\r\n\r\n\t\tif (minBarLength !== undefined && Math.abs(size) < minBarLength) {\r\n\t\t\tsize = minBarLength;\r\n\t\t\tif (length >= 0 && !isHorizontal || length < 0 && isHorizontal) {\r\n\t\t\t\thead = base - minBarLength;\r\n\t\t\t} else {\r\n\t\t\t\thead = base + minBarLength;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tsize: size,\r\n\t\t\tbase: base,\r\n\t\t\thead: head,\r\n\t\t\tcenter: head + size / 2\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tcalculateBarIndexPixels: function(datasetIndex, index, ruler, options) {\r\n\t\tvar me = this;\r\n\t\tvar range = options.barThickness === 'flex'\r\n\t\t\t? computeFlexCategoryTraits(index, ruler, options)\r\n\t\t\t: computeFitCategoryTraits(index, ruler, options);\r\n\r\n\t\tvar stackIndex = me.getStackIndex(datasetIndex, me.getMeta().stack);\r\n\t\tvar center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\r\n\t\tvar size = Math.min(\r\n\t\t\tvalueOrDefault$3(options.maxBarThickness, Infinity),\r\n\t\t\trange.chunk * range.ratio);\r\n\r\n\t\treturn {\r\n\t\t\tbase: center - size / 2,\r\n\t\t\thead: center + size / 2,\r\n\t\t\tcenter: center,\r\n\t\t\tsize: size\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar scale = me._getValueScale();\r\n\t\tvar rects = me.getMeta().data;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar ilen = rects.length;\r\n\t\tvar i = 0;\r\n\r\n\t\thelpers$1.canvas.clipArea(chart.ctx, chart.chartArea);\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tvar val = scale._parseValue(dataset.data[i]);\r\n\t\t\tif (!isNaN(val.min) && !isNaN(val.max)) {\r\n\t\t\t\trects[i].draw();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\thelpers$1.canvas.unclipArea(chart.ctx);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function() {\r\n\t\tvar me = this;\r\n\t\tvar values = helpers$1.extend({}, core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments));\r\n\t\tvar indexOpts = me._getIndexScale().options;\r\n\t\tvar valueOpts = me._getValueScale().options;\r\n\r\n\t\tvalues.barPercentage = valueOrDefault$3(indexOpts.barPercentage, values.barPercentage);\r\n\t\tvalues.barThickness = valueOrDefault$3(indexOpts.barThickness, values.barThickness);\r\n\t\tvalues.categoryPercentage = valueOrDefault$3(indexOpts.categoryPercentage, values.categoryPercentage);\r\n\t\tvalues.maxBarThickness = valueOrDefault$3(indexOpts.maxBarThickness, values.maxBarThickness);\r\n\t\tvalues.minBarLength = valueOrDefault$3(valueOpts.minBarLength, values.minBarLength);\r\n\r\n\t\treturn values;\r\n\t}\r\n\r\n});\n\nvar valueOrDefault$4 = helpers$1.valueOrDefault;\r\nvar resolve$1 = helpers$1.options.resolve;\r\n\r\ncore_defaults._set('bubble', {\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'linear', // bubble should probably use a linear scale by default\r\n\t\t\tposition: 'bottom',\r\n\t\t\tid: 'x-axis-0' // need an ID so datasets can reference the scale\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'left',\r\n\t\t\tid: 'y-axis-0'\r\n\t\t}]\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\t// Title doesn't make sense for scatter since we format the data as a point\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(item, data) {\r\n\t\t\t\tvar datasetLabel = data.datasets[item.datasetIndex].label || '';\r\n\t\t\t\tvar dataPoint = data.datasets[item.datasetIndex].data[item.index];\r\n\t\t\t\treturn datasetLabel + ': (' + item.xLabel + ', ' + item.yLabel + ', ' + dataPoint.r + ')';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_bubble = core_datasetController.extend({\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tdataElementType: elements.Point,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t\t'hoverRadius',\r\n\t\t'hitRadius',\r\n\t\t'pointStyle',\r\n\t\t'rotation'\r\n\t],\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar points = meta.data;\r\n\r\n\t\t// Update Points\r\n\t\thelpers$1.each(points, function(point, index) {\r\n\t\t\tme.updateElement(point, index, reset);\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar xScale = me.getScaleForId(meta.xAxisID);\r\n\t\tvar yScale = me.getScaleForId(meta.yAxisID);\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\t\tvar data = me.getDataset().data[index];\r\n\t\tvar dsIndex = me.index;\r\n\r\n\t\tvar x = reset ? xScale.getPixelForDecimal(0.5) : xScale.getPixelForValue(typeof data === 'object' ? data : NaN, index, dsIndex);\r\n\t\tvar y = reset ? yScale.getBasePixel() : yScale.getPixelForValue(data, index, dsIndex);\r\n\r\n\t\tpoint._xScale = xScale;\r\n\t\tpoint._yScale = yScale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = dsIndex;\r\n\t\tpoint._index = index;\r\n\t\tpoint._model = {\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\thitRadius: options.hitRadius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tradius: reset ? 0 : options.radius,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\tx: x,\r\n\t\t\ty: y,\r\n\t\t};\r\n\r\n\t\tpoint.pivot();\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$4(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$4(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$4(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = options.radius + options.hoverRadius;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function(point, index) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar data = dataset.data[index] || {};\r\n\t\tvar values = core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments);\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: dataset,\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\t// In case values were cached (and thus frozen), we need to clone the values\r\n\t\tif (me._cachedDataOpts === values) {\r\n\t\t\tvalues = helpers$1.extend({}, values);\r\n\t\t}\r\n\r\n\t\t// Custom radius resolution\r\n\t\tvalues.radius = resolve$1([\r\n\t\t\tcustom.radius,\r\n\t\t\tdata.r,\r\n\t\t\tme._config.radius,\r\n\t\t\tchart.options.elements.point.radius\r\n\t\t], context, index);\r\n\r\n\t\treturn values;\r\n\t}\r\n});\n\nvar valueOrDefault$5 = helpers$1.valueOrDefault;\r\n\r\nvar PI$1 = Math.PI;\r\nvar DOUBLE_PI$1 = PI$1 * 2;\r\nvar HALF_PI$1 = PI$1 / 2;\r\n\r\ncore_defaults._set('doughnut', {\r\n\tanimation: {\r\n\t\t// Boolean - Whether we animate the rotation of the Doughnut\r\n\t\tanimateRotate: true,\r\n\t\t// Boolean - Whether we animate scaling the Doughnut from the centre\r\n\t\tanimateScale: false\r\n\t},\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\tlegendCallback: function(chart) {\r\n\t\tvar list = document.createElement('ul');\r\n\t\tvar data = chart.data;\r\n\t\tvar datasets = data.datasets;\r\n\t\tvar labels = data.labels;\r\n\t\tvar i, ilen, listItem, listItemSpan;\r\n\r\n\t\tlist.setAttribute('class', chart.id + '-legend');\r\n\t\tif (datasets.length) {\r\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\r\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\r\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\r\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\r\n\t\t\t\tif (labels[i]) {\r\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn list.outerHTML;\r\n\t},\r\n\tlegend: {\r\n\t\tlabels: {\r\n\t\t\tgenerateLabels: function(chart) {\r\n\t\t\t\tvar data = chart.data;\r\n\t\t\t\tif (data.labels.length && data.datasets.length) {\r\n\t\t\t\t\treturn data.labels.map(function(label, i) {\r\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\r\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\ttext: label,\r\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\r\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\r\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\r\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\r\n\r\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\r\n\t\t\t\t\t\t\tindex: i\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tonClick: function(e, legendItem) {\r\n\t\t\tvar index = legendItem.index;\r\n\t\t\tvar chart = this.chart;\r\n\t\t\tvar i, ilen, meta;\r\n\r\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\r\n\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\t// toggle visibility of index if exists\r\n\t\t\t\tif (meta.data[index]) {\r\n\t\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tchart.update();\r\n\t\t}\r\n\t},\r\n\r\n\t// The percentage of the chart that we cut out of the middle.\r\n\tcutoutPercentage: 50,\r\n\r\n\t// The rotation of the chart, where the first data arc begins.\r\n\trotation: -HALF_PI$1,\r\n\r\n\t// The total circumference of the chart.\r\n\tcircumference: DOUBLE_PI$1,\r\n\r\n\t// Need to override these to give a nice default\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(tooltipItem, data) {\r\n\t\t\t\tvar dataLabel = data.labels[tooltipItem.index];\r\n\t\t\t\tvar value = ': ' + data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];\r\n\r\n\t\t\t\tif (helpers$1.isArray(dataLabel)) {\r\n\t\t\t\t\t// show value on first line of multiline label\r\n\t\t\t\t\t// need to clone because we are changing the value\r\n\t\t\t\t\tdataLabel = dataLabel.slice();\r\n\t\t\t\t\tdataLabel[0] += value;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdataLabel += value;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn dataLabel;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_doughnut = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Arc,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'borderAlign',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t],\r\n\r\n\t// Get index of the dataset in relation to the visible datasets. This allows determining the inner and outer radius correctly\r\n\tgetRingIndex: function(datasetIndex) {\r\n\t\tvar ringIndex = 0;\r\n\r\n\t\tfor (var j = 0; j < datasetIndex; ++j) {\r\n\t\t\tif (this.chart.isDatasetVisible(j)) {\r\n\t\t\t\t++ringIndex;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn ringIndex;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar ratioX = 1;\r\n\t\tvar ratioY = 1;\r\n\t\tvar offsetX = 0;\r\n\t\tvar offsetY = 0;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar arcs = meta.data;\r\n\t\tvar cutout = opts.cutoutPercentage / 100 || 0;\r\n\t\tvar circumference = opts.circumference;\r\n\t\tvar chartWeight = me._getRingWeight(me.index);\r\n\t\tvar maxWidth, maxHeight, i, ilen;\r\n\r\n\t\t// If the chart's circumference isn't a full circle, calculate size as a ratio of the width/height of the arc\r\n\t\tif (circumference < DOUBLE_PI$1) {\r\n\t\t\tvar startAngle = opts.rotation % DOUBLE_PI$1;\r\n\t\t\tstartAngle += startAngle >= PI$1 ? -DOUBLE_PI$1 : startAngle < -PI$1 ? DOUBLE_PI$1 : 0;\r\n\t\t\tvar endAngle = startAngle + circumference;\r\n\t\t\tvar startX = Math.cos(startAngle);\r\n\t\t\tvar startY = Math.sin(startAngle);\r\n\t\t\tvar endX = Math.cos(endAngle);\r\n\t\t\tvar endY = Math.sin(endAngle);\r\n\t\t\tvar contains0 = (startAngle <= 0 && endAngle >= 0) || endAngle >= DOUBLE_PI$1;\r\n\t\t\tvar contains90 = (startAngle <= HALF_PI$1 && endAngle >= HALF_PI$1) || endAngle >= DOUBLE_PI$1 + HALF_PI$1;\r\n\t\t\tvar contains180 = startAngle === -PI$1 || endAngle >= PI$1;\r\n\t\t\tvar contains270 = (startAngle <= -HALF_PI$1 && endAngle >= -HALF_PI$1) || endAngle >= PI$1 + HALF_PI$1;\r\n\t\t\tvar minX = contains180 ? -1 : Math.min(startX, startX * cutout, endX, endX * cutout);\r\n\t\t\tvar minY = contains270 ? -1 : Math.min(startY, startY * cutout, endY, endY * cutout);\r\n\t\t\tvar maxX = contains0 ? 1 : Math.max(startX, startX * cutout, endX, endX * cutout);\r\n\t\t\tvar maxY = contains90 ? 1 : Math.max(startY, startY * cutout, endY, endY * cutout);\r\n\t\t\tratioX = (maxX - minX) / 2;\r\n\t\t\tratioY = (maxY - minY) / 2;\r\n\t\t\toffsetX = -(maxX + minX) / 2;\r\n\t\t\toffsetY = -(maxY + minY) / 2;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\r\n\t\t}\r\n\r\n\t\tchart.borderWidth = me.getMaxBorderWidth();\r\n\t\tmaxWidth = (chartArea.right - chartArea.left - chart.borderWidth) / ratioX;\r\n\t\tmaxHeight = (chartArea.bottom - chartArea.top - chart.borderWidth) / ratioY;\r\n\t\tchart.outerRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\r\n\t\tchart.innerRadius = Math.max(chart.outerRadius * cutout, 0);\r\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / (me._getVisibleDatasetWeightTotal() || 1);\r\n\t\tchart.offsetX = offsetX * chart.outerRadius;\r\n\t\tchart.offsetY = offsetY * chart.outerRadius;\r\n\r\n\t\tmeta.total = me.calculateTotal();\r\n\r\n\t\tme.outerRadius = chart.outerRadius - chart.radiusLength * me._getRingWeightOffset(me.index);\r\n\t\tme.innerRadius = Math.max(me.outerRadius - chart.radiusLength * chartWeight, 0);\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(arcs[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(arc, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar animationOpts = opts.animation;\r\n\t\tvar centerX = (chartArea.left + chartArea.right) / 2;\r\n\t\tvar centerY = (chartArea.top + chartArea.bottom) / 2;\r\n\t\tvar startAngle = opts.rotation; // non reset case handled later\r\n\t\tvar endAngle = opts.rotation; // non reset case handled later\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar circumference = reset && animationOpts.animateRotate ? 0 : arc.hidden ? 0 : me.calculateCircumference(dataset.data[index]) * (opts.circumference / DOUBLE_PI$1);\r\n\t\tvar innerRadius = reset && animationOpts.animateScale ? 0 : me.innerRadius;\r\n\t\tvar outerRadius = reset && animationOpts.animateScale ? 0 : me.outerRadius;\r\n\t\tvar options = arc._options || {};\r\n\r\n\t\thelpers$1.extend(arc, {\r\n\t\t\t// Utility\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index,\r\n\r\n\t\t\t// Desired view properties\r\n\t\t\t_model: {\r\n\t\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\t\tborderColor: options.borderColor,\r\n\t\t\t\tborderWidth: options.borderWidth,\r\n\t\t\t\tborderAlign: options.borderAlign,\r\n\t\t\t\tx: centerX + chart.offsetX,\r\n\t\t\t\ty: centerY + chart.offsetY,\r\n\t\t\t\tstartAngle: startAngle,\r\n\t\t\t\tendAngle: endAngle,\r\n\t\t\t\tcircumference: circumference,\r\n\t\t\t\touterRadius: outerRadius,\r\n\t\t\t\tinnerRadius: innerRadius,\r\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(dataset.label, index, chart.data.labels[index])\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tvar model = arc._model;\r\n\r\n\t\t// Set correct angles if not resetting\r\n\t\tif (!reset || !animationOpts.animateRotate) {\r\n\t\t\tif (index === 0) {\r\n\t\t\t\tmodel.startAngle = opts.rotation;\r\n\t\t\t} else {\r\n\t\t\t\tmodel.startAngle = me.getMeta().data[index - 1]._model.endAngle;\r\n\t\t\t}\r\n\r\n\t\t\tmodel.endAngle = model.startAngle + model.circumference;\r\n\t\t}\r\n\r\n\t\tarc.pivot();\r\n\t},\r\n\r\n\tcalculateTotal: function() {\r\n\t\tvar dataset = this.getDataset();\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar total = 0;\r\n\t\tvar value;\r\n\r\n\t\thelpers$1.each(meta.data, function(element, index) {\r\n\t\t\tvalue = dataset.data[index];\r\n\t\t\tif (!isNaN(value) && !element.hidden) {\r\n\t\t\t\ttotal += Math.abs(value);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t/* if (total === 0) {\r\n\t\t\ttotal = NaN;\r\n\t\t}*/\r\n\r\n\t\treturn total;\r\n\t},\r\n\r\n\tcalculateCircumference: function(value) {\r\n\t\tvar total = this.getMeta().total;\r\n\t\tif (total > 0 && !isNaN(value)) {\r\n\t\t\treturn DOUBLE_PI$1 * (Math.abs(value) / total);\r\n\t\t}\r\n\t\treturn 0;\r\n\t},\r\n\r\n\t// gets the max border or hover width to properly scale pie charts\r\n\tgetMaxBorderWidth: function(arcs) {\r\n\t\tvar me = this;\r\n\t\tvar max = 0;\r\n\t\tvar chart = me.chart;\r\n\t\tvar i, ilen, meta, arc, controller, options, borderWidth, hoverWidth;\r\n\r\n\t\tif (!arcs) {\r\n\t\t\t// Find the outmost visible dataset\r\n\t\t\tfor (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\r\n\t\t\t\tif (chart.isDatasetVisible(i)) {\r\n\t\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\t\tarcs = meta.data;\r\n\t\t\t\t\tif (i !== me.index) {\r\n\t\t\t\t\t\tcontroller = meta.controller;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!arcs) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarc = arcs[i];\r\n\t\t\tif (controller) {\r\n\t\t\t\tcontroller._configure();\r\n\t\t\t\toptions = controller._resolveDataElementOptions(arc, i);\r\n\t\t\t} else {\r\n\t\t\t\toptions = arc._options;\r\n\t\t\t}\r\n\t\t\tif (options.borderAlign !== 'inner') {\r\n\t\t\t\tborderWidth = options.borderWidth;\r\n\t\t\t\thoverWidth = options.hoverBorderWidth;\r\n\r\n\t\t\t\tmax = borderWidth > max ? borderWidth : max;\r\n\t\t\t\tmax = hoverWidth > max ? hoverWidth : max;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn max;\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(arc) {\r\n\t\tvar model = arc._model;\r\n\t\tvar options = arc._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tarc.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$5(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$5(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$5(options.hoverBorderWidth, options.borderWidth);\r\n\t},\r\n\r\n\t/**\r\n\t * Get radius length offset of the dataset in relation to the visible datasets weights. This allows determining the inner and outer radius correctly\r\n\t * @private\r\n\t */\r\n\t_getRingWeightOffset: function(datasetIndex) {\r\n\t\tvar ringWeightOffset = 0;\r\n\r\n\t\tfor (var i = 0; i < datasetIndex; ++i) {\r\n\t\t\tif (this.chart.isDatasetVisible(i)) {\r\n\t\t\t\tringWeightOffset += this._getRingWeight(i);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn ringWeightOffset;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getRingWeight: function(dataSetIndex) {\r\n\t\treturn Math.max(valueOrDefault$5(this.chart.data.datasets[dataSetIndex].weight, 1), 0);\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the sum of all visibile data set weights. This value can be 0.\r\n\t * @private\r\n\t */\r\n\t_getVisibleDatasetWeightTotal: function() {\r\n\t\treturn this._getRingWeightOffset(this.chart.data.datasets.length);\r\n\t}\r\n});\n\ncore_defaults._set('horizontalBar', {\r\n\thover: {\r\n\t\tmode: 'index',\r\n\t\taxis: 'y'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'bottom'\r\n\t\t}],\r\n\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\tposition: 'left',\r\n\t\t\toffset: true,\r\n\t\t\tgridLines: {\r\n\t\t\t\toffsetGridLines: true\r\n\t\t\t}\r\n\t\t}]\r\n\t},\r\n\r\n\telements: {\r\n\t\trectangle: {\r\n\t\t\tborderSkipped: 'left'\r\n\t\t}\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tmode: 'index',\r\n\t\taxis: 'y'\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\thorizontalBar: {\r\n\t\t\tcategoryPercentage: 0.8,\r\n\t\t\tbarPercentage: 0.9\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_horizontalBar = controller_bar.extend({\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.getMeta().xAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.getMeta().yAxisID;\r\n\t}\r\n});\n\nvar valueOrDefault$6 = helpers$1.valueOrDefault;\r\nvar resolve$2 = helpers$1.options.resolve;\r\nvar isPointInArea = helpers$1.canvas._isPointInArea;\r\n\r\ncore_defaults._set('line', {\r\n\tshowLines: true,\r\n\tspanGaps: false,\r\n\r\n\thover: {\r\n\t\tmode: 'label'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\tid: 'x-axis-0'\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tid: 'y-axis-0'\r\n\t\t}]\r\n\t}\r\n});\r\n\r\nfunction scaleClip(scale, halfBorderWidth) {\r\n\tvar tickOpts = scale && scale.options.ticks || {};\r\n\tvar reverse = tickOpts.reverse;\r\n\tvar min = tickOpts.min === undefined ? halfBorderWidth : 0;\r\n\tvar max = tickOpts.max === undefined ? halfBorderWidth : 0;\r\n\treturn {\r\n\t\tstart: reverse ? max : min,\r\n\t\tend: reverse ? min : max\r\n\t};\r\n}\r\n\r\nfunction defaultClip(xScale, yScale, borderWidth) {\r\n\tvar halfBorderWidth = borderWidth / 2;\r\n\tvar x = scaleClip(xScale, halfBorderWidth);\r\n\tvar y = scaleClip(yScale, halfBorderWidth);\r\n\r\n\treturn {\r\n\t\ttop: y.end,\r\n\t\tright: x.end,\r\n\t\tbottom: y.start,\r\n\t\tleft: x.start\r\n\t};\r\n}\r\n\r\nfunction toClip(value) {\r\n\tvar t, r, b, l;\r\n\r\n\tif (helpers$1.isObject(value)) {\r\n\t\tt = value.top;\r\n\t\tr = value.right;\r\n\t\tb = value.bottom;\r\n\t\tl = value.left;\r\n\t} else {\r\n\t\tt = r = b = l = value;\r\n\t}\r\n\r\n\treturn {\r\n\t\ttop: t,\r\n\t\tright: r,\r\n\t\tbottom: b,\r\n\t\tleft: l\r\n\t};\r\n}\r\n\r\n\r\nvar controller_line = core_datasetController.extend({\r\n\r\n\tdatasetElementType: elements.Line,\r\n\r\n\tdataElementType: elements.Point,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderColor',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'borderWidth',\r\n\t\t'cubicInterpolationMode',\r\n\t\t'fill'\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: {\r\n\t\tbackgroundColor: 'pointBackgroundColor',\r\n\t\tborderColor: 'pointBorderColor',\r\n\t\tborderWidth: 'pointBorderWidth',\r\n\t\thitRadius: 'pointHitRadius',\r\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\r\n\t\thoverBorderColor: 'pointHoverBorderColor',\r\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\r\n\t\thoverRadius: 'pointHoverRadius',\r\n\t\tpointStyle: 'pointStyle',\r\n\t\tradius: 'pointRadius',\r\n\t\trotation: 'pointRotation'\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar line = meta.dataset;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar options = me.chart.options;\r\n\t\tvar config = me._config;\r\n\t\tvar showLine = me._showLine = valueOrDefault$6(config.showLine, options.showLines);\r\n\t\tvar i, ilen;\r\n\r\n\t\tme._xScale = me.getScaleForId(meta.xAxisID);\r\n\t\tme._yScale = me.getScaleForId(meta.yAxisID);\r\n\r\n\t\t// Update Line\r\n\t\tif (showLine) {\r\n\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\t\tif (config.tension !== undefined && config.lineTension === undefined) {\r\n\t\t\t\tconfig.lineTension = config.tension;\r\n\t\t\t}\r\n\r\n\t\t\t// Utility\r\n\t\t\tline._scale = me._yScale;\r\n\t\t\tline._datasetIndex = me.index;\r\n\t\t\t// Data\r\n\t\t\tline._children = points;\r\n\t\t\t// Model\r\n\t\t\tline._model = me._resolveDatasetElementOptions(line);\r\n\r\n\t\t\tline.pivot();\r\n\t\t}\r\n\r\n\t\t// Update Points\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(points[i], i, reset);\r\n\t\t}\r\n\r\n\t\tif (showLine && line._model.tension !== 0) {\r\n\t\t\tme.updateBezierControlPoints();\r\n\t\t}\r\n\r\n\t\t// Now pivot the point for animation\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tpoints[i].pivot();\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar datasetIndex = me.index;\r\n\t\tvar value = dataset.data[index];\r\n\t\tvar xScale = me._xScale;\r\n\t\tvar yScale = me._yScale;\r\n\t\tvar lineModel = meta.dataset._model;\r\n\t\tvar x, y;\r\n\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\r\n\t\tx = xScale.getPixelForValue(typeof value === 'object' ? value : NaN, index, datasetIndex);\r\n\t\ty = reset ? yScale.getBasePixel() : me.calculatePointY(value, index, datasetIndex);\r\n\r\n\t\t// Utility\r\n\t\tpoint._xScale = xScale;\r\n\t\tpoint._yScale = yScale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = datasetIndex;\r\n\t\tpoint._index = index;\r\n\r\n\t\t// Desired view properties\r\n\t\tpoint._model = {\r\n\t\t\tx: x,\r\n\t\t\ty: y,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\t// Appearance\r\n\t\t\tradius: options.radius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\ttension: valueOrDefault$6(custom.tension, lineModel ? lineModel.tension : 0),\r\n\t\t\tsteppedLine: lineModel ? lineModel.steppedLine : false,\r\n\t\t\t// Tooltip\r\n\t\t\thitRadius: options.hitRadius\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function(element) {\r\n\t\tvar me = this;\r\n\t\tvar config = me._config;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar options = me.chart.options;\r\n\t\tvar lineOptions = options.elements.line;\r\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\r\n\r\n\t\t// The default behavior of lines is to break at null values, according\r\n\t\t// to https://github.com/chartjs/Chart.js/issues/2435#issuecomment-216718158\r\n\t\t// This option gives lines the ability to span gaps\r\n\t\tvalues.spanGaps = valueOrDefault$6(config.spanGaps, options.spanGaps);\r\n\t\tvalues.tension = valueOrDefault$6(config.lineTension, lineOptions.tension);\r\n\t\tvalues.steppedLine = resolve$2([custom.steppedLine, config.steppedLine, lineOptions.stepped]);\r\n\t\tvalues.clip = toClip(valueOrDefault$6(config.clip, defaultClip(me._xScale, me._yScale, values.borderWidth)));\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tcalculatePointY: function(value, index, datasetIndex) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar yScale = me._yScale;\r\n\t\tvar sumPos = 0;\r\n\t\tvar sumNeg = 0;\r\n\t\tvar i, ds, dsMeta, stackedRightValue, rightValue, metasets, ilen;\r\n\r\n\t\tif (yScale.options.stacked) {\r\n\t\t\trightValue = +yScale.getRightValue(value);\r\n\t\t\tmetasets = chart._getSortedVisibleDatasetMetas();\r\n\t\t\tilen = metasets.length;\r\n\r\n\t\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\t\tdsMeta = metasets[i];\r\n\t\t\t\tif (dsMeta.index === datasetIndex) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tds = chart.data.datasets[dsMeta.index];\r\n\t\t\t\tif (dsMeta.type === 'line' && dsMeta.yAxisID === yScale.id) {\r\n\t\t\t\t\tstackedRightValue = +yScale.getRightValue(ds.data[index]);\r\n\t\t\t\t\tif (stackedRightValue < 0) {\r\n\t\t\t\t\t\tsumNeg += stackedRightValue || 0;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tsumPos += stackedRightValue || 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (rightValue < 0) {\r\n\t\t\t\treturn yScale.getPixelForValue(sumNeg + rightValue);\r\n\t\t\t}\r\n\t\t\treturn yScale.getPixelForValue(sumPos + rightValue);\r\n\t\t}\r\n\t\treturn yScale.getPixelForValue(value);\r\n\t},\r\n\r\n\tupdateBezierControlPoints: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar lineModel = meta.dataset._model;\r\n\t\tvar area = chart.chartArea;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar i, ilen, model, controlPoints;\r\n\r\n\t\t// Only consider points that are drawn in case the spanGaps option is used\r\n\t\tif (lineModel.spanGaps) {\r\n\t\t\tpoints = points.filter(function(pt) {\r\n\t\t\t\treturn !pt._model.skip;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction capControlPoint(pt, min, max) {\r\n\t\t\treturn Math.max(Math.min(pt, max), min);\r\n\t\t}\r\n\r\n\t\tif (lineModel.cubicInterpolationMode === 'monotone') {\r\n\t\t\thelpers$1.splineCurveMonotone(points);\r\n\t\t} else {\r\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\t\tmodel = points[i]._model;\r\n\t\t\t\tcontrolPoints = helpers$1.splineCurve(\r\n\t\t\t\t\thelpers$1.previousItem(points, i)._model,\r\n\t\t\t\t\tmodel,\r\n\t\t\t\t\thelpers$1.nextItem(points, i)._model,\r\n\t\t\t\t\tlineModel.tension\r\n\t\t\t\t);\r\n\t\t\t\tmodel.controlPointPreviousX = controlPoints.previous.x;\r\n\t\t\t\tmodel.controlPointPreviousY = controlPoints.previous.y;\r\n\t\t\t\tmodel.controlPointNextX = controlPoints.next.x;\r\n\t\t\t\tmodel.controlPointNextY = controlPoints.next.y;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (chart.options.elements.line.capBezierPoints) {\r\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\t\tmodel = points[i]._model;\r\n\t\t\t\tif (isPointInArea(model, area)) {\r\n\t\t\t\t\tif (i > 0 && isPointInArea(points[i - 1]._model, area)) {\r\n\t\t\t\t\t\tmodel.controlPointPreviousX = capControlPoint(model.controlPointPreviousX, area.left, area.right);\r\n\t\t\t\t\t\tmodel.controlPointPreviousY = capControlPoint(model.controlPointPreviousY, area.top, area.bottom);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (i < points.length - 1 && isPointInArea(points[i + 1]._model, area)) {\r\n\t\t\t\t\t\tmodel.controlPointNextX = capControlPoint(model.controlPointNextX, area.left, area.right);\r\n\t\t\t\t\t\tmodel.controlPointNextY = capControlPoint(model.controlPointNextY, area.top, area.bottom);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar points = meta.data || [];\r\n\t\tvar area = chart.chartArea;\r\n\t\tvar canvas = chart.canvas;\r\n\t\tvar i = 0;\r\n\t\tvar ilen = points.length;\r\n\t\tvar clip;\r\n\r\n\t\tif (me._showLine) {\r\n\t\t\tclip = meta.dataset._model.clip;\r\n\r\n\t\t\thelpers$1.canvas.clipArea(chart.ctx, {\r\n\t\t\t\tleft: clip.left === false ? 0 : area.left - clip.left,\r\n\t\t\t\tright: clip.right === false ? canvas.width : area.right + clip.right,\r\n\t\t\t\ttop: clip.top === false ? 0 : area.top - clip.top,\r\n\t\t\t\tbottom: clip.bottom === false ? canvas.height : area.bottom + clip.bottom\r\n\t\t\t});\r\n\r\n\t\t\tmeta.dataset.draw();\r\n\r\n\t\t\thelpers$1.canvas.unclipArea(chart.ctx);\r\n\t\t}\r\n\r\n\t\t// Draw the points\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tpoints[i].draw(area);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$6(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$6(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$6(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = valueOrDefault$6(options.hoverRadius, options.radius);\r\n\t},\r\n});\n\nvar resolve$3 = helpers$1.options.resolve;\r\n\r\ncore_defaults._set('polarArea', {\r\n\tscale: {\r\n\t\ttype: 'radialLinear',\r\n\t\tangleLines: {\r\n\t\t\tdisplay: false\r\n\t\t},\r\n\t\tgridLines: {\r\n\t\t\tcircular: true\r\n\t\t},\r\n\t\tpointLabels: {\r\n\t\t\tdisplay: false\r\n\t\t},\r\n\t\tticks: {\r\n\t\t\tbeginAtZero: true\r\n\t\t}\r\n\t},\r\n\r\n\t// Boolean - Whether to animate the rotation of the chart\r\n\tanimation: {\r\n\t\tanimateRotate: true,\r\n\t\tanimateScale: true\r\n\t},\r\n\r\n\tstartAngle: -0.5 * Math.PI,\r\n\tlegendCallback: function(chart) {\r\n\t\tvar list = document.createElement('ul');\r\n\t\tvar data = chart.data;\r\n\t\tvar datasets = data.datasets;\r\n\t\tvar labels = data.labels;\r\n\t\tvar i, ilen, listItem, listItemSpan;\r\n\r\n\t\tlist.setAttribute('class', chart.id + '-legend');\r\n\t\tif (datasets.length) {\r\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\r\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\r\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\r\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\r\n\t\t\t\tif (labels[i]) {\r\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn list.outerHTML;\r\n\t},\r\n\tlegend: {\r\n\t\tlabels: {\r\n\t\t\tgenerateLabels: function(chart) {\r\n\t\t\t\tvar data = chart.data;\r\n\t\t\t\tif (data.labels.length && data.datasets.length) {\r\n\t\t\t\t\treturn data.labels.map(function(label, i) {\r\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\r\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\ttext: label,\r\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\r\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\r\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\r\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\r\n\r\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\r\n\t\t\t\t\t\t\tindex: i\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tonClick: function(e, legendItem) {\r\n\t\t\tvar index = legendItem.index;\r\n\t\t\tvar chart = this.chart;\r\n\t\t\tvar i, ilen, meta;\r\n\r\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\r\n\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\r\n\t\t\t}\r\n\r\n\t\t\tchart.update();\r\n\t\t}\r\n\t},\r\n\r\n\t// Need to override these to give a nice default\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(item, data) {\r\n\t\t\t\treturn data.labels[item.index] + ': ' + item.yLabel;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_polarArea = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Arc,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'borderAlign',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar start = me.chart.options.startAngle || 0;\r\n\t\tvar starts = me._starts = [];\r\n\t\tvar angles = me._angles = [];\r\n\t\tvar arcs = meta.data;\r\n\t\tvar i, ilen, angle;\r\n\r\n\t\tme._updateRadius();\r\n\r\n\t\tmeta.count = me.countVisibleElements();\r\n\r\n\t\tfor (i = 0, ilen = dataset.data.length; i < ilen; i++) {\r\n\t\t\tstarts[i] = start;\r\n\t\t\tangle = me._computeAngle(i);\r\n\t\t\tangles[i] = angle;\r\n\t\t\tstart += angle;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\r\n\t\t\tme.updateElement(arcs[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_updateRadius: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\r\n\r\n\t\tchart.outerRadius = Math.max(minSize / 2, 0);\r\n\t\tchart.innerRadius = Math.max(opts.cutoutPercentage ? (chart.outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\r\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\r\n\r\n\t\tme.outerRadius = chart.outerRadius - (chart.radiusLength * me.index);\r\n\t\tme.innerRadius = me.outerRadius - chart.radiusLength;\r\n\t},\r\n\r\n\tupdateElement: function(arc, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar opts = chart.options;\r\n\t\tvar animationOpts = opts.animation;\r\n\t\tvar scale = chart.scale;\r\n\t\tvar labels = chart.data.labels;\r\n\r\n\t\tvar centerX = scale.xCenter;\r\n\t\tvar centerY = scale.yCenter;\r\n\r\n\t\t// var negHalfPI = -0.5 * Math.PI;\r\n\t\tvar datasetStartAngle = opts.startAngle;\r\n\t\tvar distance = arc.hidden ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\r\n\t\tvar startAngle = me._starts[index];\r\n\t\tvar endAngle = startAngle + (arc.hidden ? 0 : me._angles[index]);\r\n\r\n\t\tvar resetRadius = animationOpts.animateScale ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\r\n\t\tvar options = arc._options || {};\r\n\r\n\t\thelpers$1.extend(arc, {\r\n\t\t\t// Utility\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index,\r\n\t\t\t_scale: scale,\r\n\r\n\t\t\t// Desired view properties\r\n\t\t\t_model: {\r\n\t\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\t\tborderColor: options.borderColor,\r\n\t\t\t\tborderWidth: options.borderWidth,\r\n\t\t\t\tborderAlign: options.borderAlign,\r\n\t\t\t\tx: centerX,\r\n\t\t\t\ty: centerY,\r\n\t\t\t\tinnerRadius: 0,\r\n\t\t\t\touterRadius: reset ? resetRadius : distance,\r\n\t\t\t\tstartAngle: reset && animationOpts.animateRotate ? datasetStartAngle : startAngle,\r\n\t\t\t\tendAngle: reset && animationOpts.animateRotate ? datasetStartAngle : endAngle,\r\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(labels, index, labels[index])\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tarc.pivot();\r\n\t},\r\n\r\n\tcountVisibleElements: function() {\r\n\t\tvar dataset = this.getDataset();\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar count = 0;\r\n\r\n\t\thelpers$1.each(meta.data, function(element, index) {\r\n\t\t\tif (!isNaN(dataset.data[index]) && !element.hidden) {\r\n\t\t\t\tcount++;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn count;\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(arc) {\r\n\t\tvar model = arc._model;\r\n\t\tvar options = arc._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\t\tvar valueOrDefault = helpers$1.valueOrDefault;\r\n\r\n\t\tarc.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault(options.hoverBorderWidth, options.borderWidth);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_computeAngle: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar count = this.getMeta().count;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar meta = me.getMeta();\r\n\r\n\t\tif (isNaN(dataset.data[index]) || meta.data[index].hidden) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: me.chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: dataset,\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\treturn resolve$3([\r\n\t\t\tme.chart.options.elements.arc.angle,\r\n\t\t\t(2 * Math.PI) / count\r\n\t\t], context, index);\r\n\t}\r\n});\n\ncore_defaults._set('pie', helpers$1.clone(core_defaults.doughnut));\r\ncore_defaults._set('pie', {\r\n\tcutoutPercentage: 0\r\n});\r\n\r\n// Pie charts are Doughnut chart with different defaults\r\nvar controller_pie = controller_doughnut;\n\nvar valueOrDefault$7 = helpers$1.valueOrDefault;\r\n\r\ncore_defaults._set('radar', {\r\n\tspanGaps: false,\r\n\tscale: {\r\n\t\ttype: 'radialLinear'\r\n\t},\r\n\telements: {\r\n\t\tline: {\r\n\t\t\tfill: 'start',\r\n\t\t\ttension: 0 // no bezier in radar\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_radar = core_datasetController.extend({\r\n\tdatasetElementType: elements.Line,\r\n\r\n\tdataElementType: elements.Point,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderWidth',\r\n\t\t'borderColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'fill'\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: {\r\n\t\tbackgroundColor: 'pointBackgroundColor',\r\n\t\tborderColor: 'pointBorderColor',\r\n\t\tborderWidth: 'pointBorderWidth',\r\n\t\thitRadius: 'pointHitRadius',\r\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\r\n\t\thoverBorderColor: 'pointHoverBorderColor',\r\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\r\n\t\thoverRadius: 'pointHoverRadius',\r\n\t\tpointStyle: 'pointStyle',\r\n\t\tradius: 'pointRadius',\r\n\t\trotation: 'pointRotation'\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar line = meta.dataset;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar scale = me.chart.scale;\r\n\t\tvar config = me._config;\r\n\t\tvar i, ilen;\r\n\r\n\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\tif (config.tension !== undefined && config.lineTension === undefined) {\r\n\t\t\tconfig.lineTension = config.tension;\r\n\t\t}\r\n\r\n\t\t// Utility\r\n\t\tline._scale = scale;\r\n\t\tline._datasetIndex = me.index;\r\n\t\t// Data\r\n\t\tline._children = points;\r\n\t\tline._loop = true;\r\n\t\t// Model\r\n\t\tline._model = me._resolveDatasetElementOptions(line);\r\n\r\n\t\tline.pivot();\r\n\r\n\t\t// Update Points\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(points[i], i, reset);\r\n\t\t}\r\n\r\n\t\t// Update bezier control points\r\n\t\tme.updateBezierControlPoints();\r\n\r\n\t\t// Now pivot the point for animation\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tpoints[i].pivot();\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar scale = me.chart.scale;\r\n\t\tvar pointPosition = scale.getPointPositionForValue(index, dataset.data[index]);\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\t\tvar lineModel = me.getMeta().dataset._model;\r\n\t\tvar x = reset ? scale.xCenter : pointPosition.x;\r\n\t\tvar y = reset ? scale.yCenter : pointPosition.y;\r\n\r\n\t\t// Utility\r\n\t\tpoint._scale = scale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = me.index;\r\n\t\tpoint._index = index;\r\n\r\n\t\t// Desired view properties\r\n\t\tpoint._model = {\r\n\t\t\tx: x, // value not used in dataset scale, but we want a consistent API between scales\r\n\t\t\ty: y,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\t// Appearance\r\n\t\t\tradius: options.radius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\ttension: valueOrDefault$7(custom.tension, lineModel ? lineModel.tension : 0),\r\n\r\n\t\t\t// Tooltip\r\n\t\t\thitRadius: options.hitRadius\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function() {\r\n\t\tvar me = this;\r\n\t\tvar config = me._config;\r\n\t\tvar options = me.chart.options;\r\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\r\n\r\n\t\tvalues.spanGaps = valueOrDefault$7(config.spanGaps, options.spanGaps);\r\n\t\tvalues.tension = valueOrDefault$7(config.lineTension, options.elements.line.tension);\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tupdateBezierControlPoints: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar area = me.chart.chartArea;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar i, ilen, model, controlPoints;\r\n\r\n\t\t// Only consider points that are drawn in case the spanGaps option is used\r\n\t\tif (meta.dataset._model.spanGaps) {\r\n\t\t\tpoints = points.filter(function(pt) {\r\n\t\t\t\treturn !pt._model.skip;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction capControlPoint(pt, min, max) {\r\n\t\t\treturn Math.max(Math.min(pt, max), min);\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tmodel = points[i]._model;\r\n\t\t\tcontrolPoints = helpers$1.splineCurve(\r\n\t\t\t\thelpers$1.previousItem(points, i, true)._model,\r\n\t\t\t\tmodel,\r\n\t\t\t\thelpers$1.nextItem(points, i, true)._model,\r\n\t\t\t\tmodel.tension\r\n\t\t\t);\r\n\r\n\t\t\t// Prevent the bezier going outside of the bounds of the graph\r\n\t\t\tmodel.controlPointPreviousX = capControlPoint(controlPoints.previous.x, area.left, area.right);\r\n\t\t\tmodel.controlPointPreviousY = capControlPoint(controlPoints.previous.y, area.top, area.bottom);\r\n\t\t\tmodel.controlPointNextX = capControlPoint(controlPoints.next.x, area.left, area.right);\r\n\t\t\tmodel.controlPointNextY = capControlPoint(controlPoints.next.y, area.top, area.bottom);\r\n\t\t}\r\n\t},\r\n\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$7(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$7(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$7(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = valueOrDefault$7(options.hoverRadius, options.radius);\r\n\t}\r\n});\n\ncore_defaults._set('scatter', {\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\tid: 'x-axis-1', // need an ID so datasets can reference the scale\r\n\t\t\ttype: 'linear', // scatter should not use a category axis\r\n\t\t\tposition: 'bottom'\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\tid: 'y-axis-1',\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'left'\r\n\t\t}]\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn ''; // doesn't make sense for scatter since data are formatted as a point\r\n\t\t\t},\r\n\t\t\tlabel: function(item) {\r\n\t\t\t\treturn '(' + item.xLabel + ', ' + item.yLabel + ')';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\tscatter: {\r\n\t\t\tshowLine: false\r\n\t\t}\r\n\t}\r\n});\r\n\r\n// Scatter charts use line controllers\r\nvar controller_scatter = controller_line;\n\n// NOTE export a map in which the key represents the controller type, not\r\n// the class, and so must be CamelCase in order to be correctly retrieved\r\n// by the controller in core.controller.js (`controllers[meta.type]`).\r\n\r\nvar controllers = {\r\n\tbar: controller_bar,\r\n\tbubble: controller_bubble,\r\n\tdoughnut: controller_doughnut,\r\n\thorizontalBar: controller_horizontalBar,\r\n\tline: controller_line,\r\n\tpolarArea: controller_polarArea,\r\n\tpie: controller_pie,\r\n\tradar: controller_radar,\r\n\tscatter: controller_scatter\r\n};\n\n/**\r\n * Helper function to get relative position for an event\r\n * @param {Event|IEvent} event - The event to get the position for\r\n * @param {Chart} chart - The chart\r\n * @returns {object} the event position\r\n */\r\nfunction getRelativePosition(e, chart) {\r\n\tif (e.native) {\r\n\t\treturn {\r\n\t\t\tx: e.x,\r\n\t\t\ty: e.y\r\n\t\t};\r\n\t}\r\n\r\n\treturn helpers$1.getRelativePosition(e, chart);\r\n}\r\n\r\n/**\r\n * Helper function to traverse all of the visible elements in the chart\r\n * @param {Chart} chart - the chart\r\n * @param {function} handler - the callback to execute for each visible item\r\n */\r\nfunction parseVisibleItems(chart, handler) {\r\n\tvar metasets = chart._getSortedVisibleDatasetMetas();\r\n\tvar metadata, i, j, ilen, jlen, element;\r\n\r\n\tfor (i = 0, ilen = metasets.length; i < ilen; ++i) {\r\n\t\tmetadata = metasets[i].data;\r\n\t\tfor (j = 0, jlen = metadata.length; j < jlen; ++j) {\r\n\t\t\telement = metadata[j];\r\n\t\t\tif (!element._view.skip) {\r\n\t\t\t\thandler(element);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Helper function to get the items that intersect the event position\r\n * @param {ChartElement[]} items - elements to filter\r\n * @param {object} position - the point to be nearest to\r\n * @return {ChartElement[]} the nearest items\r\n */\r\nfunction getIntersectItems(chart, position) {\r\n\tvar elements = [];\r\n\r\n\tparseVisibleItems(chart, function(element) {\r\n\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\telements.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn elements;\r\n}\r\n\r\n/**\r\n * Helper function to get the items nearest to the event position considering all visible items in teh chart\r\n * @param {Chart} chart - the chart to look at elements from\r\n * @param {object} position - the point to be nearest to\r\n * @param {boolean} intersect - if true, only consider items that intersect the position\r\n * @param {function} distanceMetric - function to provide the distance between points\r\n * @return {ChartElement[]} the nearest items\r\n */\r\nfunction getNearestItems(chart, position, intersect, distanceMetric) {\r\n\tvar minDistance = Number.POSITIVE_INFINITY;\r\n\tvar nearestItems = [];\r\n\r\n\tparseVisibleItems(chart, function(element) {\r\n\t\tif (intersect && !element.inRange(position.x, position.y)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar center = element.getCenterPoint();\r\n\t\tvar distance = distanceMetric(position, center);\r\n\t\tif (distance < minDistance) {\r\n\t\t\tnearestItems = [element];\r\n\t\t\tminDistance = distance;\r\n\t\t} else if (distance === minDistance) {\r\n\t\t\t// Can have multiple items at the same distance in which case we sort by size\r\n\t\t\tnearestItems.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn nearestItems;\r\n}\r\n\r\n/**\r\n * Get a distance metric function for two points based on the\r\n * axis mode setting\r\n * @param {string} axis - the axis mode. x|y|xy\r\n */\r\nfunction getDistanceMetricForAxis(axis) {\r\n\tvar useX = axis.indexOf('x') !== -1;\r\n\tvar useY = axis.indexOf('y') !== -1;\r\n\r\n\treturn function(pt1, pt2) {\r\n\t\tvar deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\r\n\t\tvar deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\r\n\t\treturn Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\r\n\t};\r\n}\r\n\r\nfunction indexMode(chart, e, options) {\r\n\tvar position = getRelativePosition(e, chart);\r\n\t// Default axis for index mode is 'x' to match old behaviour\r\n\toptions.axis = options.axis || 'x';\r\n\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\r\n\tvar elements = [];\r\n\r\n\tif (!items.length) {\r\n\t\treturn [];\r\n\t}\r\n\r\n\tchart._getSortedVisibleDatasetMetas().forEach(function(meta) {\r\n\t\tvar element = meta.data[items[0]._index];\r\n\r\n\t\t// don't count items that are skipped (null data)\r\n\t\tif (element && !element._view.skip) {\r\n\t\t\telements.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn elements;\r\n}\r\n\r\n/**\r\n * @interface IInteractionOptions\r\n */\r\n/**\r\n * If true, only consider items that intersect the point\r\n * @name IInterfaceOptions#boolean\r\n * @type Boolean\r\n */\r\n\r\n/**\r\n * Contains interaction related functions\r\n * @namespace Chart.Interaction\r\n */\r\nvar core_interaction = {\r\n\t// Helper function for different modes\r\n\tmodes: {\r\n\t\tsingle: function(chart, e) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar elements = [];\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\telements.push(element);\r\n\t\t\t\t\treturn elements;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\treturn elements.slice(0, 1);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @function Chart.Interaction.modes.label\r\n\t\t * @deprecated since version 2.4.0\r\n\t\t * @todo remove at version 3\r\n\t\t * @private\r\n\t\t */\r\n\t\tlabel: indexMode,\r\n\r\n\t\t/**\r\n\t\t * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something\r\n\t\t * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item\r\n\t\t * @function Chart.Interaction.modes.index\r\n\t\t * @since v2.4.0\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use during interaction\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tindex: indexMode,\r\n\r\n\t\t/**\r\n\t\t * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something\r\n\t\t * If the options.intersect is false, we find the nearest item and return the items in that dataset\r\n\t\t * @function Chart.Interaction.modes.dataset\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use during interaction\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tdataset: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\toptions.axis = options.axis || 'xy';\r\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\t\t\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\r\n\r\n\t\t\tif (items.length > 0) {\r\n\t\t\t\titems = chart.getDatasetMeta(items[0]._datasetIndex).data;\r\n\t\t\t}\r\n\r\n\t\t\treturn items;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @function Chart.Interaction.modes.x-axis\r\n\t\t * @deprecated since version 2.4.0. Use index mode and intersect == true\r\n\t\t * @todo remove at version 3\r\n\t\t * @private\r\n\t\t */\r\n\t\t'x-axis': function(chart, e) {\r\n\t\t\treturn indexMode(chart, e, {intersect: false});\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Point mode returns all elements that hit test based on the event position\r\n\t\t * of the event\r\n\t\t * @function Chart.Interaction.modes.intersect\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tpoint: function(chart, e) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\treturn getIntersectItems(chart, position);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * nearest mode returns the element closest to the point\r\n\t\t * @function Chart.Interaction.modes.intersect\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tnearest: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\toptions.axis = options.axis || 'xy';\r\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\t\t\treturn getNearestItems(chart, position, options.intersect, distanceMetric);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * x mode returns the elements that hit-test at the current x coordinate\r\n\t\t * @function Chart.Interaction.modes.x\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tx: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar items = [];\r\n\t\t\tvar intersectsItem = false;\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inXRange(position.x)) {\r\n\t\t\t\t\titems.push(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\tintersectsItem = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// If we want to trigger on an intersect and we don't have any items\r\n\t\t\t// that intersect the position, return nothing\r\n\t\t\tif (options.intersect && !intersectsItem) {\r\n\t\t\t\titems = [];\r\n\t\t\t}\r\n\t\t\treturn items;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * y mode returns the elements that hit-test at the current y coordinate\r\n\t\t * @function Chart.Interaction.modes.y\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\ty: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar items = [];\r\n\t\t\tvar intersectsItem = false;\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inYRange(position.y)) {\r\n\t\t\t\t\titems.push(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\tintersectsItem = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// If we want to trigger on an intersect and we don't have any items\r\n\t\t\t// that intersect the position, return nothing\r\n\t\t\tif (options.intersect && !intersectsItem) {\r\n\t\t\t\titems = [];\r\n\t\t\t}\r\n\t\t\treturn items;\r\n\t\t}\r\n\t}\r\n};\n\nvar extend = helpers$1.extend;\r\n\r\nfunction filterByPosition(array, position) {\r\n\treturn helpers$1.where(array, function(v) {\r\n\t\treturn v.pos === position;\r\n\t});\r\n}\r\n\r\nfunction sortByWeight(array, reverse) {\r\n\treturn array.sort(function(a, b) {\r\n\t\tvar v0 = reverse ? b : a;\r\n\t\tvar v1 = reverse ? a : b;\r\n\t\treturn v0.weight === v1.weight ?\r\n\t\t\tv0.index - v1.index :\r\n\t\t\tv0.weight - v1.weight;\r\n\t});\r\n}\r\n\r\nfunction wrapBoxes(boxes) {\r\n\tvar layoutBoxes = [];\r\n\tvar i, ilen, box;\r\n\r\n\tfor (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\r\n\t\tbox = boxes[i];\r\n\t\tlayoutBoxes.push({\r\n\t\t\tindex: i,\r\n\t\t\tbox: box,\r\n\t\t\tpos: box.position,\r\n\t\t\thorizontal: box.isHorizontal(),\r\n\t\t\tweight: box.weight\r\n\t\t});\r\n\t}\r\n\treturn layoutBoxes;\r\n}\r\n\r\nfunction setLayoutDims(layouts, params) {\r\n\tvar i, ilen, layout;\r\n\tfor (i = 0, ilen = layouts.length; i < ilen; ++i) {\r\n\t\tlayout = layouts[i];\r\n\t\t// store width used instead of chartArea.w in fitBoxes\r\n\t\tlayout.width = layout.horizontal\r\n\t\t\t? layout.box.fullWidth && params.availableWidth\r\n\t\t\t: params.vBoxMaxWidth;\r\n\t\t// store height used instead of chartArea.h in fitBoxes\r\n\t\tlayout.height = layout.horizontal && params.hBoxMaxHeight;\r\n\t}\r\n}\r\n\r\nfunction buildLayoutBoxes(boxes) {\r\n\tvar layoutBoxes = wrapBoxes(boxes);\r\n\tvar left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\r\n\tvar right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\r\n\tvar top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\r\n\tvar bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\r\n\r\n\treturn {\r\n\t\tleftAndTop: left.concat(top),\r\n\t\trightAndBottom: right.concat(bottom),\r\n\t\tchartArea: filterByPosition(layoutBoxes, 'chartArea'),\r\n\t\tvertical: left.concat(right),\r\n\t\thorizontal: top.concat(bottom)\r\n\t};\r\n}\r\n\r\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\r\n\treturn Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\r\n}\r\n\r\nfunction updateDims(chartArea, params, layout) {\r\n\tvar box = layout.box;\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\tvar newWidth, newHeight;\r\n\r\n\tif (layout.size) {\r\n\t\t// this layout was already counted for, lets first reduce old size\r\n\t\tchartArea[layout.pos] -= layout.size;\r\n\t}\r\n\tlayout.size = layout.horizontal ? box.height : box.width;\r\n\tchartArea[layout.pos] += layout.size;\r\n\r\n\tif (box.getPadding) {\r\n\t\tvar boxPadding = box.getPadding();\r\n\t\tmaxPadding.top = Math.max(maxPadding.top, boxPadding.top);\r\n\t\tmaxPadding.left = Math.max(maxPadding.left, boxPadding.left);\r\n\t\tmaxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\r\n\t\tmaxPadding.right = Math.max(maxPadding.right, boxPadding.right);\r\n\t}\r\n\r\n\tnewWidth = params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right');\r\n\tnewHeight = params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom');\r\n\r\n\tif (newWidth !== chartArea.w || newHeight !== chartArea.h) {\r\n\t\tchartArea.w = newWidth;\r\n\t\tchartArea.h = newHeight;\r\n\r\n\t\t// return true if chart area changed in layout's direction\r\n\t\tvar sizes = layout.horizontal ? [newWidth, chartArea.w] : [newHeight, chartArea.h];\r\n\t\treturn sizes[0] !== sizes[1] && (!isNaN(sizes[0]) || !isNaN(sizes[1]));\r\n\t}\r\n}\r\n\r\nfunction handleMaxPadding(chartArea) {\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\r\n\tfunction updatePos(pos) {\r\n\t\tvar change = Math.max(maxPadding[pos] - chartArea[pos], 0);\r\n\t\tchartArea[pos] += change;\r\n\t\treturn change;\r\n\t}\r\n\tchartArea.y += updatePos('top');\r\n\tchartArea.x += updatePos('left');\r\n\tupdatePos('right');\r\n\tupdatePos('bottom');\r\n}\r\n\r\nfunction getMargins(horizontal, chartArea) {\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\r\n\tfunction marginForPositions(positions) {\r\n\t\tvar margin = {left: 0, top: 0, right: 0, bottom: 0};\r\n\t\tpositions.forEach(function(pos) {\r\n\t\t\tmargin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\r\n\t\t});\r\n\t\treturn margin;\r\n\t}\r\n\r\n\treturn horizontal\r\n\t\t? marginForPositions(['left', 'right'])\r\n\t\t: marginForPositions(['top', 'bottom']);\r\n}\r\n\r\nfunction fitBoxes(boxes, chartArea, params) {\r\n\tvar refitBoxes = [];\r\n\tvar i, ilen, layout, box, refit, changed;\r\n\r\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\r\n\t\tlayout = boxes[i];\r\n\t\tbox = layout.box;\r\n\r\n\t\tbox.update(\r\n\t\t\tlayout.width || chartArea.w,\r\n\t\t\tlayout.height || chartArea.h,\r\n\t\t\tgetMargins(layout.horizontal, chartArea)\r\n\t\t);\r\n\t\tif (updateDims(chartArea, params, layout)) {\r\n\t\t\tchanged = true;\r\n\t\t\tif (refitBoxes.length) {\r\n\t\t\t\t// Dimensions changed and there were non full width boxes before this\r\n\t\t\t\t// -> we have to refit those\r\n\t\t\t\trefit = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (!box.fullWidth) { // fullWidth boxes don't need to be re-fitted in any case\r\n\t\t\trefitBoxes.push(layout);\r\n\t\t}\r\n\t}\r\n\r\n\treturn refit ? fitBoxes(refitBoxes, chartArea, params) || changed : changed;\r\n}\r\n\r\nfunction placeBoxes(boxes, chartArea, params) {\r\n\tvar userPadding = params.padding;\r\n\tvar x = chartArea.x;\r\n\tvar y = chartArea.y;\r\n\tvar i, ilen, layout, box;\r\n\r\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\r\n\t\tlayout = boxes[i];\r\n\t\tbox = layout.box;\r\n\t\tif (layout.horizontal) {\r\n\t\t\tbox.left = box.fullWidth ? userPadding.left : chartArea.left;\r\n\t\t\tbox.right = box.fullWidth ? params.outerWidth - userPadding.right : chartArea.left + chartArea.w;\r\n\t\t\tbox.top = y;\r\n\t\t\tbox.bottom = y + box.height;\r\n\t\t\tbox.width = box.right - box.left;\r\n\t\t\ty = box.bottom;\r\n\t\t} else {\r\n\t\t\tbox.left = x;\r\n\t\t\tbox.right = x + box.width;\r\n\t\t\tbox.top = chartArea.top;\r\n\t\t\tbox.bottom = chartArea.top + chartArea.h;\r\n\t\t\tbox.height = box.bottom - box.top;\r\n\t\t\tx = box.right;\r\n\t\t}\r\n\t}\r\n\r\n\tchartArea.x = x;\r\n\tchartArea.y = y;\r\n}\r\n\r\ncore_defaults._set('global', {\r\n\tlayout: {\r\n\t\tpadding: {\r\n\t\t\ttop: 0,\r\n\t\t\tright: 0,\r\n\t\t\tbottom: 0,\r\n\t\t\tleft: 0\r\n\t\t}\r\n\t}\r\n});\r\n\r\n/**\r\n * @interface ILayoutItem\r\n * @prop {string} position - The position of the item in the chart layout. Possible values are\r\n * 'left', 'top', 'right', 'bottom', and 'chartArea'\r\n * @prop {number} weight - The weight used to sort the item. Higher weights are further away from the chart area\r\n * @prop {boolean} fullWidth - if true, and the item is horizontal, then push vertical boxes down\r\n * @prop {function} isHorizontal - returns true if the layout item is horizontal (ie. top or bottom)\r\n * @prop {function} update - Takes two parameters: width and height. Returns size of item\r\n * @prop {function} getPadding - Returns an object with padding on the edges\r\n * @prop {number} width - Width of item. Must be valid after update()\r\n * @prop {number} height - Height of item. Must be valid after update()\r\n * @prop {number} left - Left edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} top - Top edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} right - Right edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} bottom - Bottom edge of the item. Set by layout system and cannot be used in update\r\n */\r\n\r\n// The layout service is very self explanatory. It's responsible for the layout within a chart.\r\n// Scales, Legends and Plugins all rely on the layout service and can easily register to be placed anywhere they need\r\n// It is this service's responsibility of carrying out that layout.\r\nvar core_layouts = {\r\n\tdefaults: {},\r\n\r\n\t/**\r\n\t * Register a box to a chart.\r\n\t * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title.\r\n\t * @param {Chart} chart - the chart to use\r\n\t * @param {ILayoutItem} item - the item to add to be layed out\r\n\t */\r\n\taddBox: function(chart, item) {\r\n\t\tif (!chart.boxes) {\r\n\t\t\tchart.boxes = [];\r\n\t\t}\r\n\r\n\t\t// initialize item with default values\r\n\t\titem.fullWidth = item.fullWidth || false;\r\n\t\titem.position = item.position || 'top';\r\n\t\titem.weight = item.weight || 0;\r\n\t\titem._layers = item._layers || function() {\r\n\t\t\treturn [{\r\n\t\t\t\tz: 0,\r\n\t\t\t\tdraw: function() {\r\n\t\t\t\t\titem.draw.apply(item, arguments);\r\n\t\t\t\t}\r\n\t\t\t}];\r\n\t\t};\r\n\r\n\t\tchart.boxes.push(item);\r\n\t},\r\n\r\n\t/**\r\n\t * Remove a layoutItem from a chart\r\n\t * @param {Chart} chart - the chart to remove the box from\r\n\t * @param {ILayoutItem} layoutItem - the item to remove from the layout\r\n\t */\r\n\tremoveBox: function(chart, layoutItem) {\r\n\t\tvar index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\r\n\t\tif (index !== -1) {\r\n\t\t\tchart.boxes.splice(index, 1);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Sets (or updates) options on the given `item`.\r\n\t * @param {Chart} chart - the chart in which the item lives (or will be added to)\r\n\t * @param {ILayoutItem} item - the item to configure with the given options\r\n\t * @param {object} options - the new item options.\r\n\t */\r\n\tconfigure: function(chart, item, options) {\r\n\t\tvar props = ['fullWidth', 'position', 'weight'];\r\n\t\tvar ilen = props.length;\r\n\t\tvar i = 0;\r\n\t\tvar prop;\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tprop = props[i];\r\n\t\t\tif (options.hasOwnProperty(prop)) {\r\n\t\t\t\titem[prop] = options[prop];\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Fits boxes of the given chart into the given size by having each box measure itself\r\n\t * then running a fitting algorithm\r\n\t * @param {Chart} chart - the chart\r\n\t * @param {number} width - the width to fit into\r\n\t * @param {number} height - the height to fit into\r\n\t */\r\n\tupdate: function(chart, width, height) {\r\n\t\tif (!chart) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar layoutOptions = chart.options.layout || {};\r\n\t\tvar padding = helpers$1.options.toPadding(layoutOptions.padding);\r\n\r\n\t\tvar availableWidth = width - padding.width;\r\n\t\tvar availableHeight = height - padding.height;\r\n\t\tvar boxes = buildLayoutBoxes(chart.boxes);\r\n\t\tvar verticalBoxes = boxes.vertical;\r\n\t\tvar horizontalBoxes = boxes.horizontal;\r\n\r\n\t\t// Essentially we now have any number of boxes on each of the 4 sides.\r\n\t\t// Our canvas looks like the following.\r\n\t\t// The areas L1 and L2 are the left axes. R1 is the right axis, T1 is the top axis and\r\n\t\t// B1 is the bottom axis\r\n\t\t// There are also 4 quadrant-like locations (left to right instead of clockwise) reserved for chart overlays\r\n\t\t// These locations are single-box locations only, when trying to register a chartArea location that is already taken,\r\n\t\t// an error will be thrown.\r\n\t\t//\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | T1 (Full Width) |\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | | | T2 | |\r\n\t\t// | |----|-------------------------------------|----|\r\n\t\t// | | | C1 | | C2 | |\r\n\t\t// | | |----| |----| |\r\n\t\t// | | | | |\r\n\t\t// | L1 | L2 | ChartArea (C0) | R1 |\r\n\t\t// | | | | |\r\n\t\t// | | |----| |----| |\r\n\t\t// | | | C3 | | C4 | |\r\n\t\t// | |----|-------------------------------------|----|\r\n\t\t// | | | B1 | |\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | B2 (Full Width) |\r\n\t\t// |----------------------------------------------------|\r\n\t\t//\r\n\r\n\t\tvar params = Object.freeze({\r\n\t\t\touterWidth: width,\r\n\t\t\touterHeight: height,\r\n\t\t\tpadding: padding,\r\n\t\t\tavailableWidth: availableWidth,\r\n\t\t\tvBoxMaxWidth: availableWidth / 2 / verticalBoxes.length,\r\n\t\t\thBoxMaxHeight: availableHeight / 2\r\n\t\t});\r\n\t\tvar chartArea = extend({\r\n\t\t\tmaxPadding: extend({}, padding),\r\n\t\t\tw: availableWidth,\r\n\t\t\th: availableHeight,\r\n\t\t\tx: padding.left,\r\n\t\t\ty: padding.top\r\n\t\t}, padding);\r\n\r\n\t\tsetLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\r\n\r\n\t\t// First fit vertical boxes\r\n\t\tfitBoxes(verticalBoxes, chartArea, params);\r\n\r\n\t\t// Then fit horizontal boxes\r\n\t\tif (fitBoxes(horizontalBoxes, chartArea, params)) {\r\n\t\t\t// if the area changed, re-fit vertical boxes\r\n\t\t\tfitBoxes(verticalBoxes, chartArea, params);\r\n\t\t}\r\n\r\n\t\thandleMaxPadding(chartArea);\r\n\r\n\t\t// Finally place the boxes to correct coordinates\r\n\t\tplaceBoxes(boxes.leftAndTop, chartArea, params);\r\n\r\n\t\t// Move to opposite side of chart\r\n\t\tchartArea.x += chartArea.w;\r\n\t\tchartArea.y += chartArea.h;\r\n\r\n\t\tplaceBoxes(boxes.rightAndBottom, chartArea, params);\r\n\r\n\t\tchart.chartArea = {\r\n\t\t\tleft: chartArea.left,\r\n\t\t\ttop: chartArea.top,\r\n\t\t\tright: chartArea.left + chartArea.w,\r\n\t\t\tbottom: chartArea.top + chartArea.h\r\n\t\t};\r\n\r\n\t\t// Finally update boxes in chartArea (radial scale for example)\r\n\t\thelpers$1.each(boxes.chartArea, function(layout) {\r\n\t\t\tvar box = layout.box;\r\n\t\t\textend(box, chart.chartArea);\r\n\t\t\tbox.update(chartArea.w, chartArea.h);\r\n\t\t});\r\n\t}\r\n};\n\n/**\r\n * Platform fallback implementation (minimal).\r\n * @see https://github.com/chartjs/Chart.js/pull/4591#issuecomment-319575939\r\n */\r\n\r\nvar platform_basic = {\r\n\tacquireContext: function(item) {\r\n\t\tif (item && item.canvas) {\r\n\t\t\t// Support for any object associated to a canvas (including a context2d)\r\n\t\t\titem = item.canvas;\r\n\t\t}\r\n\r\n\t\treturn item && item.getContext('2d') || null;\r\n\t}\r\n};\n\nvar platform_dom = \"/*\\r\\n * DOM element rendering detection\\r\\n * https://davidwalsh.name/detect-node-insertion\\r\\n */\\r\\n@keyframes chartjs-render-animation {\\r\\n\\tfrom { opacity: 0.99; }\\r\\n\\tto { opacity: 1; }\\r\\n}\\r\\n\\r\\n.chartjs-render-monitor {\\r\\n\\tanimation: chartjs-render-animation 0.001s;\\r\\n}\\r\\n\\r\\n/*\\r\\n * DOM element resizing detection\\r\\n * https://github.com/marcj/css-element-queries\\r\\n */\\r\\n.chartjs-size-monitor,\\r\\n.chartjs-size-monitor-expand,\\r\\n.chartjs-size-monitor-shrink {\\r\\n\\tposition: absolute;\\r\\n\\tdirection: ltr;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n\\tright: 0;\\r\\n\\tbottom: 0;\\r\\n\\toverflow: hidden;\\r\\n\\tpointer-events: none;\\r\\n\\tvisibility: hidden;\\r\\n\\tz-index: -1;\\r\\n}\\r\\n\\r\\n.chartjs-size-monitor-expand > div {\\r\\n\\tposition: absolute;\\r\\n\\twidth: 1000000px;\\r\\n\\theight: 1000000px;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n}\\r\\n\\r\\n.chartjs-size-monitor-shrink > div {\\r\\n\\tposition: absolute;\\r\\n\\twidth: 200%;\\r\\n\\theight: 200%;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n}\\r\\n\";\n\nvar platform_dom$1 = /*#__PURE__*/Object.freeze({\n__proto__: null,\n'default': platform_dom\n});\n\nvar stylesheet = getCjsExportFromNamespace(platform_dom$1);\n\nvar EXPANDO_KEY = '$chartjs';\r\nvar CSS_PREFIX = 'chartjs-';\r\nvar CSS_SIZE_MONITOR = CSS_PREFIX + 'size-monitor';\r\nvar CSS_RENDER_MONITOR = CSS_PREFIX + 'render-monitor';\r\nvar CSS_RENDER_ANIMATION = CSS_PREFIX + 'render-animation';\r\nvar ANIMATION_START_EVENTS = ['animationstart', 'webkitAnimationStart'];\r\n\r\n/**\r\n * DOM event types -> Chart.js event types.\r\n * Note: only events with different types are mapped.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/Events\r\n */\r\nvar EVENT_TYPES = {\r\n\ttouchstart: 'mousedown',\r\n\ttouchmove: 'mousemove',\r\n\ttouchend: 'mouseup',\r\n\tpointerenter: 'mouseenter',\r\n\tpointerdown: 'mousedown',\r\n\tpointermove: 'mousemove',\r\n\tpointerup: 'mouseup',\r\n\tpointerleave: 'mouseout',\r\n\tpointerout: 'mouseout'\r\n};\r\n\r\n/**\r\n * The \"used\" size is the final value of a dimension property after all calculations have\r\n * been performed. This method uses the computed style of `element` but returns undefined\r\n * if the computed style is not expressed in pixels. That can happen in some cases where\r\n * `element` has a size relative to its parent and this last one is not yet displayed,\r\n * for example because of `display: none` on a parent node.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\r\n * @returns {number} Size in pixels or undefined if unknown.\r\n */\r\nfunction readUsedSize(element, property) {\r\n\tvar value = helpers$1.getStyle(element, property);\r\n\tvar matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\r\n\treturn matches ? Number(matches[1]) : undefined;\r\n}\r\n\r\n/**\r\n * Initializes the canvas style and render size without modifying the canvas display size,\r\n * since responsiveness is handled by the controller.resize() method. The config is used\r\n * to determine the aspect ratio to apply in case no explicit height has been specified.\r\n */\r\nfunction initCanvas(canvas, config) {\r\n\tvar style = canvas.style;\r\n\r\n\t// NOTE(SB) canvas.getAttribute('width') !== canvas.width: in the first case it\r\n\t// returns null or '' if no explicit value has been set to the canvas attribute.\r\n\tvar renderHeight = canvas.getAttribute('height');\r\n\tvar renderWidth = canvas.getAttribute('width');\r\n\r\n\t// Chart.js modifies some canvas values that we want to restore on destroy\r\n\tcanvas[EXPANDO_KEY] = {\r\n\t\tinitial: {\r\n\t\t\theight: renderHeight,\r\n\t\t\twidth: renderWidth,\r\n\t\t\tstyle: {\r\n\t\t\t\tdisplay: style.display,\r\n\t\t\t\theight: style.height,\r\n\t\t\t\twidth: style.width\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Force canvas to display as block to avoid extra space caused by inline\r\n\t// elements, which would interfere with the responsive resize process.\r\n\t// https://github.com/chartjs/Chart.js/issues/2538\r\n\tstyle.display = style.display || 'block';\r\n\r\n\tif (renderWidth === null || renderWidth === '') {\r\n\t\tvar displayWidth = readUsedSize(canvas, 'width');\r\n\t\tif (displayWidth !== undefined) {\r\n\t\t\tcanvas.width = displayWidth;\r\n\t\t}\r\n\t}\r\n\r\n\tif (renderHeight === null || renderHeight === '') {\r\n\t\tif (canvas.style.height === '') {\r\n\t\t\t// If no explicit render height and style height, let's apply the aspect ratio,\r\n\t\t\t// which one can be specified by the user but also by charts as default option\r\n\t\t\t// (i.e. options.aspectRatio). If not specified, use canvas aspect ratio of 2.\r\n\t\t\tcanvas.height = canvas.width / (config.options.aspectRatio || 2);\r\n\t\t} else {\r\n\t\t\tvar displayHeight = readUsedSize(canvas, 'height');\r\n\t\t\tif (displayWidth !== undefined) {\r\n\t\t\t\tcanvas.height = displayHeight;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn canvas;\r\n}\r\n\r\n/**\r\n * Detects support for options object argument in addEventListener.\r\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\r\n * @private\r\n */\r\nvar supportsEventListenerOptions = (function() {\r\n\tvar supports = false;\r\n\ttry {\r\n\t\tvar options = Object.defineProperty({}, 'passive', {\r\n\t\t\t// eslint-disable-next-line getter-return\r\n\t\t\tget: function() {\r\n\t\t\t\tsupports = true;\r\n\t\t\t}\r\n\t\t});\r\n\t\twindow.addEventListener('e', null, options);\r\n\t} catch (e) {\r\n\t\t// continue regardless of error\r\n\t}\r\n\treturn supports;\r\n}());\r\n\r\n// Default passive to true as expected by Chrome for 'touchstart' and 'touchend' events.\r\n// https://github.com/chartjs/Chart.js/issues/4287\r\nvar eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\r\n\r\nfunction addListener(node, type, listener) {\r\n\tnode.addEventListener(type, listener, eventListenerOptions);\r\n}\r\n\r\nfunction removeListener(node, type, listener) {\r\n\tnode.removeEventListener(type, listener, eventListenerOptions);\r\n}\r\n\r\nfunction createEvent(type, chart, x, y, nativeEvent) {\r\n\treturn {\r\n\t\ttype: type,\r\n\t\tchart: chart,\r\n\t\tnative: nativeEvent || null,\r\n\t\tx: x !== undefined ? x : null,\r\n\t\ty: y !== undefined ? y : null,\r\n\t};\r\n}\r\n\r\nfunction fromNativeEvent(event, chart) {\r\n\tvar type = EVENT_TYPES[event.type] || event.type;\r\n\tvar pos = helpers$1.getRelativePosition(event, chart);\r\n\treturn createEvent(type, chart, pos.x, pos.y, event);\r\n}\r\n\r\nfunction throttled(fn, thisArg) {\r\n\tvar ticking = false;\r\n\tvar args = [];\r\n\r\n\treturn function() {\r\n\t\targs = Array.prototype.slice.call(arguments);\r\n\t\tthisArg = thisArg || this;\r\n\r\n\t\tif (!ticking) {\r\n\t\t\tticking = true;\r\n\t\t\thelpers$1.requestAnimFrame.call(window, function() {\r\n\t\t\t\tticking = false;\r\n\t\t\t\tfn.apply(thisArg, args);\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction createDiv(cls) {\r\n\tvar el = document.createElement('div');\r\n\tel.className = cls || '';\r\n\treturn el;\r\n}\r\n\r\n// Implementation based on https://github.com/marcj/css-element-queries\r\nfunction createResizer(handler) {\r\n\tvar maxSize = 1000000;\r\n\r\n\t// NOTE(SB) Don't use innerHTML because it could be considered unsafe.\r\n\t// https://github.com/chartjs/Chart.js/issues/5902\r\n\tvar resizer = createDiv(CSS_SIZE_MONITOR);\r\n\tvar expand = createDiv(CSS_SIZE_MONITOR + '-expand');\r\n\tvar shrink = createDiv(CSS_SIZE_MONITOR + '-shrink');\r\n\r\n\texpand.appendChild(createDiv());\r\n\tshrink.appendChild(createDiv());\r\n\r\n\tresizer.appendChild(expand);\r\n\tresizer.appendChild(shrink);\r\n\tresizer._reset = function() {\r\n\t\texpand.scrollLeft = maxSize;\r\n\t\texpand.scrollTop = maxSize;\r\n\t\tshrink.scrollLeft = maxSize;\r\n\t\tshrink.scrollTop = maxSize;\r\n\t};\r\n\r\n\tvar onScroll = function() {\r\n\t\tresizer._reset();\r\n\t\thandler();\r\n\t};\r\n\r\n\taddListener(expand, 'scroll', onScroll.bind(expand, 'expand'));\r\n\taddListener(shrink, 'scroll', onScroll.bind(shrink, 'shrink'));\r\n\r\n\treturn resizer;\r\n}\r\n\r\n// https://davidwalsh.name/detect-node-insertion\r\nfunction watchForRender(node, handler) {\r\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\r\n\tvar proxy = expando.renderProxy = function(e) {\r\n\t\tif (e.animationName === CSS_RENDER_ANIMATION) {\r\n\t\t\thandler();\r\n\t\t}\r\n\t};\r\n\r\n\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\r\n\t\taddListener(node, type, proxy);\r\n\t});\r\n\r\n\t// #4737: Chrome might skip the CSS animation when the CSS_RENDER_MONITOR class\r\n\t// is removed then added back immediately (same animation frame?). Accessing the\r\n\t// `offsetParent` property will force a reflow and re-evaluate the CSS animation.\r\n\t// https://gist.github.com/paulirish/5d52fb081b3570c81e3a#box-metrics\r\n\t// https://github.com/chartjs/Chart.js/issues/4737\r\n\texpando.reflow = !!node.offsetParent;\r\n\r\n\tnode.classList.add(CSS_RENDER_MONITOR);\r\n}\r\n\r\nfunction unwatchForRender(node) {\r\n\tvar expando = node[EXPANDO_KEY] || {};\r\n\tvar proxy = expando.renderProxy;\r\n\r\n\tif (proxy) {\r\n\t\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\r\n\t\t\tremoveListener(node, type, proxy);\r\n\t\t});\r\n\r\n\t\tdelete expando.renderProxy;\r\n\t}\r\n\r\n\tnode.classList.remove(CSS_RENDER_MONITOR);\r\n}\r\n\r\nfunction addResizeListener(node, listener, chart) {\r\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\r\n\r\n\t// Let's keep track of this added resizer and thus avoid DOM query when removing it.\r\n\tvar resizer = expando.resizer = createResizer(throttled(function() {\r\n\t\tif (expando.resizer) {\r\n\t\t\tvar container = chart.options.maintainAspectRatio && node.parentNode;\r\n\t\t\tvar w = container ? container.clientWidth : 0;\r\n\t\t\tlistener(createEvent('resize', chart));\r\n\t\t\tif (container && container.clientWidth < w && chart.canvas) {\r\n\t\t\t\t// If the container size shrank during chart resize, let's assume\r\n\t\t\t\t// scrollbar appeared. So we resize again with the scrollbar visible -\r\n\t\t\t\t// effectively making chart smaller and the scrollbar hidden again.\r\n\t\t\t\t// Because we are inside `throttled`, and currently `ticking`, scroll\r\n\t\t\t\t// events are ignored during this whole 2 resize process.\r\n\t\t\t\t// If we assumed wrong and something else happened, we are resizing\r\n\t\t\t\t// twice in a frame (potential performance issue)\r\n\t\t\t\tlistener(createEvent('resize', chart));\r\n\t\t\t}\r\n\t\t}\r\n\t}));\r\n\r\n\t// The resizer needs to be attached to the node parent, so we first need to be\r\n\t// sure that `node` is attached to the DOM before injecting the resizer element.\r\n\twatchForRender(node, function() {\r\n\t\tif (expando.resizer) {\r\n\t\t\tvar container = node.parentNode;\r\n\t\t\tif (container && container !== resizer.parentNode) {\r\n\t\t\t\tcontainer.insertBefore(resizer, container.firstChild);\r\n\t\t\t}\r\n\r\n\t\t\t// The container size might have changed, let's reset the resizer state.\r\n\t\t\tresizer._reset();\r\n\t\t}\r\n\t});\r\n}\r\n\r\nfunction removeResizeListener(node) {\r\n\tvar expando = node[EXPANDO_KEY] || {};\r\n\tvar resizer = expando.resizer;\r\n\r\n\tdelete expando.resizer;\r\n\tunwatchForRender(node);\r\n\r\n\tif (resizer && resizer.parentNode) {\r\n\t\tresizer.parentNode.removeChild(resizer);\r\n\t}\r\n}\r\n\r\n/**\r\n * Injects CSS styles inline if the styles are not already present.\r\n * @param {HTMLDocument|ShadowRoot} rootNode - the node to contain the