N){for(R(s,c),K=P=0;K<=N;)K+=s[P].size,P++;j=s.splice(P-1,s.length)}for(R(s,h),s=s.map((function(s){return{size:s.size,targets:[s.target],align:S(s.align,.5)}}));V;){for(P=s.length;P--;)N=s[P],c=(Math.min.apply(0,N.targets)+Math.max.apply(0,N.targets))/2,N.pos=_(c-N.size*N.align,0,o-N.size);for(P=s.length,V=!1;P--;)0s[P].pos&&(s[P-1].size+=s[P].size,s[P-1].targets=s[P-1].targets.concat(s[P].targets),s[P-1].align=.5,s[P-1].pos+s[P-1].size>o&&(s[P-1].pos=o-s[P-1].size),s.splice(P,1),V=!0)}return D.push.apply(D,j),P=0,s.some((function(s){var _=0;return(s.targets||[]).some((function(){return D[P].pos=s.pos+_,void 0!==O&&Math.abs(D[P].pos-D[P].target)>O?(D.slice(0,P+1).forEach((function(s){return delete s.pos})),D.reducedLen=(D.reducedLen||o)-.1*o,D.reducedLen>.1*o&&u(D,o,O),!0):(_+=D[P].size,P++,!1)}))})),R(D,h),D}}(o||(o={})),o})),M(o,"Core/Renderer/SVG/SVGElement.js",[o["Core/Animation/AnimationUtilities.js"],o["Core/Renderer/HTML/AST.js"],o["Core/Color/Color.js"],o["Core/Globals.js"],o["Core/Utilities.js"]],(function(s,o,_,S,R){var O=s.animate,P=s.animObject,D=s.stop,N=S.deg2rad,V=S.doc,j=S.noop,K=S.svg,W=S.SVG_NS,U=S.win,Y=R.addEvent,$=R.attr,X=R.createElement,Z=R.css,Q=R.defined,ee=R.erase,te=R.extend,ie=R.fireEvent,ae=R.isArray,ne=R.isFunction,re=R.isNumber,se=R.isString,le=R.merge,oe=R.objectEach,de=R.pick,ce=R.pInt,he=R.syncTimeout,ue=R.uniqueKey;return(s=function(){function a(){this.element=void 0,this.onEvents={},this.opacity=1,this.renderer=void 0,this.SVG_NS=W,this.symbolCustomAttribs="x y width height r start end innerR anchorX anchorY rounded".split(" ")}return a.prototype._defaultGetter=function(s){return s=de(this[s+"Value"],this[s],this.element?this.element.getAttribute(s):null,0),/^[\-0-9\.]+$/.test(s)&&(s=parseFloat(s)),s},a.prototype._defaultSetter=function(s,o,_){_.setAttribute(o,s)},a.prototype.add=function(s){var o=this.renderer,_=this.element;if(s&&(this.parentGroup=s),this.parentInverted=s&&s.inverted,void 0!==this.textStr&&"text"===this.element.nodeName&&o.buildText(this),this.added=!0,!s||s.handleZ||this.zIndex)var S=this.zIndexSetter();return S||(s?s.element:o.box).appendChild(_),this.onAdd&&this.onAdd(),this},a.prototype.addClass=function(s,o){var _=o?"":this.attr("class")||"";return(s=(s||"").split(/ /g).reduce((function(s,o){return-1===_.indexOf(o)&&s.push(o),s}),_?[_]:[]).join(" "))!==_&&this.attr("class",s),this},a.prototype.afterSetters=function(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)},a.prototype.align=function(s,o,_){var S,R,O,P={},D=this.renderer,N=D.alignedObjects;s?(this.alignOptions=s,this.alignByTranslate=o,(!_||se(_))&&(this.alignTo=S=_||"renderer",ee(N,this),N.push(this),_=void 0)):(s=this.alignOptions,o=this.alignByTranslate,S=this.alignTo),_=de(_,D[S],"scrollablePlotBox"===S?D.plotBox:void 0,D),S=s.align;var V=s.verticalAlign;return D=(_.x||0)+(s.x||0),N=(_.y||0)+(s.y||0),"right"===S?R=1:"center"===S&&(R=2),R&&(D+=(_.width-(s.width||0))/R),P[o?"translateX":"x"]=Math.round(D),"bottom"===V?O=1:"middle"===V&&(O=2),O&&(N+=(_.height-(s.height||0))/O),P[o?"translateY":"y"]=Math.round(N),this[this.placed?"animate":"attr"](P),this.placed=!0,this.alignAttr=P,this},a.prototype.alignSetter=function(s){var o={left:"start",center:"middle",right:"end"};o[s]&&(this.alignValue=s,this.element.setAttribute("text-anchor",o[s]))},a.prototype.animate=function(s,o,_){var S=this,R=P(de(o,this.renderer.globalAnimation,!0));return o=R.defer,de(V.hidden,V.msHidden,V.webkitHidden,!1)&&(R.duration=0),0!==R.duration?(_&&(R.complete=_),he((function(){S.element&&O(S,s,R)}),o)):(this.attr(s,void 0,_),oe(s,(function(s,o){R.step&&R.step.call(this,s,{prop:o,pos:1,elem:this})}),this)),this},a.prototype.applyTextOutline=function(s){var o=this.element;-1!==s.indexOf("contrast")&&(s=s.replace(/contrast/g,this.renderer.getContrast(o.style.fill)));var _=s.split(" ");if(s=_[_.length-1],(_=_[0])&&"none"!==_&&S.svg){this.fakeTS=!0,this.ySetter=this.xSetter,_=_.replace(/(^[\d\.]+)(.*?)$/g,(function(s,o,_){return 2*Number(o)+_})),this.removeTextOutline();var R=V.createElementNS(W,"tspan");$(R,{class:"highcharts-text-outline",fill:s,stroke:s,"stroke-width":_,"stroke-linejoin":"round"}),[].forEach.call(o.childNodes,(function(s){var o=s.cloneNode(!0);o.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach((function(s){return o.removeAttribute(s)})),R.appendChild(o)}));var O=V.createElementNS(W,"tspan");O.textContent="",["x","y"].forEach((function(s){var _=o.getAttribute(s);_&&O.setAttribute(s,_)})),R.appendChild(O),o.insertBefore(R,o.firstChild)}},a.prototype.attr=function(s,o,_,S){var R,O,P,N=this.element,V=this.symbolCustomAttribs,j=this;if("string"==typeof s&&void 0!==o){var K=s;(s={})[K]=o}return"string"==typeof s?j=(this[s+"Getter"]||this._defaultGetter).call(this,s,N):(oe(s,(function(o,_){O=!1,S||D(this,_),this.symbolName&&-1!==V.indexOf(_)&&(R||(this.symbolAttr(s),R=!0),O=!0),!this.rotation||"x"!==_&&"y"!==_||(this.doTransform=!0),O||((P=this[_+"Setter"]||this._defaultSetter).call(this,o,_,N),!this.styledMode&&this.shadows&&/^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(_)&&this.updateShadows(_,o,P))}),this),this.afterSetters()),_&&_.call(this),j},a.prototype.clip=function(s){return this.attr("clip-path",s?"url("+this.renderer.url+"#"+s.id+")":"none")},a.prototype.crisp=function(s,o){o=o||s.strokeWidth||0;var _=Math.round(o)%2/2;return s.x=Math.floor(s.x||this.x||0)+_,s.y=Math.floor(s.y||this.y||0)+_,s.width=Math.floor((s.width||this.width||0)-2*_),s.height=Math.floor((s.height||this.height||0)-2*_),Q(s.strokeWidth)&&(s.strokeWidth=o),s},a.prototype.complexColor=function(s,o,S){var R,O,P,D,N,V,j,K,W,U,Y,$=this.renderer,X=[];ie(this.renderer,"complexColor",{args:arguments},(function(){if(s.radialGradient?O="radialGradient":s.linearGradient&&(O="linearGradient"),O){if(P=s[O],N=$.gradients,V=s.stops,W=S.radialReference,ae(P)&&(s[O]=P={x1:P[0],y1:P[1],x2:P[2],y2:P[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===O&&W&&!Q(P.gradientUnits)&&(D=P,P=le(P,$.getRadialAttr(W,D),{gradientUnits:"userSpaceOnUse"})),oe(P,(function(s,o){"id"!==o&&X.push(o,s)})),oe(V,(function(s){X.push(s)})),X=X.join(","),N[X])U=N[X].attr("id");else{P.id=U=ue();var Z=N[X]=$.createElement(O).attr(P).add($.defs);Z.radAttr=D,Z.stops=[],V.forEach((function(s){0===s[1].indexOf("rgba")?(R=_.parse(s[1]),j=R.get("rgb"),K=R.get("a")):(j=s[1],K=1),s=$.createElement("stop").attr({offset:s[0],"stop-color":j,"stop-opacity":K}).add(Z),Z.stops.push(s)}))}Y="url("+$.url+"#"+U+")",S.setAttribute(o,Y),S.gradient=X,s.toString=function(){return Y}}}))},a.prototype.css=function(s){var o=this.styles,_={},S=this.element,R=["textOutline","textOverflow","width"],O="",P=!o;if(s&&s.color&&(s.fill=s.color),o&&oe(s,(function(s,S){o&&o[S]!==s&&(_[S]=s,P=!0)})),P){if(o&&(s=te(o,_)),s)if(null===s.width||"auto"===s.width)delete this.textWidth;else if("text"===S.nodeName.toLowerCase()&&s.width)var D=this.textWidth=ce(s.width);if(this.styles=s,D&&!K&&this.renderer.forExport&&delete s.width,S.namespaceURI===this.SVG_NS){var E=function(s,o){return"-"+o.toLowerCase()};oe(s,(function(s,o){-1===R.indexOf(o)&&(O+=o.replace(/([A-Z])/g,E)+":"+s+";")})),O&&$(S,"style",O)}else Z(S,s);this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),s&&s.textOutline&&this.applyTextOutline(s.textOutline))}return this},a.prototype.dashstyleSetter=function(s){var o=this["stroke-width"];if("inherit"===o&&(o=1),s=s&&s.toLowerCase()){var _=s.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(s=_.length;s--;)_[s]=""+ce(_[s])*de(o,NaN);s=_.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",s)}},a.prototype.destroy=function(){var s=this,o=s.element||{},_=s.renderer,S=o.ownerSVGElement,R=_.isSVG&&"SPAN"===o.nodeName&&s.parentGroup||void 0;if(o.onclick=o.onmouseout=o.onmouseover=o.onmousemove=o.point=null,D(s),s.clipPath&&S){var O=s.clipPath;[].forEach.call(S.querySelectorAll("[clip-path],[CLIP-PATH]"),(function(s){-1j.width)&&(j={width:0,height:0})}else j=this.htmlGetBBox();if(_.isSVG&&(s=j.width,_=j.height,V&&(j.height=_={"11px,17":14,"13px,20":16}[(K||"")+","+Math.round(_)]||_),o&&(V=o*N,j.width=Math.abs(_*Math.sin(V))+Math.abs(s*Math.cos(V)),j.height=Math.abs(_*Math.cos(V))+Math.abs(s*Math.sin(V)))),W&&(""===O||0]*>/g,"").replace(/</g,"<").replace(/>/g,">")},a.prototype.toFront=function(){var s=this.element;return s.parentNode.appendChild(s),this},a.prototype.translate=function(s,o){return this.attr({translateX:s,translateY:o})},a.prototype.updateShadows=function(s,o,_){var S=this.shadows;if(S)for(var R=S.length;R--;)_.call(S[R],"height"===s?Math.max(o-(S[R].cutHeight||0),0):"d"===s?this.d:o,s,S[R])},a.prototype.updateTransform=function(){var s=this.scaleX,o=this.scaleY,_=this.inverted,S=this.rotation,R=this.matrix,O=this.element,P=this.translateX||0,D=this.translateY||0;_&&(P+=this.width,D+=this.height),P=["translate("+P+","+D+")"],Q(R)&&P.push("matrix("+R.join(",")+")"),_?P.push("rotate(90) scale(-1,1)"):S&&P.push("rotate("+S+" "+de(this.rotationOriginX,O.getAttribute("x"),0)+" "+de(this.rotationOriginY,O.getAttribute("y")||0)+")"),(Q(s)||Q(o))&&P.push("scale("+de(s,1)+" "+de(o,1)+")"),P.length&&O.setAttribute("transform",P.join(" "))},a.prototype.visibilitySetter=function(s,o,_){"inherit"===s?_.removeAttribute(o):this[o]!==s&&_.setAttribute(o,s),this[o]=s},a.prototype.xGetter=function(s){return"circle"===this.element.nodeName&&("x"===s?s="cx":"y"===s&&(s="cy")),this._defaultGetter(s)},a.prototype.zIndexSetter=function(s,o){var _=this.renderer,S=this.parentGroup,R=(S||_).element||_.box,O=this.element;_=R===_.box;var P,D=!1,N=this.added;if(Q(s)?(O.setAttribute("data-z-index",s),s=+s,this[o]===s&&(N=!1)):Q(this[o])&&O.removeAttribute("data-z-index"),this[o]=s,N){for((s=this.zIndex)&&S&&(S.handleZ=!0),P=(o=R.childNodes).length-1;0<=P&&!D;P--){N=(S=o[P]).getAttribute("data-z-index");var V=!Q(N);S!==O&&(0>s&&V&&!_&&!P?(R.insertBefore(O,o[P]),D=!0):(ce(N)<=s||V&&(!Q(s)||0<=s))&&(R.insertBefore(O,o[P+1]||null),D=!0))}D||(R.insertBefore(O,o[_?3:0]||null),D=!0)}return D},a}()).prototype["stroke-widthSetter"]=s.prototype.strokeSetter,s.prototype.yGetter=s.prototype.xGetter,s.prototype.matrixSetter=s.prototype.rotationOriginXSetter=s.prototype.rotationOriginYSetter=s.prototype.rotationSetter=s.prototype.scaleXSetter=s.prototype.scaleYSetter=s.prototype.translateXSetter=s.prototype.translateYSetter=s.prototype.verticalAlignSetter=function(s,o){this[o]=s,this.doTransform=!0},s})),M(o,"Core/Renderer/RendererRegistry.js",[o["Core/Globals.js"]],(function(s){var o;return function(o){var _;o.rendererTypes={},o.getRendererType=function(s){return void 0===s&&(s=_),o.rendererTypes[s]||o.rendererTypes[_]},o.registerRendererType=function(S,R,O){o.rendererTypes[S]=R,_&&!O||(_=S,s.Renderer=R)}}(o||(o={})),o})),M(o,"Core/Renderer/SVG/SVGLabel.js",[o["Core/Renderer/SVG/SVGElement.js"],o["Core/Utilities.js"]],(function(s,o){var _=this&&this.__extends||function(){var a=function(s,o){return(a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(s,o){s.__proto__=o}||function(s,o){for(var _ in o)o.hasOwnProperty(_)&&(s[_]=o[_])})(s,o)};return function(s,o){function c(){this.constructor=s}a(s,o),s.prototype=null===o?Object.create(o):(c.prototype=o.prototype,new c)}}(),S=o.defined,R=o.extend,O=o.isNumber,P=o.merge,D=o.pick,N=o.removeEvent;return function(o){function k(s,_,S,R,O,P,D,N,V,j){var K,W=o.call(this)||this;return W.paddingLeftSetter=W.paddingSetter,W.paddingRightSetter=W.paddingSetter,W.init(s,"g"),W.textStr=_,W.x=S,W.y=R,W.anchorX=P,W.anchorY=D,W.baseline=V,W.className=j,W.addClass("button"===j?"highcharts-no-tooltip":"highcharts-label"),j&&W.addClass("highcharts-"+j),W.text=s.text(void 0,0,0,N).attr({zIndex:1}),"string"==typeof O&&((K=/^url\((.*?)\)$/.test(O))||W.renderer.symbols[O])&&(W.symbolKey=O),W.bBox=k.emptyBBox,W.padding=3,W.baselineOffset=0,W.needsBox=s.styledMode||K,W.deferredAttr={},W.alignFactor=0,W}return _(k,o),k.prototype.alignSetter=function(s){(s={left:0,center:.5,right:1}[s])!==this.alignFactor&&(this.alignFactor=s,this.bBox&&O(this.xSetting)&&this.attr({x:this.xSetting}))},k.prototype.anchorXSetter=function(s,o){this.anchorX=s,this.boxAttr(o,Math.round(s)-this.getCrispAdjust()-this.xSetting)},k.prototype.anchorYSetter=function(s,o){this.anchorY=s,this.boxAttr(o,s-this.ySetting)},k.prototype.boxAttr=function(s,o){this.box?this.box.attr(s,o):this.deferredAttr[s]=o},k.prototype.css=function(o){if(o){var _={};o=P(o),k.textProps.forEach((function(s){void 0!==o[s]&&(_[s]=o[s],delete o[s])})),this.text.css(_);var S="width"in _;"fontSize"in _||"fontWeight"in _?this.updateTextPadding():S&&this.updateBoxSize()}return s.prototype.css.call(this,o)},k.prototype.destroy=function(){N(this.element,"mouseenter"),N(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),s.prototype.destroy.call(this)},k.prototype.fillSetter=function(s,o){s&&(this.needsBox=!0),this.fill=s,this.boxAttr(o,s)},k.prototype.getBBox=function(){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();var s=this.padding,o=D(this.paddingLeft,s);return{width:this.width,height:this.height,x:this.bBox.x-o,y:this.bBox.y-s}},k.prototype.getCrispAdjust=function(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2},k.prototype.heightSetter=function(s){this.heightSetting=s},k.prototype.onAdd=function(){var s=this.textStr;this.text.add(this),this.attr({text:S(s)?s:"",x:this.x,y:this.y}),this.box&&S(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})},k.prototype.paddingSetter=function(s,o){O(s)?s!==this[o]&&(this[o]=s,this.updateTextPadding()):this[o]=void 0},k.prototype.rSetter=function(s,o){this.boxAttr(o,s)},k.prototype.shadow=function(s){return s&&!this.renderer.styledMode&&(this.updateBoxSize(),this.box&&this.box.shadow(s)),this},k.prototype.strokeSetter=function(s,o){this.stroke=s,this.boxAttr(o,s)},k.prototype["stroke-widthSetter"]=function(s,o){s&&(this.needsBox=!0),this["stroke-width"]=s,this.boxAttr(o,s)},k.prototype["text-alignSetter"]=function(s){this.textAlign=s},k.prototype.textSetter=function(s){void 0!==s&&this.text.attr({text:s}),this.updateTextPadding()},k.prototype.updateBoxSize=function(){var s=this.text.element.style,o={},_=this.padding,P=this.bBox=O(this.widthSetting)&&O(this.heightSetting)&&!this.textAlign||!S(this.text.textStr)?k.emptyBBox:this.text.getBBox();this.width=this.getPaddedWidth(),this.height=(this.heightSetting||P.height||0)+2*_,s=this.renderer.fontMetrics(s&&s.fontSize,this.text),this.baselineOffset=_+Math.min((this.text.firstLineMetrics||s).b,P.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-s.h)/2),this.needsBox&&(this.box||((_=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect()).addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),_.add(this)),_=this.getCrispAdjust(),o.x=_,o.y=(this.baseline?-this.baselineOffset:0)+_,o.width=Math.round(this.width),o.height=Math.round(this.height),this.box.attr(R(o,this.deferredAttr)),this.deferredAttr={})},k.prototype.updateTextPadding=function(){var s=this.text;this.updateBoxSize();var o=this.baseline?0:this.baselineOffset,_=D(this.paddingLeft,this.padding);S(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(_+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width)),_===s.x&&o===s.y||(s.attr("x",_),s.hasBoxWidthChanged&&(this.bBox=s.getBBox(!0)),void 0!==o&&s.attr("y",o)),s.x=_,s.y=o},k.prototype.widthSetter=function(s){this.widthSetting=O(s)?s:void 0},k.prototype.getPaddedWidth=function(){var s=this.padding,o=D(this.paddingLeft,s);return s=D(this.paddingRight,s),(this.widthSetting||this.bBox.width||0)+o+s},k.prototype.xSetter=function(s){this.x=s,this.alignFactor&&(s-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(s),this.attr("translateX",this.xSetting)},k.prototype.ySetter=function(s){this.ySetting=this.y=Math.round(s),this.attr("translateY",this.ySetting)},k.emptyBBox={width:0,height:0,x:0,y:0},k.textProps="color direction fontFamily fontSize fontStyle fontWeight lineHeight textAlign textDecoration textOutline textOverflow width".split(" "),k}(s)})),M(o,"Core/Renderer/SVG/Symbols.js",[o["Core/Utilities.js"]],(function(s){function v(s,_,R,O,P){var D=[];if(P){var N=P.start||0,V=S(P.r,R);R=S(P.r,O||R);var j=(P.end||0)-.001;O=P.innerR;var K=S(P.open,.001>Math.abs((P.end||0)-N-2*Math.PI)),W=Math.cos(N),U=Math.sin(N),Y=Math.cos(j),$=Math.sin(j);N=S(P.longArc,.001>j-N-Math.PI?0:1),D.push(["M",s+V*W,_+R*U],["A",V,R,0,N,S(P.clockwise,1),s+V*Y,_+R*$]),o(O)&&D.push(K?["M",s+O*Y,_+O*$]:["L",s+O*Y,_+O*$],["A",O,O,0,N,o(P.clockwise)?1-P.clockwise:0,s+O*W,_+O*U]),K||D.push(["Z"])}return D}function z(s,o,_,S,R){return R&&R.r?F(s,o,_,S,R):[["M",s,o],["L",s+_,o],["L",s+_,o+S],["L",s,o+S],["Z"]]}function F(s,o,_,S,R){return[["M",s+(R=R&&R.r||0),o],["L",s+_-R,o],["C",s+_,o,s+_,o,s+_,o+R],["L",s+_,o+S-R],["C",s+_,o+S,s+_,o+S,s+_-R,o+S],["L",s+R,o+S],["C",s,o+S,s,o+S,s,o+S-R],["L",s,o+R],["C",s,o,s,o,s+R,o]]}var o=s.defined,_=s.isNumber,S=s.pick;return{arc:v,callout:function(s,o,S,R,O){var P=Math.min(O&&O.r||0,S,R),D=P+6,N=O&&O.anchorX;O=O&&O.anchorY||0;var V=F(s,o,S,R,{r:P});return _(N)?(s+N>=S?O>o+D&&O=s+N?O>o+D&&OR&&N>s+D&&NO&&N>s+D&&N/g.test(O))?""!==O&&(R&&R.appendChild(_),O=new s(O),this.modifyTree(O.nodes),O.addToDOM(o.element),this.modifyDOM(),this.ellipsis&&-1!==(_.textContent||"").indexOf("…")&&o.attr("title",this.unescapeEntities(o.textStr||"",["<",">"])),R&&R.removeChild(_)):_.appendChild(S.createTextNode(this.unescapeEntities(O))),D(this.textOutline)&&o.applyTextOutline&&o.applyTextOutline(this.textOutline)}},k.prototype.modifyDOM=function(){var s,o=this,_=this.svgElement,D=P(_.element,"x");for(_.firstLineMetrics=void 0;(s=_.element.firstChild)&&/^[\s\u200B]*$/.test(s.textContent||" ");)_.element.removeChild(s);[].forEach.call(_.element.querySelectorAll("tspan.highcharts-br"),(function(s,S){s.nextSibling&&s.previousSibling&&(0===S&&1===s.previousSibling.nodeType&&(_.firstLineMetrics=_.renderer.fontMetrics(void 0,s.previousSibling)),P(s,{dy:o.getLineHeight(s.nextSibling),x:D}))}));var N=this.width||0;if(N){var p=function(s,O){var V=s.textContent||"",j=V.replace(/([^\^])-/g,"$1- ").split(" "),K=!o.noWrap&&(1R){for(;K<=W;)U=Math.ceil((K+W)/2),_&&(P=O(_,U)),Y=d(U,P&&P.length-1),K===W?K=W+1:Y>R?W=U-1:K=U;0===W?s.textContent="":o&&W===o.length-1||(s.textContent=P||O(o||_,U))}_&&_.splice(0,U),D.actualWidth=Y,D.rotation=V},k.prototype.unescapeEntities=function(s,o){return N(this.renderer.escapes,(function(_,S){o&&-1!==o.indexOf(_)||(s=s.toString().replace(new RegExp(_,"g"),S))})),s},k}()})),M(o,"Core/Renderer/SVG/SVGRenderer.js",[o["Core/Renderer/HTML/AST.js"],o["Core/Color/Color.js"],o["Core/Globals.js"],o["Core/Renderer/RendererRegistry.js"],o["Core/Renderer/SVG/SVGElement.js"],o["Core/Renderer/SVG/SVGLabel.js"],o["Core/Renderer/SVG/Symbols.js"],o["Core/Renderer/SVG/TextBuilder.js"],o["Core/Utilities.js"]],(function(s,o,_,S,R,O,P,D,N){var V,j=_.charts,K=_.deg2rad,W=_.doc,U=_.isFirefox,Y=_.isMS,$=_.isWebKit,X=_.noop,Z=_.SVG_NS,Q=_.symbolSizes,ee=_.win,te=N.addEvent,ie=N.attr,ae=N.createElement,ne=N.css,re=N.defined,se=N.destroyObjectProperties,le=N.extend,oe=N.isArray,de=N.isNumber,ce=N.isObject,he=N.isString,ue=N.merge,pe=N.pick,fe=N.pInt,ge=N.uniqueKey;return _=function(){function L(s,o,_,S,R,O,P){this.width=this.url=this.style=this.isSVG=this.imgCount=this.height=this.gradients=this.globalAnimation=this.defs=this.chartIndex=this.cacheKeys=this.cache=this.boxWrapper=this.box=this.alignedObjects=void 0,this.init(s,o,_,S,R,O,P)}return L.prototype.init=function(s,o,_,S,R,O,P){var D,N=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),V=N.element;P||N.css(this.getStyle(S)),s.appendChild(V),ie(s,"dir","ltr"),-1===s.innerHTML.indexOf("xmlns")&&ie(V,"xmlns",this.SVG_NS),this.isSVG=!0,this.box=V,this.boxWrapper=N,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(W.createTextNode("Created with Highcharts 9.3.3")),this.defs=this.createElement("defs").add(),this.allowHTML=O,this.forExport=R,this.styledMode=P,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.setSize(o,_,!1),U&&s.getBoundingClientRect&&((o=function(){ne(s,{left:0,top:0}),D=s.getBoundingClientRect(),ne(s,{left:Math.ceil(D.left)-D.left+"px",top:Math.ceil(D.top)-D.top+"px"})})(),this.unSubPixelFix=te(ee,"resize",o))},L.prototype.definition=function(o){return new s([o]).addToDOM(this.defs.element)},L.prototype.getReferenceURL=function(){if((U||$)&&W.getElementsByTagName("base").length){if(!re(V)){var o=ge();o=new s([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:o},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":"url(#"+o+")",fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(W.body),ne(o,{position:"fixed",top:0,left:0,zIndex:9e5});var _=W.elementFromPoint(6,6);V="hitme"===(_&&_.id),W.body.removeChild(o)}if(V)return ee.location.href.split("#")[0].replace(/<[^>]*>/g,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20")}return""},L.prototype.getStyle=function(s){return this.style=le({fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif',fontSize:"12px"},s)},L.prototype.setStyle=function(s){this.boxWrapper.css(this.getStyle(s))},L.prototype.isHidden=function(){return!this.boxWrapper.getBBox().width},L.prototype.destroy=function(){var s=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),se(this.gradients||{}),this.gradients=null,s&&(this.defs=s.destroy()),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null},L.prototype.createElement=function(s){var o=new this.Element;return o.init(this,s),o},L.prototype.getRadialAttr=function(s,o){return{cx:s[0]-s[2]/2+(o.cx||0)*s[2],cy:s[1]-s[2]/2+(o.cy||0)*s[2],r:(o.r||0)*s[2]}},L.prototype.buildText=function(s){new D(s).buildSVG()},L.prototype.getContrast=function(s){return(s=o.parse(s).rgba)[0]*=1,s[1]*=1.2,s[2]*=.5,459(s=/px/.test(s)?fe(s):12)?s+3:Math.round(1.2*s),b:Math.round(.8*o),f:s}},L.prototype.rotCorr=function(s,o,_){var S=s;return o&&_&&(S=Math.max(S*Math.cos(o*K),4)),{x:-s/3*Math.sin(o*K),y:S}},L.prototype.pathToSegments=function(s){for(var o=[],_=[],S={A:8,C:7,H:2,L:3,M:3,Q:5,S:5,T:3,V:2},R=0;R":">","'":"'",'"':"""},symbols:P,draw:X}),S.registerRendererType("svg",_,!0),_})),M(o,"Core/Renderer/HTML/HTMLElement.js",[o["Core/Globals.js"],o["Core/Renderer/SVG/SVGElement.js"],o["Core/Utilities.js"]],(function(s,o,_){var S=this&&this.__extends||function(){var a=function(s,o){return(a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(s,o){s.__proto__=o}||function(s,o){for(var _ in o)o.hasOwnProperty(_)&&(s[_]=o[_])})(s,o)};return function(s,o){function p(){this.constructor=s}a(s,o),s.prototype=null===o?Object.create(o):(p.prototype=o.prototype,new p)}}(),R=s.isFirefox,O=s.isMS,P=s.isWebKit,D=s.win,N=_.css,V=_.defined,j=_.extend,K=_.pick,W=_.pInt;return function(s){function h(){return null!==s&&s.apply(this,arguments)||this}return S(h,s),h.compose=function(s){if(-1===h.composedClasses.indexOf(s)){h.composedClasses.push(s);var o=h.prototype,_=s.prototype;_.getSpanCorrection=o.getSpanCorrection,_.htmlCss=o.htmlCss,_.htmlGetBBox=o.htmlGetBBox,_.htmlUpdateTransform=o.htmlUpdateTransform,_.setSpanRotation=o.setSpanRotation}return s},h.prototype.getSpanCorrection=function(s,o,_){this.xCorr=-s*_,this.yCorr=-o},h.prototype.htmlCss=function(s){var o="SPAN"===this.element.tagName&&s&&"width"in s,_=K(o&&s.width,void 0);if(o){delete s.width,this.textWidth=_;var S=!0}return s&&"ellipsis"===s.textOverflow&&(s.whiteSpace="nowrap",s.overflow="hidden"),this.styles=j(this.styles,s),N(this.element,s),S&&this.htmlUpdateTransform(),this},h.prototype.htmlGetBBox=function(){var s=this.element;return{x:s.offsetLeft,y:s.offsetTop,width:s.offsetWidth,height:s.offsetHeight}},h.prototype.htmlUpdateTransform=function(){if(this.added){var s=this.renderer,o=this.element,_=this.translateX||0,S=this.translateY||0,R=this.x||0,O=this.y||0,P=this.textAlign||"left",D={left:0,center:.5,right:1}[P],j=this.styles;if(j=j&&j.whiteSpace,N(o,{marginLeft:_,marginTop:S}),!s.styledMode&&this.shadows&&this.shadows.forEach((function(s){N(s,{marginLeft:_+1,marginTop:S+1})})),this.inverted&&[].forEach.call(o.childNodes,(function(_){s.invertChild(_,o)})),"SPAN"===o.tagName){var K=this.rotation,U=this.textWidth&&W(this.textWidth),Y=[K,P,o.innerHTML,this.textWidth,this.textAlign].join(),$=void 0;if($=!1,U!==this.oldTextWidth){if(this.textPxLength)var X=this.textPxLength;else N(o,{width:"",whiteSpace:j||"nowrap"}),X=o.offsetWidth;(U>this.oldTextWidth||X>U)&&(/[ \-]/.test(o.textContent||o.innerText)||"ellipsis"===o.style.textOverflow)&&(N(o,{width:X>U||K?U+"px":"auto",display:"block",whiteSpace:j||"normal"}),this.oldTextWidth=U,$=!0)}this.hasBoxWidthChanged=$,Y!==this.cTT&&($=s.fontMetrics(o.style.fontSize,o).b,!V(K)||K===(this.oldRotation||0)&&P===this.oldAlign||this.setSpanRotation(K,D,$),this.getSpanCorrection(!V(K)&&this.textPxLength||o.offsetWidth,$,D,K,P)),N(o,{left:R+(this.xCorr||0)+"px",top:O+(this.yCorr||0)+"px"}),this.cTT=Y,this.oldRotation=K,this.oldAlign=P}}else this.alignOnAdd=!0},h.prototype.setSpanRotation=function(s,o,_){var S={},V=O&&!/Edge/.test(D.navigator.userAgent)?"-ms-transform":P?"-webkit-transform":R?"MozTransform":D.opera?"-o-transform":void 0;V&&(S[V]=S.transform="rotate("+s+"deg)",S[V+(R?"Origin":"-origin")]=S.transformOrigin=100*o+"% "+_+"px",N(this.element,S))},h.composedClasses=[],h}(o)})),M(o,"Core/Renderer/HTML/HTMLRenderer.js",[o["Core/Renderer/HTML/AST.js"],o["Core/Renderer/SVG/SVGElement.js"],o["Core/Renderer/SVG/SVGRenderer.js"],o["Core/Utilities.js"]],(function(s,o,_,S){var R=this&&this.__extends||function(){var a=function(s,o){return(a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(s,o){s.__proto__=o}||function(s,o){for(var _ in o)o.hasOwnProperty(_)&&(s[_]=o[_])})(s,o)};return function(s,o){function c(){this.constructor=s}a(s,o),s.prototype=null===o?Object.create(o):(c.prototype=o.prototype,new c)}}(),O=S.attr,P=S.createElement,D=S.extend,N=S.pick;return function(_){function k(){return null!==_&&_.apply(this,arguments)||this}return R(k,_),k.compose=function(s){return-1===k.composedClasses.indexOf(s)&&(k.composedClasses.push(s),s.prototype.html=k.prototype.html),s},k.prototype.html=function(_,S,R){var V=this.createElement("span"),j=V.element,K=V.renderer,W=K.isSVG,t=function(s,_){["opacity","visibility"].forEach((function(S){s[S+"Setter"]=function(R,O,P){var D=s.div?s.div.style:_;o.prototype[S+"Setter"].call(this,R,O,P),D&&(D[O]=R)}})),s.addedSetters=!0};return V.textSetter=function(o){o!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,s.setElementHTML(this.element,N(o,"")),this.textStr=o,V.doTransform=!0)},W&&t(V,V.element.style),V.xSetter=V.ySetter=V.alignSetter=V.rotationSetter=function(s,o){"align"===o?V.alignValue=V.textAlign=s:V[o]=s,V.doTransform=!0},V.afterSetters=function(){this.doTransform&&(this.htmlUpdateTransform(),this.doTransform=!1)},V.attr({text:_,x:Math.round(S),y:Math.round(R)}).css({position:"absolute"}),K.styledMode||V.css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize}),j.style.whiteSpace="nowrap",V.css=V.htmlCss,W&&(V.add=function(s){var o=K.box.parentNode,_=[];if(this.parentGroup=s){var S=s.div;if(!S){for(;s;)_.push(s),s=s.parentGroup;_.reverse().forEach((function(s){function a(o,_){s[_]=o,"translateX"===_?j.left=o+"px":j.top=o+"px",s.doTransform=!0}var R=O(s.element,"class"),N=s.styles||{},j=(S=s.div=s.div||P("div",R?{className:R}:void 0,{position:"absolute",left:(s.translateX||0)+"px",top:(s.translateY||0)+"px",display:s.display,opacity:s.opacity,cursor:N.cursor,pointerEvents:N.pointerEvents,visibility:s.visibility},S||o)).style;D(s,{classSetter:function(s){return function(o){this.element.setAttribute("class",o),s.className=o}}(S),on:function(){return _[0].div&&V.on.apply({element:_[0].div,onEvents:s.onEvents},arguments),s},translateXSetter:a,translateYSetter:a}),s.addedSetters||t(s)}))}}else S=o;return S.appendChild(j),V.added=!0,V.alignOnAdd&&V.htmlUpdateTransform(),V}),V},k.composedClasses=[],k}(_)})),M(o,"Core/Axis/AxisDefaults.js",[],(function(){var s;return function(s){s.defaultXAxisOptions={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e. %b"},week:{main:"%e. %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotation:void 0,autoRotationLimit:80,distance:void 0,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,x:0,zIndex:7,style:{color:"#666666",cursor:"default",fontSize:"11px"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minPadding:.01,offset:void 0,opposite:!1,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",rotation:0,useHTML:!1,x:0,y:0,style:{color:"#666666"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#ccd6eb",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#ccd6eb"},s.defaultYAxisOptions={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8},startOnTick:!0,title:{rotation:270,text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){return(0,this.axis.chart.numberFormatter)(this.total,-1)},style:{color:"#000000",fontSize:"11px",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},s.defaultLeftAxisOptions={labels:{x:-15},title:{rotation:270}},s.defaultRightAxisOptions={labels:{x:15},title:{rotation:90}},s.defaultBottomAxisOptions={labels:{autoRotation:[-45],x:0},margin:15,title:{rotation:0}},s.defaultTopAxisOptions={labels:{autoRotation:[-45],x:0},margin:15,title:{rotation:0}}}(s||(s={})),s})),M(o,"Core/Foundation.js",[o["Core/Utilities.js"]],(function(s){var o,_=s.addEvent,S=s.isFunction,R=s.objectEach,O=s.removeEvent;return function(s){s.registerEventOptions=function(s,o){s.eventOptions=s.eventOptions||{},R(o.events,(function(o,R){s.eventOptions[R]!==o&&(s.eventOptions[R]&&(O(s,R,s.eventOptions[R]),delete s.eventOptions[R]),S(o)&&(s.eventOptions[R]=o,_(s,R,o)))}))}}(o||(o={})),o})),M(o,"Core/Axis/Tick.js",[o["Core/FormatUtilities.js"],o["Core/Globals.js"],o["Core/Utilities.js"]],(function(s,o,_){var S=o.deg2rad,R=_.clamp,O=_.correctFloat,P=_.defined,D=_.destroyObjectProperties,N=_.extend,V=_.fireEvent,j=_.isNumber,K=_.merge,W=_.objectEach,U=_.pick;return o=function(){function f(s,o,_,S,R){this.isNewLabel=this.isNew=!0,this.axis=s,this.pos=o,this.type=_||"",this.parameters=R||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,V(this,"init"),_||S||this.addLabel()}return f.prototype.addLabel=function(){var o=this,_=o.axis,S=_.options,R=_.chart,D=_.categories,K=_.logarithmic,W=_.names,Y=o.pos,$=U(o.options&&o.options.labels,S.labels),X=_.tickPositions,Z=Y===X[0],Q=Y===X[X.length-1],ee=(!$.step||1===$.step)&&1===_.tickInterval;X=X.info;var te,ie=o.label;if(D=this.parameters.category||(D?U(D[Y],W[Y],Y):Y),K&&j(D)&&(D=O(K.lin2log(D))),_.dateTime)if(X)var ae=R.time.resolveDTLFormat(S.dateTimeLabelFormats[!S.grid&&X.higherRanks[Y]||X.unitName]),ne=ae.main;else j(D)&&(ne=_.dateTime.getXDateFormat(D,S.dateTimeLabelFormats||{}));o.isFirst=Z,o.isLast=Q;var re={axis:_,chart:R,dateTimeLabelFormat:ne,isFirst:Z,isLast:Q,pos:Y,tick:o,tickPositionInfo:X,value:D};V(this,"labelFormat",re);var u=function(o){return $.formatter?$.formatter.call(o,o):$.format?(o.text=_.defaultLabelFormatter.call(o),s.format($.format,o,R)):_.defaultLabelFormatter.call(o,o)};S=u.call(re,re);var se=ae&&ae.list;o.shortenLabel=se?function(){for(te=0;tej&&R-K*WP&&(N=Math.round((O-R)/Math.cos(j*S))):(O=R+(1-K)*W,R-K*WP&&(X=P-s.x+X*K,Z=-1),(X=Math.min(Y,X))X||o.autoRotation&&(V.styles||{}).width)&&(N=X)),N&&(this.shortenLabel?this.shortenLabel():($.width=Math.floor(N)+"px",(_.style||{}).textOverflow||($.textOverflow="ellipsis"),V.css($)))},f.prototype.moveLabel=function(s,o){var _=this,S=_.label,R=_.axis,O=R.reversed,P=!1;if(S&&S.textStr===s?(_.movedLabel=S,P=!0,delete _.label):W(R.ticks,(function(o){P||o.isNew||o===_||!o.label||o.label.textStr!==s||(_.movedLabel=o.label,P=!0,o.labelPos=_.movedLabel.xy,delete o.label)})),!P&&(_.labelPos||S)){var D=_.labelPos||S.xy;S=R.horiz?O?0:R.width+R.left:D.x,R=R.horiz?D.y:O?R.width+R.left:0,_.movedLabel=_.createLabel({x:S,y:R},s,o),_.movedLabel&&_.movedLabel.attr({opacity:0})}},f.prototype.render=function(s,o,_){var S=this.axis,R=S.horiz,O=this.pos,P=U(this.tickmarkOffset,S.tickmarkOffset);P=(O=this.getPosition(R,O,P,o)).x;var D=O.y;S=R&&P===S.pos+S.len||!R&&D===S.pos?-1:1,R=U(_,this.label&&this.label.newOpacity,1),_=U(_,1),this.isActive=!0,this.renderGridLine(o,_,S),this.renderMark(O,_,S),this.renderLabel(O,o,R,s),this.isNew=!1,V(this,"afterRender")},f.prototype.renderGridLine=function(s,o,_){var S=this.axis,R=S.options,O={},P=this.pos,D=this.type,N=U(this.tickmarkOffset,S.tickmarkOffset),V=S.chart.renderer,j=this.gridLine,K=R.gridLineWidth,W=R.gridLineColor,Y=R.gridLineDashStyle;"minor"===this.type&&(K=R.minorGridLineWidth,W=R.minorGridLineColor,Y=R.minorGridLineDashStyle),j||(S.chart.styledMode||(O.stroke=W,O["stroke-width"]=K||0,O.dashstyle=Y),D||(O.zIndex=1),s&&(o=0),this.gridLine=j=V.path().attr(O).addClass("highcharts-"+(D?D+"-":"")+"grid-line").add(S.gridGroup)),j&&(_=S.getPlotLinePath({value:P+N,lineWidth:j.strokeWidth()*_,force:"pass",old:s}))&&j[s||this.isNew?"attr":"animate"]({d:_,opacity:o})},f.prototype.renderMark=function(s,o,_){var S=this.axis,R=S.options,O=S.chart.renderer,P=this.type,D=S.tickSize(P?P+"Tick":"tick"),N=s.x;s=s.y;var V=U(R["minor"!==P?"tickWidth":"minorTickWidth"],!P&&S.isXAxis?1:0);R=R["minor"!==P?"tickColor":"minorTickColor"];var j=this.mark,K=!j;D&&(S.opposite&&(D[0]=-D[0]),j||(this.mark=j=O.path().addClass("highcharts-"+(P?P+"-":"")+"tick").add(S.axisGroup),S.chart.styledMode||j.attr({stroke:R,"stroke-width":V})),j[K?"attr":"animate"]({d:this.getMarkPath(N,s,D[0],j.strokeWidth()*_,S.horiz,O),opacity:o}))},f.prototype.renderLabel=function(s,o,_,S){var R=this.axis,O=R.horiz,P=R.options,D=this.label,N=P.labels,V=N.step;R=U(this.tickmarkOffset,R.tickmarkOffset);var K=s.x;s=s.y;var W=!0;D&&j(K)&&(D.xy=s=this.getLabelPosition(K,s,D,O,N,R,S,V),this.isFirst&&!this.isLast&&!P.showFirstLabel||this.isLast&&!this.isFirst&&!P.showLastLabel?W=!1:!O||N.step||N.rotation||o||0===_||this.handleOverflow(s),V&&S%V&&(W=!1),W&&j(s.y)?(s.opacity=_,D[this.isNewLabel?"attr":"animate"](s),this.isNewLabel=!1):(D.attr("y",-9999),this.isNewLabel=!0))},f.prototype.replaceMovedLabel=function(){var s=this.label,o=this.axis,_=o.reversed;if(s&&!this.isNew){var S=o.horiz?_?o.left:o.width+o.left:s.xy.x;_=o.horiz?s.xy.y:_?o.width+o.top:o.top,s.animate({x:S,y:_,opacity:0},void 0,s.destroy),delete this.label}o.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel},f}()})),M(o,"Core/Axis/Axis.js",[o["Core/Animation/AnimationUtilities.js"],o["Core/Axis/AxisDefaults.js"],o["Core/Color/Color.js"],o["Core/DefaultOptions.js"],o["Core/Foundation.js"],o["Core/Globals.js"],o["Core/Axis/Tick.js"],o["Core/Utilities.js"]],(function(s,o,_,S,R,O,P,D){var N=s.animObject,V=S.defaultOptions,j=R.registerEventOptions,K=O.deg2rad,W=D.arrayMax,U=D.arrayMin,Y=D.clamp,$=D.correctFloat,X=D.defined,Z=D.destroyObjectProperties,Q=D.erase,ee=D.error,te=D.extend,ie=D.fireEvent,ae=D.getMagnitude,ne=D.isArray,re=D.isNumber,se=D.isString,le=D.merge,oe=D.normalizeTickInterval,de=D.objectEach,ce=D.pick,he=D.relativeLength,ue=D.removeEvent,pe=D.splat,fe=D.syncTimeout;return s=function(){function a(s,o){this.zoomEnabled=this.width=this.visible=this.userOptions=this.translationSlope=this.transB=this.transA=this.top=this.ticks=this.tickRotCorr=this.tickPositions=this.tickmarkOffset=this.tickInterval=this.tickAmount=this.side=this.series=this.right=this.positiveValuesOnly=this.pos=this.pointRangePadding=this.pointRange=this.plotLinesAndBandsGroups=this.plotLinesAndBands=this.paddedTicks=this.overlap=this.options=this.offset=this.names=this.minPixelPadding=this.minorTicks=this.minorTickInterval=this.min=this.maxLabelLength=this.max=this.len=this.left=this.labelFormatter=this.labelEdge=this.isLinked=this.height=this.hasVisibleSeries=this.hasNames=this.eventOptions=this.coll=this.closestPointRange=this.chart=this.categories=this.bottom=this.alternateBands=void 0,this.init(s,o)}return a.prototype.init=function(s,o){var _=o.isX;this.chart=s,this.horiz=s.inverted&&!this.isZAxis?!_:_,this.isXAxis=_,this.coll=this.coll||(_?"xAxis":"yAxis"),ie(this,"init",{userOptions:o}),this.opposite=ce(o.opposite,this.opposite),this.side=ce(o.side,this.side,this.horiz?this.opposite?0:2:this.opposite?1:3),this.setOptions(o);var S=this.options,R=S.labels,O=S.type;this.userOptions=o,this.minPixelPadding=0,this.reversed=ce(S.reversed,this.reversed),this.visible=S.visible,this.zoomEnabled=S.zoomEnabled,this.hasNames="category"===O||!0===S.categories,this.categories=S.categories||this.hasNames,this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=X(S.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=S.minRange||S.maxZoom,this.range=S.range,this.offset=S.offset||0,this.min=this.max=null,o=ce(S.crosshair,pe(s.options.tooltip.crosshairs)[_?0:1]),this.crosshair=!0===o?{}:o,-1===s.axes.indexOf(this)&&(_?s.axes.splice(s.xAxis.length,0,this):s.axes.push(this),s[this.coll].push(this)),this.series=this.series||[],s.inverted&&!this.isZAxis&&_&&void 0===this.reversed&&(this.reversed=!0),this.labelRotation=re(R.rotation)?R.rotation:void 0,j(this,S),ie(this,"afterInit")},a.prototype.setOptions=function(s){this.options=le(o.defaultXAxisOptions,"yAxis"===this.coll&&o.defaultYAxisOptions,[o.defaultTopAxisOptions,o.defaultRightAxisOptions,o.defaultBottomAxisOptions,o.defaultLeftAxisOptions][this.side],le(V[this.coll],s)),ie(this,"afterSetOptions",{userOptions:s})},a.prototype.defaultLabelFormatter=function(s){var o=this.axis;s=this.chart.numberFormatter;var _=re(this.value)?this.value:NaN,S=o.chart.time,R=this.dateTimeLabelFormat,O=V.lang,P=O.numericSymbols;O=O.numericSymbolMagnitude||1e3;var D=o.logarithmic?Math.abs(_):o.tickInterval,N=P&&P.length;if(o.categories)var j=""+this.value;else if(R)j=S.dateFormat(R,_);else if(N&&1e3<=D)for(;N--&&void 0===j;)D>=(o=Math.pow(O,N+1))&&0==10*_%o&&null!==P[N]&&0!==_&&(j=s(_/o,-1)+P[N]);return void 0===j&&(j=1e4<=Math.abs(_)?s(_,-1):s(_,-1,void 0,"")),j},a.prototype.getSeriesExtremes=function(){var s,o=this,_=o.chart;ie(this,"getSeriesExtremes",null,(function(){o.hasVisibleSeries=!1,o.dataMin=o.dataMax=o.threshold=null,o.softThreshold=!o.isXAxis,o.stacking&&o.stacking.buildStacks(),o.series.forEach((function(S){if(S.visible||!_.options.chart.ignoreHiddenSeries){var R=S.options,O=R.threshold;if(o.hasVisibleSeries=!0,o.positiveValuesOnly&&0>=O&&(O=null),o.isXAxis){if((R=S.xData).length){R=o.logarithmic?R.filter(o.validatePositiveValue):R;var P=(s=S.getXExtremes(R)).min,D=s.max;re(P)||P instanceof Date||(R=R.filter(re),P=(s=S.getXExtremes(R)).min,D=s.max),R.length&&(o.dataMin=Math.min(ce(o.dataMin,P),P),o.dataMax=Math.max(ce(o.dataMax,D),D))}}else S=S.applyExtremes(),re(S.dataMin)&&(P=S.dataMin,o.dataMin=Math.min(ce(o.dataMin,P),P)),re(S.dataMax)&&(D=S.dataMax,o.dataMax=Math.max(ce(o.dataMax,D),D)),X(O)&&(o.threshold=O),(!R.softThreshold||o.positiveValuesOnly)&&(o.softThreshold=!1)}}))})),ie(this,"afterGetSeriesExtremes")},a.prototype.translate=function(s,o,_,S,R,O){var P=this.linkedParent||this,D=S&&P.old?P.old.min:P.min,N=P.minPixelPadding;R=(P.isOrdinal||P.brokenAxis&&P.brokenAxis.hasBreaks||P.logarithmic&&R)&&P.lin2val;var V=1,j=0;return(S=S&&P.old?P.old.transA:P.transA)||(S=P.transA),_&&(V*=-1,j=P.len),P.reversed&&(j-=(V*=-1)*(P.sector||P.len)),o?(s=(s*V+j-N)/S+D,R&&(s=P.lin2val(s))):(R&&(s=P.val2lin(s)),s=re(D)?V*(s-D)*S+j+V*N+(re(O)?S*O:0):void 0),s},a.prototype.toPixels=function(s,o){return this.translate(s,!1,!this.horiz,null,!0)+(o?0:this.pos)},a.prototype.toValue=function(s,o){return this.translate(s-(o?0:this.pos),!0,!this.horiz,null,!0)},a.prototype.getPlotLinePath=function(s){function d(s,o,_){return("pass"!==Q&&s_)&&(Q?s=Y(s,o,_):O=!0),s}var o,_,S,R,O,P=this,D=P.chart,N=P.left,V=P.top,j=s.old,K=s.value,W=s.lineWidth,U=j&&D.oldChartHeight||D.chartHeight,$=j&&D.oldChartWidth||D.chartWidth,X=P.transB,Z=s.translatedValue,Q=s.force;return s={value:K,lineWidth:W,old:j,force:Q,acrossPanes:s.acrossPanes,translatedValue:Z},ie(this,"getPlotLinePath",s,(function(s){Z=ce(Z,P.translate(K,null,null,j)),Z=Y(Z,-1e5,1e5),o=S=Math.round(Z+X),_=R=Math.round(U-Z-X),re(Z)?P.horiz?(_=V,R=U-P.bottom,o=S=d(o,N,N+P.width)):(o=N,S=$-P.right,_=R=d(_,V,V+P.height)):(O=!0,Q=!1),s.path=O&&!Q?null:D.renderer.crispLine([["M",o,_],["L",S,R]],W||1)})),s.path},a.prototype.getLinearTickPositions=function(s,o,_){var S=$(Math.floor(o/s)*s);_=$(Math.ceil(_/s)*s);var R,O=[];if($(S+s)===S&&(R=20),this.single)return[o];for(o=S;o<=_&&(O.push(o),(o=$(o+s,R))!==P);)var P=o;return O},a.prototype.getMinorTickInterval=function(){var s=this.options;return!0===s.minorTicks?ce(s.minorTickInterval,"auto"):!1===s.minorTicks?null:s.minorTickInterval},a.prototype.getMinorTickPositions=function(){var s=this.options,o=this.tickPositions,_=this.minorTickInterval,S=this.pointRangePadding||0,R=this.min-S,O=(S=this.max+S)-R,P=[];if(O&&O/_=this.minRange,j=this.minRange,K=(j-D+P)/2;K=[P-K,ce(R.min,P-K)],V&&(K[2]=this.logarithmic?this.logarithmic.log2lin(this.dataMin):this.dataMin),D=[(P=W(K))+j,ce(R.max,P+j)],V&&(D[2]=O?O.log2lin(this.dataMax):this.dataMax),(D=U(D))-P=W)Z=W,j=0;else if(this.dataMax<=W){var Q=W;V=0}this.min=ce(U,Z,this.dataMin),this.max=ce(Y,Q,this.dataMax)}if(_&&(this.positiveValuesOnly&&!s&&0>=Math.min(this.min,ce(this.dataMin,this.min))&&ee(10,1,o),this.min=$(_.log2lin(this.min),16),this.max=$(_.log2lin(this.max),16)),this.range&&X(this.max)&&(this.userMin=this.min=U=Math.max(this.dataMin,this.minFromRange()),this.userMax=Y=this.max,this.range=null),ie(this,"foundExtremes"),this.beforePadding&&this.beforePadding(),this.adjustForMinRange(),!(D||this.axisPointRange||this.stacking&&this.stacking.usePercentage||O)&&X(this.min)&&X(this.max)&&(o=this.max-this.min)&&(!X(U)&&j&&(this.min-=o*j),!X(Y)&&V&&(this.max+=o*V)),re(this.userMin)||(re(S.softMin)&&S.softMinthis.max&&(this.max=Y=S.softMax),re(S.ceiling)&&(this.max=Math.min(this.max,S.ceiling))),N&&X(this.dataMin)&&(W=W||0,!X(U)&&this.min=W?this.min=this.options.minRange?Math.min(W,this.max-this.minRange):W:!X(Y)&&this.max>W&&this.dataMax<=W&&(this.max=this.options.minRange?Math.max(W,this.min+this.minRange):W)),re(this.min)&&re(this.max)&&!this.chart.polar&&this.min>this.max&&(X(this.options.min)?this.max=this.min:X(this.options.max)&&(this.min=this.max)),this.tickInterval=this.min===this.max||void 0===this.min||void 0===this.max?1:O&&this.linkedParent&&!K&&P===this.linkedParent.options.tickPixelInterval?K=this.linkedParent.tickInterval:ce(K,this.tickAmount?(this.max-this.min)/Math.max(this.tickAmount-1,1):void 0,D?1:(this.max-this.min)*P/Math.max(this.len,P)),R&&!s){var te=this.min!==(this.old&&this.old.min)||this.max!==(this.old&&this.old.max);this.series.forEach((function(s){s.forceCrop=s.forceCropping&&s.forceCropping(),s.processData(te)})),ie(this,"postProcessData",{hasExtemesChanged:te})}this.setAxisTranslation(),ie(this,"initialAxisTranslation"),this.pointRange&&!K&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval)),s=ce(S.minTickInterval,this.dateTime&&!this.series.some((function(s){return s.noSharedTooltip}))?this.closestPointRange:0),!K&&this.tickIntervalthis.tickInterval||void 0!==this.tickAmount),!!this.tickAmount)),this.tickAmount||(this.tickInterval=this.unsquish()),this.setTickPositions()},a.prototype.setTickPositions=function(){var s=this.options,o=s.tickPositions,_=this.getMinorTickInterval(),S=this.hasVerticalPanning(),R="colorAxis"===this.coll,O=(R||!S)&&s.startOnTick;S=(R||!S)&&s.endOnTick,R=s.tickPositioner,this.tickmarkOffset=this.categories&&"between"===s.tickmarkPlacement&&1===this.tickInterval?.5:0,this.minorTickInterval="auto"===_&&this.tickInterval?this.tickInterval/5:_,this.single=this.min===this.max&&X(this.min)&&!this.tickAmount&&(parseInt(this.min,10)===this.min||!1!==s.allowDecimals),this.tickPositions=_=o&&o.slice(),!_&&(this.ordinal&&this.ordinal.positions||!((this.max-this.min)/this.tickInterval>Math.max(2*this.len,200))?_=this.dateTime?this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,s.units),this.min,this.max,s.startOfWeek,this.ordinal&&this.ordinal.positions,this.closestPointRange,!0):this.logarithmic?this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max):(_=[this.min,this.max],ee(19,!1,this.chart)),_.length>this.len&&((_=[_[0],_.pop()])[0]===_[1]&&(_.length=1)),this.tickPositions=_,R&&(R=R.apply(this,[this.min,this.max])))&&(this.tickPositions=_=R),this.paddedTicks=_.slice(0),this.trimTicks(_,O,S),this.isLinked||(this.single&&2>_.length&&!this.categories&&!this.series.some((function(s){return s.is("heatmap")&&"between"===s.options.pointPlacement}))&&(this.min-=.5,this.max+=.5),o||R||this.adjustTickAmount()),ie(this,"afterSetTickPositions")},a.prototype.trimTicks=function(s,o,_){var S=s[0],R=s[s.length-1],O=!this.isOrdinal&&this.minPointOffset||0;if(ie(this,"trimTicks"),!this.isLinked){if(o&&-1/0!==S)this.min=S;else for(;this.min-O>s[0];)s.shift();if(_)this.max=R;else for(;this.max+O_&&(this.finalTickAmt=_,_=5),this.tickAmount=_},a.prototype.adjustTickAmount=function(){var s=this.options,o=this.tickInterval,_=this.tickPositions,S=this.tickAmount,R=this.finalTickAmt,O=_&&_.length,P=ce(this.threshold,this.softThreshold?0:null);if(this.hasData()&&re(this.min)&&re(this.max)){if(OS&&(this.tickInterval*=2,this.setTickPositions());if(X(R)){for(o=s=_.length;o--;)(3===R&&1==o%2||2>=R&&0D&&(o=D)),X(R)&&(OD&&(O=D))),_.displayBtn=void 0!==o||void 0!==O,_.setExtremes(o,O,!1,void 0,{trigger:"zoom"})),s.zoomed=!0})),s.zoomed},a.prototype.setAxisSize=function(){var s=this.chart,o=this.options,_=o.offsets||[0,0,0,0],S=this.horiz,R=this.width=Math.round(he(ce(o.width,s.plotWidth-_[3]+_[1]),s.plotWidth)),O=this.height=Math.round(he(ce(o.height,s.plotHeight-_[0]+_[2]),s.plotHeight)),P=this.top=Math.round(he(ce(o.top,s.plotTop+_[0]),s.plotHeight,s.plotTop));o=this.left=Math.round(he(ce(o.left,s.plotLeft+_[3]),s.plotWidth,s.plotLeft)),this.bottom=s.chartHeight-O-P,this.right=s.chartWidth-R-o,this.len=Math.max(S?R:O,0),this.pos=S?o:P},a.prototype.getExtremes=function(){var s=this.logarithmic;return{min:s?$(s.lin2log(this.min)):this.min,max:s?$(s.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},a.prototype.getThreshold=function(s){var o=this.logarithmic,_=o?o.lin2log(this.min):this.min;return o=o?o.lin2log(this.max):this.max,null===s||-1/0===s?s=_:1/0===s?s=o:_>s?s=_:oo?s.align="right":195o&&(s.align="left")})),s.align},a.prototype.tickSize=function(s){var o=this.options,_=ce(o["tick"===s?"tickWidth":"minorTickWidth"],"tick"===s&&this.isXAxis&&!this.categories?1:0),S=o["tick"===s?"tickLength":"minorTickLength"];if(_&&S){"inside"===o[s+"Position"]&&(S=-S);var R=[S,_]}return ie(this,"afterTickSize",s={tickSize:R}),s.tickSize},a.prototype.labelMetrics=function(){var s=this.tickPositions&&this.tickPositions[0]||0;return this.chart.renderer.fontMetrics(this.options.labels.style.fontSize,this.ticks[s]&&this.ticks[s].label)},a.prototype.unsquish=function(){var s,o,_=this.options.labels,S=this.horiz,R=this.tickInterval,O=this.len/(((this.categories?1:0)+this.max-this.min)/R),P=_.rotation,D=this.labelMetrics(),N=Math.max(this.max-this.min,0),h=function(s){var o=s/(O||1);return(o=1N&&1/0!==s&&1/0!==O&&N&&(o=Math.ceil(N/R)),$(o*R)},V=R,j=Number.MAX_VALUE;if(S){if(!_.staggerLines&&!_.step)if(re(P))var W=[P];else O<_.autoRotationLimit&&(W=_.autoRotation);W&&W.forEach((function(_){if(_===P||_&&-90<=_&&90>=_){var S=(o=h(Math.abs(D.h/Math.sin(K*_))))+Math.abs(_/360);SS.step)return S.rotation?0:(this.staggerLines||1)*this.len/R;if(!_){if(void 0!==(s=S.style.width))return parseInt(String(s),10);if(O)return O-o.spacing[3]}return.33*o.chartWidth},a.prototype.renderUnsquish=function(){var s=this.chart,o=s.renderer,_=this.tickPositions,S=this.ticks,R=this.options.labels,O=R.style,P=this.horiz,D=this.getSlotWidth(),N=Math.max(1,Math.round(D-2*R.padding)),V={},j=this.labelMetrics(),K=O.textOverflow,W=0;if(se(R.rotation)||(V.rotation=R.rotation||0),_.forEach((function(s){(s=S[s]).movedLabel&&s.replaceMovedLabel(),s&&s.label&&s.label.textPxLength>W&&(W=s.label.textPxLength)})),this.maxLabelLength=W,this.autoRotation)W>N&&W>j.h?V.rotation=this.labelRotation:this.labelRotation=0;else if(D){var U=N;if(!K){var Y="clip";for(N=_.length;!P&&N--;){var $=_[N];($=S[$].label)&&($.styles&&"ellipsis"===$.styles.textOverflow?$.css({textOverflow:"clip"}):$.textPxLength>D&&$.css({width:D+"px"}),$.getBBox().height>this.len/_.length-(j.h-j.f)&&($.specificTextOverflow="ellipsis"))}}}V.rotation&&(U=W>.5*s.chartHeight?.33*s.chartHeight:W,K||(Y="ellipsis")),(this.labelAlign=R.align||this.autoLabelAlign(this.labelRotation))&&(V.align=this.labelAlign),_.forEach((function(s){var o=(s=S[s])&&s.label,_=O.width,R={};o&&(o.attr(V),s.shortenLabel?s.shortenLabel():U&&!_&&"nowrap"!==O.whiteSpace&&(U=this.min&&s<=this.max||this.grid&&this.grid.isColumn)&&(S[s]||(S[s]=new P(this,s)),_&&S[s].isNew&&S[s].render(o,!0,-1),S[s].render(o))},a.prototype.render=function(){var s,o,_=this,S=_.chart,R=_.logarithmic,D=_.options,V=_.isLinked,j=_.tickPositions,K=_.axisTitle,W=_.ticks,U=_.minorTicks,Y=_.alternateBands,$=D.stackLabels,X=D.alternateGridColor,Z=_.tickmarkOffset,Q=_.axisLine,ee=_.showAxis,te=N(S.renderer.globalAnimation);if(_.labelEdge.length=0,_.overlap=!1,[W,U,Y].forEach((function(s){de(s,(function(s){s.isActive=!1}))})),_.hasData()||V){var ae=_.chart.hasRendered&&_.old&&re(_.old.min);_.minorTickInterval&&!_.categories&&_.getMinorTickPositions().forEach((function(s){_.renderMinorTick(s,ae)})),j.length&&(j.forEach((function(s,o){_.renderTick(s,o,ae)})),Z&&(0===_.min||_.single)&&(W[-1]||(W[-1]=new P(_,-1,null,!0)),W[-1].render(-1))),X&&j.forEach((function(P,D){o=void 0!==j[D+1]?j[D+1]+Z:_.max-Z,0==D%2&&P<_.max&&o<=_.max+(S.polar?-Z:Z)&&(Y[P]||(Y[P]=new O.PlotLineOrBand(_)),s=P+Z,Y[P].options={from:R?R.lin2log(s):s,to:R?R.lin2log(o):o,color:X,className:"highcharts-alternate-grid"},Y[P].render(),Y[P].isActive=!0)})),_._addedPlotLB||(_._addedPlotLB=!0,(D.plotLines||[]).concat(D.plotBands||[]).forEach((function(s){_.addPlotBandOrLine(s)})))}[W,U,Y].forEach((function(s){var o=[],_=te.duration;de(s,(function(s,_){s.isActive||(s.render(_,!1,0),s.isActive=!1,o.push(_))})),fe((function(){for(var _=o.length;_--;)s[o[_]]&&!s[o[_]].isActive&&(s[o[_]].destroy(),delete s[o[_]])}),s!==Y&&S.hasRendered&&_?_:0)})),Q&&(Q[Q.isPlaced?"animate":"attr"]({d:this.getLinePath(Q.strokeWidth())}),Q.isPlaced=!0,Q[ee?"show":"hide"](ee)),K&&ee&&(D=_.getTitlePosition(),re(D.y)?(K[K.isNew?"attr":"animate"](D),K.isNew=!1):(K.attr("y",-9999),K.isNew=!0)),$&&$.enabled&&_.stacking&&_.stacking.renderStackTotals(),_.old={len:_.len,max:_.max,min:_.min,transA:_.transA,userMax:_.userMax,userMin:_.userMin},_.isDirty=!1,ie(this,"afterRender")},a.prototype.redraw=function(){this.visible&&(this.render(),this.plotLinesAndBands.forEach((function(s){s.render()}))),this.series.forEach((function(s){s.isDirty=!0}))},a.prototype.getKeepProps=function(){return this.keepProps||a.keepProps},a.prototype.destroy=function(s){var o=this,_=o.plotLinesAndBands,S=this.eventOptions;if(ie(this,"destroy",{keepEvents:s}),s||ue(o),[o.ticks,o.minorTicks,o.alternateBands].forEach((function(s){Z(s)})),_)for(s=_.length;s--;)_[s].destroy();for(var R in"axisLine axisTitle axisGroup gridGroup labelGroup cross scrollbar".split(" ").forEach((function(s){o[s]&&(o[s]=o[s].destroy())})),o.plotLinesAndBandsGroups)o.plotLinesAndBandsGroups[R]=o.plotLinesAndBandsGroups[R].destroy();de(o,(function(s,_){-1===o.getKeepProps().indexOf(_)&&delete o[_]})),this.eventOptions=S},a.prototype.drawCrosshair=function(s,o){var S,R=this.crosshair,O=ce(R&&R.snap,!0),P=this.chart,D=this.cross;if(ie(this,"drawCrosshair",{e:s,point:o}),s||(s=this.cross&&this.cross.e),R&&!1!==(X(o)||!O)){if(O?X(o)&&(S=ce("colorAxis"!==this.coll?o.crosshairPos:null,this.isXAxis?o.plotX:this.len-o.plotY)):S=s&&(this.horiz?s.chartX-this.pos:this.len-s.chartY+this.pos),X(S)){var N={value:o&&(this.isXAxis?o.x:ce(o.stackY,o.y)),translatedValue:S};P.polar&&te(N,{isCrosshair:!0,chartX:s&&s.chartX,chartY:s&&s.chartY,point:o}),N=this.getPlotLinePath(N)||null}if(!X(N))return void this.hideCrosshair();O=this.categories&&!this.isRadial,D||(this.cross=D=P.renderer.path().addClass("highcharts-crosshair highcharts-crosshair-"+(O?"category ":"thin ")+(R.className||"")).attr({zIndex:ce(R.zIndex,2)}).add(),P.styledMode||(D.attr({stroke:R.color||(O?_.parse("#ccd6eb").setOpacity(.25).get():"#cccccc"),"stroke-width":ce(R.width,1)}).css({"pointer-events":"none"}),R.dashStyle&&D.attr({dashstyle:R.dashStyle}))),D.show().attr({d:N}),O&&!R.width&&D.attr({"stroke-width":this.transA}),this.cross.e=s}else this.hideCrosshair();ie(this,"afterDrawCrosshair",{e:s,point:o})},a.prototype.hideCrosshair=function(){this.cross&&this.cross.hide(),ie(this,"afterHideCrosshair")},a.prototype.hasVerticalPanning=function(){var s=this.chart.options.chart.panning;return!!(s&&s.enabled&&/y/.test(s.type))},a.prototype.validatePositiveValue=function(s){return re(s)&&0o&&(!P||V<=_)&&void 0!==V&&j.push(V),V>_&&(U=!0),V=$}}}else o=this.lin2log(o),_=this.lin2log(_),s=P?D.getMinorTickInterval():V.tickInterval,s=O("auto"===s?null:s,this.minorAutoInterval,V.tickPixelInterval/(P?5:1)*(_-o)/((P?N/D.tickPositions.length:N)||1)),s=R(s,void 0,S(s)),j=D.getLinearTickPositions(s,o,_).map(this.log2lin),P||(this.minorAutoInterval=s/5);return P||(D.tickInterval=s),j},a.prototype.lin2log=function(s){return Math.pow(10,s)},a.prototype.log2lin=function(s){return Math.log(s)/Math.LN10},a}();s.Additions=P}(o||(o={})),o})),M(o,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[o["Core/Utilities.js"]],(function(s){var o,_=s.erase,S=s.extend,R=s.isNumber;return function(s){var o,O=[];s.compose=function(s,_){return o||(o=s),-1===O.indexOf(_)&&(O.push(_),S(_.prototype,P.prototype)),_};var P=function(){function a(){}return a.prototype.getPlotBandPath=function(s,o,_){void 0===_&&(_=this.options);var S=this.getPlotLinePath({value:o,force:!0,acrossPanes:_.acrossPanes}),O=[],P=this.horiz;if(o=!R(this.min)||!R(this.max)||sthis.max&&o>this.max,s=this.getPlotLinePath({value:s,force:!0,acrossPanes:_.acrossPanes}),_=1,s&&S){if(o){var D=s.toString()===S.toString();_=0}for(o=0;oZ-N?Z:Z-N);else{if(!X)return!1;D[s]=Math.max(P,R+N+_>o?R:R+N)}},w=function(s,o,_,S,R){var P;return Ro-O?P=!1:D[s]=R<_/2?1:R>o-S/2?o-S-2:R-_/2,P},E=function(s){var o=U;U=Y,Y=o,S=s},T=function(){!1!==B.apply(0,U)?!1!==w.apply(0,Y)||S||(E(!0),T()):S?D.x=D.y=0:(E(!0),T())};return(R.inverted||1o}))&&(s=s.map((function(s){var o=d(s.anchorX,s.anchorY,s.point.isHeader,s.boxWidth,!1);return U(s,{target:o.y,x:o.x})}))),_.cleanSplit(),D(s,pe);var fe=ce,ge=ce;s.forEach((function(s){var o=s.x,S=s.boxWidth;(s=s.isHeader)||(_.outside&&ce+oge&&(ge=ce+o))})),s.forEach((function(s){var o=s.x,S=s.anchorX,R=s.pos,O=s.point.isHeader;if(R={visibility:void 0===R?"hidden":"inherit",x:o,y:R+he,anchorX:S,anchorY:s.anchorY},_.outside&&o_[0]?Math.max(Math.abs(_[0]),R.width-_[0]):Math.max(Math.abs(_[0]),R.width),S.height=0>_[1]?Math.max(Math.abs(_[1]),R.height-Math.abs(_[1])):Math.max(Math.abs(_[1]),R.height),this.tracker?this.tracker.attr(S):(this.tracker=o.renderer.rect(S).addClass("highcharts-tracker").add(o),s.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}}},a.prototype.styledModeFormat=function(s){return s.replace('style="font-size: 10px"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex}"')},a.prototype.tooltipFooterHeaderFormatter=function(s,o){var _=s.series,S=_.tooltipOptions,R=_.xAxis,P=R&&R.dateTime;R={isFooter:o,labelConfig:s};var D=S.xDateFormat,N=S[o?"footerFormat":"headerFormat"];return Y(this,"headerFormatter",R,(function(o){P&&!D&&X(s.key)&&(D=P.getXDateFormat(s.key,S.dateTimeLabelFormats)),P&&D&&(s.point&&s.point.tooltipDateKeys||["key"]).forEach((function(s){N=N.replace("{point."+s+"}","{point."+s+":"+D+"}")})),_.chart.styledMode&&(N=this.styledModeFormat(N)),o.text=O(N,{point:s,series:_},this.chart)})),R.text},a.prototype.update=function(s){this.destroy(),Q(!0,this.chart.options.tooltip.userOptions,s),this.init(this.chart,Q(!0,this.options,s))},a.prototype.updatePosition=function(s){var o=this.chart,_=this.options,S=o.pointer,R=this.getLabel();S=S.getChartPosition();var O=(_.positioner||this.getPosition).call(this,R.width,R.height,s),P=s.plotX+o.plotLeft;s=s.plotY+o.plotTop,this.outside&&(_=_.borderWidth+2*this.distance,this.renderer.setSize(R.width+_,R.height+_,!1),1===S.scaleX&&1===S.scaleY||(j(this.container,{transform:"scale("+S.scaleX+", "+S.scaleY+")"}),P*=S.scaleX,s*=S.scaleY),P+=S.left-O.x,s+=S.top-O.y),this.move(Math.round(O.x),Math.round(O.y||0),P,s)},a}()})),M(o,"Core/Series/Point.js",[o["Core/Renderer/HTML/AST.js"],o["Core/Animation/AnimationUtilities.js"],o["Core/DefaultOptions.js"],o["Core/FormatUtilities.js"],o["Core/Utilities.js"]],(function(s,o,_,S,R){var O=o.animObject,P=_.defaultOptions,D=S.format,N=R.addEvent,V=R.defined,j=R.erase,K=R.extend,W=R.fireEvent,U=R.getNestedProperty,Y=R.isArray,$=R.isFunction,X=R.isNumber,Z=R.isObject,Q=R.merge,ee=R.objectEach,te=R.pick,ie=R.syncTimeout,ae=R.removeEvent,ne=R.uniqueKey;return o=function(){function g(){this.colorIndex=this.category=void 0,this.formatPrefix="point",this.id=void 0,this.isNull=!1,this.percentage=this.options=this.name=void 0,this.selected=!1,this.total=this.series=void 0,this.visible=!0,this.x=void 0}return g.prototype.animateBeforeDestroy=function(){var s=this,o={x:s.startXPos,opacity:0},_=s.getGraphicalProps();_.singular.forEach((function(_){s[_]=s[_].animate("dataLabel"===_?{x:s[_].startXPos,y:s[_].startYPos,opacity:0}:o)})),_.plural.forEach((function(o){s[o].forEach((function(o){o.element&&o.animate(K({x:s.startXPos},o.startYPos?{x:o.startXPos,y:o.startYPos}:{}))}))}))},g.prototype.applyOptions=function(s,o){var _=this.series,S=_.options.pointValKey||_.pointValKey;return s=g.prototype.optionsToObject.call(this,s),K(this,s),this.options=this.options?K(this.options,s):s,s.group&&delete this.group,s.dataLabels&&delete this.dataLabels,S&&(this.y=g.prototype.getNestedProperty.call(this,S)),this.formatPrefix=(this.isNull=te(this.isValid&&!this.isValid(),null===this.x||!X(this.y)))?"null":"point",this.selected&&(this.state="select"),"name"in this&&void 0===o&&_.xAxis&&_.xAxis.hasNames&&(this.x=_.xAxis.nameToX(this)),void 0===this.x&&_?this.x=void 0===o?_.autoIncrement():o:X(s.x)&&_.options.relativeXValue&&(this.x=_.autoIncrement(s.x)),this},g.prototype.destroy=function(){function b(){for(S in(s.graphic||s.dataLabel||s.dataLabels)&&(ae(s),s.destroyElements()),s)s[S]=null}var s=this,o=s.series,_=o.chart;o=o.options.dataSorting;var S,R=_.hoverPoints,P=O(s.series.chart.renderer.globalAnimation);s.legendItem&&_.legend.destroyItem(s),R&&(s.setState(),j(R,s),R.length||(_.hoverPoints=null)),s===_.hoverPoint&&s.onMouseOut(),o&&o.enabled?(this.animateBeforeDestroy(),ie(b,P.duration)):b(),_.pointCount--},g.prototype.destroyElements=function(s){var o=this;(s=o.getGraphicalProps(s)).singular.forEach((function(s){o[s]=o[s].destroy()})),s.plural.forEach((function(s){o[s].forEach((function(s){s.element&&s.destroy()})),delete o[s]}))},g.prototype.firePointEvent=function(s,o,_){var S=this,R=this.series.options;(R.point.events[s]||S.options&&S.options.events&&S.options.events[s])&&S.importEvents(),"click"===s&&R.allowPointSelect&&(_=function(s){S.select&&S.select(null,s.ctrlKey||s.metaKey||s.shiftKey)}),W(S,s,o,_)},g.prototype.getClassName=function(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")},g.prototype.getGraphicalProps=function(s){var o,_=this,S=[],R={singular:[],plural:[]};for((s=s||{graphic:1,dataLabel:1}).graphic&&S.push("graphic","upperGraphic","shadowGroup"),s.dataLabel&&S.push("dataLabel","dataLabelUpper","connector"),o=S.length;o--;){var O=S[o];_[O]&&R.singular.push(O)}return["dataLabel","connector"].forEach((function(o){var S=o+"s";s[o]&&_[S]&&R.plural.push(S)})),R},g.prototype.getLabelConfig=function(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}},g.prototype.getNestedProperty=function(s){if(s)return 0===s.indexOf("custom.")?U(s,this.options):this[s]},g.prototype.getZone=function(){var s=this.series,o=s.zones;s=s.zoneAxis||"y";var _,S=0;for(_=o[S];this[s]>=_.value;)_=o[++S];return this.nonZonedColor||(this.nonZonedColor=this.color),this.color=_&&_.color&&!this.options.color?_.color:this.nonZonedColor,_},g.prototype.hasNewShapeType=function(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType},g.prototype.init=function(s,o,_){return this.series=s,this.applyOptions(o,_),this.id=V(this.id)?this.id:ne(),this.resolveColor(),s.chart.pointCount++,W(this,"afterInit"),this},g.prototype.optionsToObject=function(s){var o=this.series,_=o.options.keys,S=_||o.pointArrayMap||["y"],R=S.length,O={},P=0,D=0;if(X(s)||null===s)O[S[0]]=s;else if(Y(s))for(!_&&s.length>R&&("string"===(o=typeof s[0])?O.name=s[0]:"number"===o&&(O.x=s[0]),P++);DP+N&&(Y=P+N),XD+V&&(X=D+V),this.hasDragged=Math.sqrt(Math.pow(j-Y,2)+Math.pow(K-X,2)),10s.options.findNearestPointBy.indexOf("y");if(s=s.searchPoint(_,R),(R=$(s,!0)&&s.series)&&!(R=!$(S,!0))){R=S.distX-s.distX;var O=S.dist-s.dist,P=(s.series.group&&s.series.group.zIndex)-(S.series.group&&S.series.group.zIndex);R=0<(0!==R&&o?R:0!==O?O:0!==P?P:S.series.index>s.series.index?-1:1)}R&&(S=s)})),S)},a.prototype.getChartCoordinatesFromPoint=function(s,o){var _=s.series,S=_.xAxis;_=_.yAxis;var R=s.shapeArgs;if(S&&_){var O=Q(s.clientX,s.plotX),P=s.plotY||0;return s.isNode&&R&&Y(R.x)&&Y(R.y)&&(O=R.x,P=R.y),o?{chartX:_.len+_.pos-P,chartY:S.len+S.pos-O}:{chartX:O+S.pos,chartY:P+_.pos}}if(R&&R.x&&R.y)return{chartX:R.x,chartY:R.y}},a.prototype.getChartPosition=function(){if(this.chartPosition)return this.chartPosition;var s=this.chart.container,o=Z(s);this.chartPosition={left:o.left,top:o.top,scaleX:1,scaleY:1};var _=s.offsetWidth;return s=s.offsetHeight,2<_&&2$.max&&(_=$.max-ee,re=!0);re?(ae-=.8*(ae-P[V][0]),"number"==typeof ne&&(ne-=.8*(ne-P[V][1])),o()):P[V]=[ae,ne],Y||(O[V]=te-U,O[W]=ee),O=Y?1/ie:ie,R[W]=ee,R[V]=_,S[Y?s?"scaleY":"scaleX":"scale"+j]=ie,S["translate"+j]=O*U+(ae-O*Z)},a.prototype.reset=function(s,o){var _=this.chart,S=_.hoverSeries,R=_.hoverPoint,O=_.hoverPoints,P=_.tooltip,D=P&&P.shared?O:R;s&&D&&ee(D).forEach((function(o){o.series.isCartesian&&void 0===o.plotX&&(s=!1)})),s?P&&D&&ee(D).length&&(P.refresh(D),P.shared&&O?O.forEach((function(s){s.setState(s.state,!0),s.series.isCartesian&&(s.series.xAxis.crosshair&&s.series.xAxis.drawCrosshair(null,s),s.series.yAxis.crosshair&&s.series.yAxis.drawCrosshair(null,s))})):R&&(R.setState(R.state,!0),_.axes.forEach((function(s){s.crosshair&&R.series[s.coll]===s&&s.drawCrosshair(null,R)})))):(R&&R.onMouseOut(),O&&O.forEach((function(s){s.setState()})),S&&S.onMouseOut(),P&&P.hide(o),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),_.axes.forEach((function(s){s.hideCrosshair()})),this.hoverX=_.hoverPoints=_.hoverPoint=null)},a.prototype.runPointActions=function(s,o){var _=this.chart,S=_.tooltip&&_.tooltip.options.enabled?_.tooltip:void 0,R=!!S&&S.shared,P=o||_.hoverPoint,N=P&&P.series||_.hoverSeries;P=(o=this.getHoverData(P,N,_.series,(!s||"touchmove"!==s.type)&&(!!o||N&&N.directTouch&&this.isDirectTouch),R,s)).hoverPoint,N=o.hoverSeries;var V=o.hoverPoints;if(o=N&&N.tooltipOptions.followPointer&&!N.tooltipOptions.split,R=R&&N&&!N.noSharedTooltip,P&&(P!==_.hoverPoint||S&&S.isHidden)){if((_.hoverPoints||[]).forEach((function(s){-1===V.indexOf(s)&&s.setState()})),_.hoverSeries!==N&&N.onMouseOver(),this.applyInactiveState(V),(V||[]).forEach((function(s){s.setState("hover")})),_.hoverPoint&&_.hoverPoint.firePointEvent("mouseOut"),!P.series)return;_.hoverPoints=V,_.hoverPoint=P,P.firePointEvent("mouseOver"),S&&S.refresh(R?V:P,s)}else o&&S&&!S.isHidden&&(P=S.getAnchor([{}],s),_.isInsidePlot(P[0],P[1],{visiblePlotOnly:!0})&&S.updatePosition({plotX:P[0],plotY:P[1]}));this.unDocMouseMove||(this.unDocMouseMove=D(_.container.ownerDocument,"mousemove",(function(s){var o=O[a.hoverChartIndex];o&&o.pointer.onDocumentMouseMove(s)})),this.eventsToUnbind.push(this.unDocMouseMove)),_.axes.forEach((function(o){var S,R=Q((o.crosshair||{}).snap,!0);R&&((S=_.hoverPoint)&&S.series[o.coll]===o||(S=W(V,(function(s){return s.series[o.coll]===o})))),S||!R?o.drawCrosshair(s,S):o.hideCrosshair()}))},a.prototype.scaleGroups=function(s,o){var _=this.chart;_.series.forEach((function(S){var R=s||S.getPlotBox();S.group&&(S.xAxis&&S.xAxis.zoomEnabled||_.mapView)&&(S.group.attr(R),S.markerGroup&&(S.markerGroup.attr(R),S.markerGroup.clip(o?_.clipRect:null)),S.dataLabelsGroup&&S.dataLabelsGroup.attr(R))})),_.clipRect.attr(o||_.clipBox)},a.prototype.setDOMEvents=function(){var s=this,_=this.chart.container,S=_.ownerDocument;_.onmousedown=this.onContainerMouseDown.bind(this),_.onmousemove=this.onContainerMouseMove.bind(this),_.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(D(_,"mouseenter",this.onContainerMouseEnter.bind(this))),this.eventsToUnbind.push(D(_,"mouseleave",this.onContainerMouseLeave.bind(this))),a.unbindDocumentMouseUp||(a.unbindDocumentMouseUp=D(S,"mouseup",this.onDocumentMouseUp.bind(this)));for(var R=this.chart.renderTo.parentElement;R&&"BODY"!==R.tagName;)this.eventsToUnbind.push(D(R,"scroll",(function(){delete s.chartPosition}))),R=R.parentElement;o.hasTouch&&(this.eventsToUnbind.push(D(_,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1})),this.eventsToUnbind.push(D(_,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),a.unbindDocumentTouchEnd||(a.unbindDocumentTouchEnd=D(S,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1})))},a.prototype.setHoverChartIndex=function(){var s=this.chart,_=o.charts[Q(a.hoverChartIndex,-1)];_&&_!==s&&_.pointer.onContainerMouseLeave({relatedTarget:!0}),_&&_.mouseIsDown||(a.hoverChartIndex=s.index)},a.prototype.touch=function(s,o){var _=this.chart;if(this.setHoverChartIndex(),1===s.touches.length)if(s=this.normalize(s),_.isInsidePlot(s.chartX-_.plotLeft,s.chartY-_.plotTop,{visiblePlotOnly:!0})&&!_.openMenu){if(o&&this.runPointActions(s),"touchmove"===s.type)var S=!!(o=this.pinchDown)[0]&&4<=Math.sqrt(Math.pow(o[0].chartX-s.chartX,2)+Math.pow(o[0].chartY-s.chartY,2));Q(S,!0)&&this.pinch(s)}else o&&this.reset();else 2===s.touches.length&&this.pinch(s)},a.prototype.touchSelect=function(s){return!(!this.chart.options.chart.zoomBySingleTouch||!s.touches||1!==s.touches.length)},a.prototype.zoomOption=function(s){var o=this.chart,_=o.options.chart;o=o.inverted;var S=_.zoomType||"";/touch/.test(s.type)&&(S=Q(_.pinchType,S)),this.zoomX=s=/x/.test(S),this.zoomY=_=/y/.test(S),this.zoomHor=s&&!o||_&&o,this.zoomVert=_&&!o||s&&o,this.hasZoom=s||_},a}()})),M(o,"Core/MSPointer.js",[o["Core/Globals.js"],o["Core/Pointer.js"],o["Core/Utilities.js"]],(function(s,o,_){function v(){var s=[];return s.item=function(s){return this[s]},j(W,(function(o){s.push({pageX:o.pageX,pageY:o.pageY,target:o.target})})),s}function y(s,_,S,O){var D=R[o.hoverChartIndex||NaN];"touch"!==s.pointerType&&s.pointerType!==s.MSPOINTER_TYPE_TOUCH||!D||(D=D.pointer,O(s),D[_]({type:S,target:s.currentTarget,preventDefault:P,touches:v()}))}var S=this&&this.__extends||function(){var a=function(s,o){return(a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(s,o){s.__proto__=o}||function(s,o){for(var _ in o)o.hasOwnProperty(_)&&(s[_]=o[_])})(s,o)};return function(s,o){function f(){this.constructor=s}a(s,o),s.prototype=null===o?Object.create(o):(f.prototype=o.prototype,new f)}}(),R=s.charts,O=s.doc,P=s.noop,D=s.win,N=_.addEvent,V=_.css,j=_.objectEach,K=_.removeEvent,W={},U=!!D.PointerEvent;return function(o){function p(){return null!==o&&o.apply(this,arguments)||this}return S(p,o),p.isRequired=function(){return!(s.hasTouch||!D.PointerEvent&&!D.MSPointerEvent)},p.prototype.batchMSEvents=function(s){s(this.chart.container,U?"pointerdown":"MSPointerDown",this.onContainerPointerDown),s(this.chart.container,U?"pointermove":"MSPointerMove",this.onContainerPointerMove),s(O,U?"pointerup":"MSPointerUp",this.onDocumentPointerUp)},p.prototype.destroy=function(){this.batchMSEvents(K),o.prototype.destroy.call(this)},p.prototype.init=function(s,_){o.prototype.init.call(this,s,_),this.hasZoom&&V(s.container,{"-ms-touch-action":"none","touch-action":"none"})},p.prototype.onContainerPointerDown=function(s){y(s,"onContainerTouchStart","touchstart",(function(s){W[s.pointerId]={pageX:s.pageX,pageY:s.pageY,target:s.currentTarget}}))},p.prototype.onContainerPointerMove=function(s){y(s,"onContainerTouchMove","touchmove",(function(s){W[s.pointerId]={pageX:s.pageX,pageY:s.pageY},W[s.pointerId].target||(W[s.pointerId].target=s.currentTarget)}))},p.prototype.onDocumentPointerUp=function(s){y(s,"onDocumentTouchEnd","touchend",(function(s){delete W[s.pointerId]}))},p.prototype.setDOMEvents=function(){o.prototype.setDOMEvents.call(this),(this.hasZoom||this.followTouchMove)&&this.batchMSEvents(N)},p}(o)})),M(o,"Core/Legend/Legend.js",[o["Core/Animation/AnimationUtilities.js"],o["Core/FormatUtilities.js"],o["Core/Globals.js"],o["Core/Series/Point.js"],o["Core/Renderer/RendererUtilities.js"],o["Core/Utilities.js"]],(function(s,o,_,S,R,O){var P=s.animObject,D=s.setAnimation,N=o.format;s=_.isFirefox;var V=_.marginNames;_=_.win;var j=R.distribute,K=O.addEvent,W=O.createElement,U=O.css,Y=O.defined,$=O.discardElement,X=O.find,Z=O.fireEvent,Q=O.isNumber,ee=O.merge,te=O.pick,ie=O.relativeLength,ae=O.stableSort,ne=O.syncTimeout;return R=O.wrap,O=function(){function a(s,o){this.allItems=[],this.contentGroup=this.box=void 0,this.display=!1,this.group=void 0,this.offsetWidth=this.maxLegendWidth=this.maxItemWidth=this.legendWidth=this.legendHeight=this.lastLineHeight=this.lastItemY=this.itemY=this.itemX=this.itemMarginTop=this.itemMarginBottom=this.itemHeight=this.initialItemY=0,this.options={},this.padding=0,this.pages=[],this.proximate=!1,this.scrollGroup=void 0,this.widthOption=this.totalItemWidth=this.titleHeight=this.symbolWidth=this.symbolHeight=0,this.chart=s,this.init(s,o)}return a.prototype.init=function(s,o){this.chart=s,this.setOptions(o),o.enabled&&(this.render(),K(this.chart,"endResize",(function(){this.legend.positionCheckboxes()})),this.proximate?this.unchartrender=K(this.chart,"render",(function(){this.legend.proximatePositions(),this.legend.positionItems()})):this.unchartrender&&this.unchartrender())},a.prototype.setOptions=function(s){var o=te(s.padding,8);this.options=s,this.chart.styledMode||(this.itemStyle=s.itemStyle,this.itemHiddenStyle=ee(this.itemStyle,s.itemHiddenStyle)),this.itemMarginTop=s.itemMarginTop||0,this.itemMarginBottom=s.itemMarginBottom||0,this.padding=o,this.initialItemY=o-5,this.symbolWidth=te(s.symbolWidth,16),this.pages=[],this.proximate="proximate"===s.layout&&!this.chart.inverted,this.baseline=void 0},a.prototype.update=function(s,o){var _=this.chart;this.setOptions(ee(!0,this.options,s)),this.destroy(),_.isDirtyLegend=_.isDirtyBox=!0,te(o,!0)&&_.redraw(),Z(this,"afterUpdate")},a.prototype.colorizeItem=function(s,o){if(s.legendGroup[o?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){var _=this.options,S=s.legendItem,R=s.legendLine,O=s.legendSymbol,P=this.itemHiddenStyle.color;_=o?_.itemStyle.color:P;var D=o&&s.color||P,N=s.options&&s.options.marker,V={fill:D};S&&S.css({fill:_,color:_}),R&&R.attr({stroke:D}),O&&(N&&O.isMarker&&(V=s.pointAttribs(),o||(V.stroke=V.fill=P)),O.attr(V))}Z(this,"afterColorizeItem",{item:s,visible:o})},a.prototype.positionItems=function(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()},a.prototype.positionItem=function(s){var o=this,_=this.options,S=_.symbolPadding,R=!_.rtl,O=s._legendItemPos;_=O[0],O=O[1];var P=s.checkbox,D=s.legendGroup;D&&D.element&&(S={translateX:R?_:this.legendWidth-_-2*S-4,translateY:O},R=function(){Z(o,"afterPositionItem",{item:s})},Y(D.translateY)?D.animate(S,void 0,R):(D.attr(S),R())),P&&(P.x=_,P.y=O)},a.prototype.destroyItem=function(s){var o=s.checkbox;["legendItem","legendLine","legendSymbol","legendGroup"].forEach((function(o){s[o]&&(s[o]=s[o].destroy())})),o&&$(s.checkbox)},a.prototype.destroy=function(){function b(s){this[s]&&(this[s]=this[s].destroy())}this.getAllItems().forEach((function(s){["legendItem","legendGroup"].forEach(b,s)})),"clipRect up down pager nav box title group".split(" ").forEach(b,this),this.display=null},a.prototype.positionCheckboxes=function(){var s=this.group&&this.group.alignAttr,o=this.clipHeight||this.legendHeight,_=this.titleHeight;if(s){var S=s.translateY;this.allItems.forEach((function(R){var O=R.checkbox;if(O){var P=S+_+O.y+(this.scrollOffset||0)+3;U(O,{left:s.translateX+R.checkboxOffset+O.x-20+"px",top:P+"px",display:this.proximate||P>S-6&&P1.5*_?o.height:_))},a.prototype.layoutItem=function(s){var o=this.options,_=this.padding,S="horizontal"===o.layout,R=s.itemHeight,O=this.itemMarginBottom,P=this.itemMarginTop,D=S?te(o.itemDistance,20):0,N=this.maxLegendWidth;o=o.alignColumns&&this.totalItemWidth>N?this.maxItemWidth:s.itemWidth,S&&this.itemX-_+o>N&&(this.itemX=_,this.lastLineHeight&&(this.itemY+=P+this.lastLineHeight+O),this.lastLineHeight=0),this.lastItemY=P+this.itemY+O,this.lastLineHeight=Math.max(R,this.lastLineHeight),s._legendItemPos=[this.itemX,this.itemY],S?this.itemX+=o:(this.itemY+=P+R+O,this.lastLineHeight=R),this.offsetWidth=this.widthOption||Math.max((S?this.itemX-_-(s.checkbox?0:D):o)+_,this.offsetWidth)},a.prototype.getAllItems=function(){var s=[];return this.chart.series.forEach((function(o){var _=o&&o.options;o&&te(_.showInLegend,!Y(_.linkedTo)&&void 0,!0)&&(s=s.concat(o.legendItems||("point"===_.legendType?o.data:o)))})),Z(this,"afterGetAllItems",{allItems:s}),s},a.prototype.getAlignment=function(){var s=this.options;return this.proximate?s.align.charAt(0)+"tv":s.floating?"":s.align.charAt(0)+s.verticalAlign.charAt(0)+s.layout.charAt(0)},a.prototype.adjustMargins=function(s,o){var _=this.chart,S=this.options,R=this.getAlignment();R&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach((function(O,P){O.test(R)&&!Y(s[P])&&(_[V[P]]=Math.max(_[V[P]],_.legend[(P+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][P]*S[P%2?"x":"y"]+te(S.margin,12)+o[P]+(_.titleOffset[P]||0)))}))},a.prototype.proximatePositions=function(){var s=this.chart,o=[],_="left"===this.options.align;this.allItems.forEach((function(S){var R,O=_;if(S.yAxis){S.xAxis.options.reversed&&(O=!O),S.points&&(R=X(O?S.points:S.points.slice(0).reverse(),(function(s){return Q(s.plotY)}))),O=this.itemMarginTop+S.legendItem.getBBox().height+this.itemMarginBottom;var P=S.yAxis.top-s.plotTop;S.visible?(R=R?R.plotY:S.yAxis.height,R+=P-.3*O):R=P+S.yAxis.height,o.push({target:R,size:O,item:S})}}),this),j(o,s.plotHeight).forEach((function(o){o.item._legendItemPos&&(o.item._legendItemPos[1]=s.plotTop-s.spacing[0]+o.pos)}))},a.prototype.render=function(){var s=this.chart,o=s.renderer,_=this.options,S=this.padding,R=this.getAllItems(),O=this.group,P=this.box;this.itemX=S,this.itemY=this.initialItemY,this.lastItemY=this.offsetWidth=0,this.widthOption=ie(_.width,s.spacingBox.width-S);var D=s.spacingBox.width-2*S-_.x;-1<["rm","lm"].indexOf(this.getAlignment().substring(0,2))&&(D/=2),this.maxLegendWidth=this.widthOption||D,O||(this.group=O=o.g("legend").addClass(_.className||"").attr({zIndex:7}).add(),this.contentGroup=o.g().attr({zIndex:1}).add(O),this.scrollGroup=o.g().add(this.contentGroup)),this.renderTitle(),ae(R,(function(s,o){return(s.options&&s.options.legendIndex||0)-(o.options&&o.options.legendIndex||0)})),_.reversed&&R.reverse(),this.allItems=R,this.display=D=!!R.length,this.itemHeight=this.totalItemWidth=this.maxItemWidth=this.lastLineHeight=0,R.forEach(this.renderItem,this),R.forEach(this.layoutItem,this),R=(this.widthOption||this.offsetWidth)+S;var N=this.lastItemY+this.lastLineHeight+this.titleHeight;N=this.handleOverflow(N),N+=S,P||(this.box=P=o.rect().addClass("highcharts-legend-box").attr({r:_.borderRadius}).add(O),P.isNew=!0),s.styledMode||P.attr({stroke:_.borderColor,"stroke-width":_.borderWidth||0,fill:_.backgroundColor||"none"}).shadow(_.shadow),0D&&!1!==K.enabled?(this.clipHeight=o=Math.max(D-20-this.titleHeight-V,0),this.currentPage=te(this.currentPage,1),this.fullHeight=s,$.forEach((function(s,S){var R=s._legendItemPos[1],O=Math.round(s.legendItem.getBBox().height),P=Y.length;(!P||R-Y[P-1]>o&&(_||R)!==Y[P-1])&&(Y.push(_||R),P++),s.pageIx=P-1,_&&($[S-1].pageIx=P-1),S===$.length-1&&R+O-Y[P-1]>o&&O<=o&&(Y.push(R),s.pageIx=P),R!==_&&(_=R)})),Z||(Z=S.clipRect=O.clipRect(0,V,9999,0),S.contentGroup.clip(Z)),q(o),X||(this.nav=X=O.g().attr({zIndex:1}).add(this.group),this.up=O.symbol("triangle",0,0,U,U).add(X),w("upTracker").on("click",(function(){S.scroll(-1,W)})),this.pager=O.text("",15,10).addClass("highcharts-legend-navigation"),R.styledMode||this.pager.css(K.style),this.pager.add(X),this.down=O.symbol("triangle-down",0,0,U,U).add(X),w("downTracker").on("click",(function(){S.scroll(1,W)}))),S.scroll(0),s=D):X&&(q(),this.nav=X.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),s},a.prototype.scroll=function(s,o){var _=this,S=this.chart,R=this.pages,O=R.length,N=this.clipHeight,V=this.options.navigation,j=this.pager,K=this.padding,W=this.currentPage+s;W>O&&(W=O),0=Math.max(N+O,K.pos)&&D<=Math.min(N+O+R.width,K.pos+K.len)||(s.isInsidePlot=!1)}return!_.ignoreY&&s.isInsidePlot&&(S=j&&(S?j.xAxis:j.yAxis)||{pos:P,len:1/0},(_=_.paneCoordinates?S.pos+o:P+o)>=Math.max(V+P,S.pos)&&_<=Math.min(V+P+R.height,S.pos+S.len)||(s.isInsidePlot=!1)),Se(this,"afterIsInsidePlot",s),s.isInsidePlot},a.prototype.redraw=function(s){Se(this,"beforeRedraw");var o=this.hasCartesianSeries?this.axes:this.colorAxis||[],_=this.series,S=this.pointer,R=this.legend,O=this.userOptions.legend,P=this.renderer,D=P.isHidden(),N=[],V=this.isDirtyBox,j=this.isDirtyLegend;for(this.setResponsive&&this.setResponsive(!1),Z(!!this.hasRendered&&s,this),D&&this.temporaryDisplay(),this.layOutTitles(),s=_.length;s--;){var K=_[s];if(K.options.stacking||K.options.centerInCategory){var W=!0;if(K.isDirty){var U=!0;break}}}if(U)for(s=_.length;s--;)(K=_[s]).options.stacking&&(K.isDirty=!0);_.forEach((function(s){s.isDirty&&("point"===s.options.legendType?("function"==typeof s.updateTotals&&s.updateTotals(),j=!0):O&&(O.labelFormatter||O.labelFormat)&&(j=!0)),s.isDirtyData&&Se(s,"updatedData")})),j&&R&&R.options.enabled&&(R.render(),this.isDirtyLegend=!1),W&&this.getStacks(),o.forEach((function(s){s.updateNames(),s.setScale()})),this.getMargins(),o.forEach((function(s){s.isDirty&&(V=!0)})),o.forEach((function(s){var o=s.min+","+s.max;s.extKey!==o&&(s.extKey=o,N.push((function(){Se(s,"afterSetExtremes",ye(s.eventArgs,s.getExtremes())),delete s.eventArgs}))),(V||W)&&s.redraw()})),V&&this.drawChartBox(),Se(this,"predraw"),_.forEach((function(s){(V||s.isDirty)&&s.visible&&s.redraw(),s.isDirtyData=!1})),S&&S.reset(!0),P.draw(),Se(this,"redraw"),Se(this,"render"),D&&this.temporaryDisplay(!0),N.forEach((function(s){s.call()}))},a.prototype.get=function(s){function a(o){return o.id===s||o.options&&o.options.id===s}for(var o=this.series,_=_e(this.axes,a)||_e(this.series,a),S=0;!_&&S=D&&R<=N||V||!fe(R))&&(j=!0),S[V?"zoomX":"zoomY"]&&j&&(o=P.zoom(s.min,s.max),P.displayBtn&&(O=!0))}));var P=_.resetZoomButton;O&&!P?_.showResetZoom():!O&&Ce(P)&&(_.resetZoomButton=P.destroy()),o&&_.redraw(Re(_.options.chart.animation,s&&s.animation,100>_.pointCount))},a.prototype.pan=function(s,o){var _=this,S=_.hoverPoints;o="object"==typeof o?o:{enabled:o,type:"x"};var R=_.options.chart,O=_.options.mapNavigation&&_.options.mapNavigation.enabled;R&&R.panning&&(R.panning=o);var P,D=o.type;Se(this,"pan",{originalEvent:s},(function(){S&&S.forEach((function(s){s.setState()}));var o=_.xAxis;"xy"===D?o=o.concat(_.yAxis):"y"===D&&(o=_.yAxis);var R={};o.forEach((function(o){if(o.options.panningEnabled&&!o.options.isInternal){var S=o.horiz,N=s[S?"chartX":"chartY"],V=_[S=S?"mouseDownX":"mouseDownY"],j=o.minPointOffset||0,K=o.reversed&&!_.inverted||!o.reversed&&_.inverted?-1:1,W=o.getExtremes(),U=o.toValue(V-N,!0)+j*K,Y=o.toValue(V+o.len-N,!0)-(j*K||o.isXAxis&&o.pointRangePadding||0),$=Y=K&&U<=Y&&(o.setExtremes(V,U,!1,!1,{trigger:"pan"}),_.resetZoomButton||O||V===K||U===Y||!D.match("y")||(_.showResetZoom(),o.displayBtn=!1),P=!0),R[S]=N)}})),we(R,(function(s,o){_[o]=s})),P&&_.redraw(!1),pe(_.container,{cursor:"move"})}))},a}(),ye(s.prototype,{callbacks:[],collectionsWithInit:{xAxis:[s.prototype.addAxis,[!0]],yAxis:[s.prototype.addAxis,[!1]],series:[s.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:"backgroundColor borderColor borderWidth borderRadius plotBackgroundColor plotBackgroundImage plotBorderColor plotBorderWidth plotShadow shadow".split(" "),propsRequireReflow:"margin marginTop marginRight marginBottom marginLeft spacing spacingTop spacingRight spacingBottom spacingLeft".split(" "),propsRequireUpdateSeries:"chart.inverted chart.polar chart.ignoreHiddenSeries chart.type colors plotOptions time tooltip".split(" ")}),s})),M(o,"Core/Legend/LegendSymbol.js",[o["Core/Utilities.js"]],(function(s){var o,_=s.merge,S=s.pick;return function(s){s.drawLineMarker=function(s){var o=this.options,R=s.symbolWidth,O=s.symbolHeight,P=O/2,D=this.chart.renderer,N=this.legendGroup;s=s.baseline-Math.round(.3*s.fontMetrics.b);var V={},j=o.marker;this.chart.styledMode||(V={"stroke-width":o.lineWidth||0},o.dashStyle&&(V.dashstyle=o.dashStyle)),this.legendLine=D.path([["M",0,s],["L",R,s]]).addClass("highcharts-graph").attr(V).add(N),j&&!1!==j.enabled&&R&&(o=Math.min(S(j.radius,P),P),0===this.symbol.indexOf("url")&&(j=_(j,{width:O,height:O}),o=0),this.legendSymbol=R=D.symbol(this.symbol,R/2-o,s-o,2*o,2*o,j).addClass("highcharts-point").add(N),R.isMarker=!0)},s.drawRectangle=function(s,o){var _=s.symbolHeight,R=s.options.squareSymbol;o.legendSymbol=this.chart.renderer.rect(R?(s.symbolWidth-_)/2:0,s.baseline-_+1,R?_:s.symbolWidth,_,S(s.options.symbolRadius,_/2)).addClass("highcharts-point").attr({zIndex:3}).add(o.legendGroup)}}(o||(o={})),o})),M(o,"Core/Series/SeriesDefaults.js",[],(function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:50},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",defer:!0,formatter:function(){var s=this.series.chart.numberFormatter;return"number"!=typeof this.y?"":s(this.y,-1)},padding:5,style:{fontSize:"11px",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:50},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:50},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}})),M(o,"Core/Series/Series.js",[o["Core/Animation/AnimationUtilities.js"],o["Core/DefaultOptions.js"],o["Core/Foundation.js"],o["Core/Globals.js"],o["Core/Legend/LegendSymbol.js"],o["Core/Series/Point.js"],o["Core/Series/SeriesDefaults.js"],o["Core/Series/SeriesRegistry.js"],o["Core/Renderer/SVG/SVGElement.js"],o["Core/Utilities.js"]],(function(s,o,_,S,R,O,P,D,N,V){var j=s.animObject,K=s.setAnimation,W=o.defaultOptions,U=_.registerEventOptions,Y=S.hasTouch,$=S.svg,X=S.win,Z=D.seriesTypes,Q=V.addEvent,ee=V.arrayMax,te=V.arrayMin,ie=V.clamp,ae=V.cleanRecursively,ne=V.correctFloat,re=V.defined,se=V.erase,le=V.error,oe=V.extend,de=V.find,ce=V.fireEvent,he=V.getNestedProperty,ue=V.isArray,pe=V.isNumber,fe=V.isString,ge=V.merge,me=V.objectEach,ve=V.pick,ye=V.removeEvent,_e=V.splat,Se=V.syncTimeout;return s=function(){function a(){this.zones=this.yAxis=this.xAxis=this.userOptions=this.tooltipOptions=this.processedYData=this.processedXData=this.points=this.options=this.linkedSeries=this.index=this.eventsToUnbind=this.eventOptions=this.data=this.chart=this._i=void 0}return a.prototype.init=function(s,o){ce(this,"init",{options:o});var _=this,S=s.series;this.eventsToUnbind=[],_.chart=s,_.options=_.setOptions(o),o=_.options,_.linkedSeries=[],_.bindAxes(),oe(_,{name:o.name,state:"",visible:!1!==o.visible,selected:!0===o.selected}),U(this,o);var R,O=o.events;(O&&O.click||o.point&&o.point.events&&o.point.events.click||o.allowPointSelect)&&(s.runTrackerClick=!0),_.getColor(),_.getSymbol(),_.parallelArrays.forEach((function(s){_[s+"Data"]||(_[s+"Data"]=[])})),_.isCartesian&&(s.hasCartesianSeries=!0),S.length&&(R=S[S.length-1]),_._i=ve(R&&R._i,-1)+1,_.opacity=_.options.opacity,s.orderSeries(this.insert(S)),o.dataSorting&&o.dataSorting.enabled?_.setDataSortingOptions():_.points||_.data||_.setData(o.data,!1),ce(this,"afterInit")},a.prototype.is=function(s){return Z[s]&&this instanceof Z[s]},a.prototype.insert=function(s){var o,_=this.options.index;if(pe(_)){for(o=s.length;o--;)if(_>=ve(s[o].options.index,s[o]._i)){s.splice(o+1,0,this);break}-1===o&&s.unshift(this),o+=1}else s.push(this);return ve(o,s.length-1)},a.prototype.bindAxes=function(){var s,o=this,_=o.options,S=o.chart;ce(this,"bindAxes",null,(function(){(o.axisTypes||[]).forEach((function(R){var O=0;S[R].forEach((function(S){s=S.options,(_[R]===O&&!s.isInternal||void 0!==_[R]&&_[R]===s.id||void 0===_[R]&&0===s.index)&&(o.insert(S.series),o[R]=S,S.isDirty=!0),s.isInternal||O++})),o[R]||o.optionalAxis===R||le(18,!0,S)}))})),ce(this,"afterBindAxes")},a.prototype.updateParallelArrays=function(s,o){var _=s.series,S=arguments,R=pe(o)?function(S){var R="y"===S&&_.toYData?_.toYData(s):s[S];_[S+"Data"][o]=R}:function(s){Array.prototype[o].apply(_[s+"Data"],Array.prototype.slice.call(S,2))};_.parallelArrays.forEach(R)},a.prototype.hasData=function(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&0=this.cropStart?V-this.cropStart:V),!S&&pe(V)&&D[V]&&D[V].touched&&(V=void 0),V},a.prototype.updateData=function(s,o){var _,S,R,O=this.options,P=O.dataSorting,D=this.points,N=[],V=this.requireSorting,j=s.length===D.length,K=!0;if(this.xIncrement=null,s.forEach((function(s,o){var S=re(s)&&this.pointClass.prototype.optionsToObject.call({series:this},s)||{},K=S.x;S.id||pe(K)?(-1===(S=this.findPointIndex(S,R))||void 0===S?N.push(s):D[S]&&s!==O.data[S]?(D[S].update(s,!1,null,!1),D[S].touched=!0,V&&(R=S+1)):D[S]&&(D[S].touched=!0),(!j||o!==S||P&&P.enabled||this.hasDerivedData)&&(_=!0)):N.push(s)}),this),_)for(s=D.length;s--;)(S=D[s])&&!S.touched&&S.remove&&S.remove(!1,o);else!j||P&&P.enabled?K=!1:(s.forEach((function(s,o){s!==D[o].y&&D[o].update&&D[o].update(s,!1,null,!1)})),N.length=0);return D.forEach((function(s){s&&(s.touched=!1)})),!!K&&(N.forEach((function(s){this.addPoint(s,!1,null,null,!1)}),this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=ee(this.xData),this.autoIncrement()),!0)},a.prototype.setData=function(s,o,_,S){var R=this,O=R.points,P=O&&O.length||0,D=R.options,N=R.chart,V=D.dataSorting,j=R.xAxis,K=D.turboThreshold,W=this.xData,U=this.yData,Y=R.pointArrayMap;Y=Y&&Y.length;var $,X=D.keys,Z=0,Q=1,ee=null,te=(s=s||[]).length;if(o=ve(o,!0),V&&V.enabled&&(s=this.sortData(s)),!1!==S&&te&&P&&!R.cropped&&!R.hasGroupedData&&R.visible&&!R.isSeriesBoosting&&($=this.updateData(s,_)),!$){if(R.xIncrement=null,R.colorCounter=0,this.parallelArrays.forEach((function(s){R[s+"Data"].length=0})),K&&te>K)if(ee=R.getFirstValidPoint(s),pe(ee))for(_=0;_s?1:0})).forEach((function(s,o){s.x=o}),this),o.linkedSeries&&o.linkedSeries.forEach((function(o){var _=o.options,S=_.data;_.dataSorting&&_.dataSorting.enabled||!S||(S.forEach((function(_,R){S[R]=d(o,_),s[R]&&(S[R].x=s[R].x,S[R].index=R)})),o.setData(S,!1))})),s},a.prototype.getProcessedData=function(s){var o=this.xAxis,_=this.options,S=_.cropThreshold,R=s||this.getExtremesFromAll||_.getExtremesFromAll,O=this.isCartesian;s=o&&o.val2lin,_=!(!o||!o.logarithmic);var P=0,D=this.xData,N=this.yData,V=this.requireSorting,j=!1,K=D.length;if(o){var W=(j=o.getExtremes()).min,U=j.max;j=o.categories&&!o.names.length}if(O&&this.sorted&&!R&&(!S||K>S||this.forceCrop))if(D[K-1]U)D=[],N=[];else if(this.yData&&(D[0]U)){var Y=this.cropData(this.xData,this.yData,W,U);D=Y.xData,N=Y.yData,P=Y.start,Y=!0}for(S=D.length||1;--S;)if(0<(o=_?s(D[S])-s(D[S-1]):D[S]-D[S-1])&&(void 0===$||o<$))var $=o;else 0>o&&V&&!j&&(le(15,!1,this.chart),V=!1);return{xData:D,yData:N,cropped:Y,cropStart:P,closestPointRange:$}},a.prototype.processData=function(s){var o=this.xAxis;if(this.isCartesian&&!this.isDirty&&!o.isDirty&&!this.yAxis.isDirty&&!s)return!1;s=this.getProcessedData(),this.cropped=s.cropped,this.cropStart=s.cropStart,this.processedXData=s.xData,this.processedYData=s.yData,this.closestPointRange=this.basePointRange=s.closestPointRange,ce(this,"afterProcessData")},a.prototype.cropData=function(s,o,_,S,R){var O,P=s.length,D=0,N=P;for(R=ve(R,this.cropShoulder),O=0;O=_){D=Math.max(0,O-R);break}for(_=O;_
S){N=_+R;break}return{xData:s.slice(D,N),yData:o.slice(D,N),start:D,end:N}},a.prototype.generatePoints=function(){var s=this.options,o=s.data,_=this.processedXData,S=this.processedYData,R=this.pointClass,O=_.length,P=this.cropStart||0,D=this.hasGroupedData,N=s.keys,V=[];s=s.dataGrouping&&s.dataGrouping.groupAll?P:0;var j,K,W=this.data;if(!W&&!D){var U=[];U.length=o.length,W=this.data=U}for(N&&D&&(this.options.keys=!1),K=0;K=N&&(R[D-P]||U)<=V,Y&&U)if(Y=W.length)for(;Y--;)pe(W[Y])&&(O[j++]=W[Y]);else O[j++]=W}return s={activeYData:O,dataMin:te(O),dataMax:ee(O)},ce(this,"afterGetExtremes",{dataExtremes:s}),s},a.prototype.applyExtremes=function(){var s=this.getExtremes();return this.dataMin=s.dataMin,this.dataMax=s.dataMax,s},a.prototype.getFirstValidPoint=function(s){for(var o=s.length,_=0,S=null;null===S&&_=ae&&(ae=null),X.total=X.stackTotal=Q.total,X.percentage=Q.total&&X.y/Q.total*100,X.stackY=te,this.irregularWidths||Q.setOffset(this.pointXOffset||0,this.barW||0)),X.yBottom=re(ae)?ie(D.translate(ae,0,1,0,1),-1e5,1e5):null,this.dataModify&&(te=this.dataModify.modifyValue(te,s)),X.plotY=void 0,pe(te)&&(void 0!==(Q=D.translate(te,!1,!0,!1,!0))&&(X.plotY=ie(Q,-1e5,1e5))),X.isInside=this.isPointInside(X),X.clientX=K?ne(R.translate(Z,0,0,0,1,j)):o,X.negative=X[Y]<(_[Y+"Threshold"]||W||0),X.category=O&&void 0!==O[X.x]?O[X.x]:X.x,!X.isNull&&!1!==X.visible){void 0!==oe&&($=Math.min($,Math.abs(o-oe)));var oe=o}X.zone=this.zones.length?X.getZone():void 0,!X.graphic&&this.group&&P&&(X.isNew=!0)}this.closestPointRangePx=$,ce(this,"afterTranslate")},a.prototype.getValidPoints=function(s,o,_){var S=this.chart;return(s||this.points||[]).filter((function(s){return!(o&&!S.isInsidePlot(s.plotX,s.plotY,{inverted:S.inverted}))&&(!1!==s.visible&&(_||!s.isNull))}))},a.prototype.getClipBox=function(){var s=this.chart,o=this.xAxis,_=this.yAxis,S=ge(s.clipBox);return o&&o.len!==s.plotSizeX&&(S.width=o.len),_&&_.len!==s.plotSizeY&&(S.height=_.len),S},a.prototype.getSharedClipKey=function(){return this.sharedClipKey=(this.options.xAxis||0)+","+(this.options.yAxis||0)},a.prototype.setClip=function(){var s=this.chart,o=this.group,_=this.markerGroup,S=s.sharedClips;s=s.renderer;var R=this.getClipBox(),O=this.getSharedClipKey(),P=S[O];P?P.animate(R):S[O]=P=s.clipRect(R),o&&o.clip(!1===this.options.clip?void 0:P),_&&_.clip()},a.prototype.animate=function(s){var o=this.chart,_=this.group,S=this.markerGroup,R=o.inverted,O=j(this.options.animation),P=[this.getSharedClipKey(),O.duration,O.easing,O.defer].join(),D=o.sharedClips[P],N=o.sharedClips[P+"m"];if(s&&_)O=this.getClipBox(),D?D.attr("height",O.height):(O.width=0,R&&(O.x=o.plotHeight),D=o.renderer.clipRect(O),o.sharedClips[P]=D,N=o.renderer.clipRect({x:R?(o.plotSizeX||0)+99:-99,y:R?-o.plotLeft:-o.plotTop,width:99,height:R?o.chartWidth:o.chartHeight}),o.sharedClips[P+"m"]=N),_.clip(D),S&&S.clip(N);else if(D&&!D.hasClass("highcharts-animating")){o=this.getClipBox();var V=O.step;S&&S.element.childNodes.length&&(O.step=function(s,o){V&&V.apply(o,arguments),N&&N.element&&N.attr(o.prop,"width"===o.prop?s+99:s)}),D.addClass("highcharts-animating").animate(o,O)}},a.prototype.afterAnimate=function(){var s=this;this.setClip(),me(this.chart.sharedClips,(function(o,_,S){o&&!s.chart.container.querySelector('[clip-path="url(#'+o.id+')"]')&&(o.destroy(),delete S[_])})),this.finishedAnimating=!0,ce(this,"afterAnimate")},a.prototype.drawPoints=function(){var s,o,_=this.points,S=this.chart,R=this.options.marker,O=this[this.specialGroup]||this.markerGroup,P=this.xAxis,D=ve(R.enabled,!(P&&!P.isRadial)||null,this.closestPointRangePx>=R.enabledThreshold*R.radius);if(!1!==R.enabled||this._hasPointMarkers)for(s=0;s<_.length;s++){var N=_[s],V=(o=N.graphic)?"animate":"attr",j=N.marker||{},K=!!N.marker;if((D&&void 0===j.enabled||j.enabled)&&!N.isNull&&!1!==N.visible){var W=ve(j.symbol,this.symbol,"rect"),U=this.markerAttribs(N,N.selected&&"select");this.enabledDataSorting&&(N.startXPos=P.reversed?-(U.width||0):P.width);var Y=!1!==N.isInside;o?o[Y?"show":"hide"](Y).animate(U):Y&&(0<(U.width||0)||N.hasImage)&&(N.graphic=o=S.renderer.symbol(W,U.x,U.y,U.width,U.height,K?j:R).add(O),this.enabledDataSorting&&S.hasRendered&&(o.attr({x:N.startXPos}),V="animate")),o&&"animate"===V&&o[Y?"show":"hide"](Y).animate(U),o&&!S.styledMode&&o[V](this.pointAttribs(N,N.selected&&"select")),o&&o.addClass(N.getClassName(),!0)}else o&&(N.graphic=o.destroy())}},a.prototype.markerAttribs=function(s,o){var _=this.options,S=_.marker,R=s.marker||{},O=R.symbol||S.symbol,P=ve(R.radius,S.radius);return o&&(S=S.states[o],o=R.states&&R.states[o],P=ve(o&&o.radius,S&&S.radius,P+(S&&S.radiusPlus||0))),s.hasImage=O&&0===O.indexOf("url"),s.hasImage&&(P=0),s={x:_.crisp?Math.floor(s.plotX-P):s.plotX-P,y:s.plotY-P},P&&(s.width=s.height=2*P),s},a.prototype.pointAttribs=function(s,o){var _=this.options.marker,S=s&&s.options,R=S&&S.marker||{},O=S&&S.color,P=s&&s.color,D=s&&s.zone&&s.zone.color,N=this.color;return s=ve(R.lineWidth,_.lineWidth),S=1,N=O||D||P||N,O=R.fillColor||_.fillColor||N,P=R.lineColor||_.lineColor||N,o=o||"normal",_=_.states[o]||{},o=R.states&&R.states[o]||{},s=ve(o.lineWidth,_.lineWidth,s+ve(o.lineWidthPlus,_.lineWidthPlus,0)),O=o.fillColor||_.fillColor||O,{stroke:P=o.lineColor||_.lineColor||P,"stroke-width":s,fill:O,opacity:S=ve(o.opacity,_.opacity,S)}},a.prototype.destroy=function(s){var o,_,S,R=this,O=R.chart,P=/AppleWebKit\/533/.test(X.navigator.userAgent),D=R.data||[];for(ce(R,"destroy"),this.removeEvents(s),(R.axisTypes||[]).forEach((function(s){(S=R[s])&&S.series&&(se(S.series,R),S.isDirty=S.forceRedraw=!0)})),R.legendItem&&R.chart.legend.destroyItem(R),o=D.length;o--;)(_=D[o])&&_.destroy&&_.destroy();R.clips&&R.clips.forEach((function(s){return s.destroy()})),V.clearTimeout(R.animationTimeout),me(R,(function(s,o){s instanceof N&&!s.survive&&s[P&&"group"===o?"hide":"destroy"]()})),O.hoverSeries===R&&(O.hoverSeries=void 0),se(O.series,R),O.orderSeries(),me(R,(function(o,_){s&&"hcEvents"===_||delete R[_]}))},a.prototype.applyZones=function(){var s,o,_,S,R,O,P,D,N=this,V=this.chart,j=V.renderer,K=this.zones,W=this.clips||[],U=this.graph,Y=this.area,$=Math.max(V.chartWidth,V.chartHeight),X=this[(this.zoneAxis||"y")+"Axis"],Z=V.inverted,Q=!1;if(K.length&&(U||Y)&&X&&void 0!==X.min){var ee=X.reversed,te=X.horiz;U&&!this.showLine&&U.hide(),Y&&Y.hide();var ae=X.getExtremes();K.forEach((function(K,ne){s=ee?te?V.plotWidth:0:te?0:X.toPixels(ae.min)||0,s=ie(ve(o,s),0,$),o=ie(Math.round(X.toPixels(ve(K.value,ae.max),!0)||0),0,$),Q&&(s=o=X.toPixels(ae.max)),S=Math.abs(s-o),R=Math.min(s,o),O=Math.max(s,o),X.isXAxis?(_={x:Z?O:R,y:0,width:S,height:$},te||(_.x=V.plotHeight-_.x)):(_={x:0,y:Z?O:R,width:$,height:S},te&&(_.y=V.plotWidth-_.y)),Z&&j.isVML&&(_=X.isXAxis?{x:0,y:ee?R:O,height:_.width,width:V.chartWidth}:{x:_.y-V.plotLeft-V.spacingBox.x,y:0,width:_.height,height:V.chartHeight}),W[ne]?W[ne].animate(_):W[ne]=j.clipRect(_),P=N["zone-area-"+ne],D=N["zone-graph-"+ne],U&&D&&D.clip(W[ne]),Y&&P&&P.clip(W[ne]),Q=K.value>ae.max,N.resetZones&&0===o&&(o=void 0)})),this.clips=W}else N.visible&&(U&&U.show(!0),Y&&Y.show(!0))},a.prototype.invertGroups=function(s){function b(){["group","markerGroup"].forEach((function(S){o[S]&&(_.renderer.isVML&&o[S].attr({width:o.yAxis.len,height:o.xAxis.len}),o[S].width=o.yAxis.len,o[S].height=o.xAxis.len,o[S].invert(!o.isRadialSeries&&s))}))}var o=this,_=o.chart;o.xAxis&&(o.eventsToUnbind.push(Q(_,"resize",b)),b(),o.invertGroups=b)},a.prototype.plotGroup=function(s,o,_,S,R){var O=this[s],P=!O;return _={visibility:_,zIndex:S||.1},void 0===this.opacity||this.chart.styledMode||"inactive"===this.state||(_.opacity=this.opacity),P&&(this[s]=O=this.chart.renderer.g().add(R)),O.addClass("highcharts-"+o+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(re(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(O.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),O.attr(_)[P?"attr":"animate"](this.getPlotBox()),O},a.prototype.getPlotBox=function(){var s=this.chart,o=this.xAxis,_=this.yAxis;return s.inverted&&(o=_,_=this.xAxis),{translateX:o?o.left:s.plotLeft,translateY:_?_.top:s.plotTop,scaleX:1,scaleY:1}},a.prototype.removeEvents=function(s){s||ye(this),this.eventsToUnbind.length&&(this.eventsToUnbind.forEach((function(s){s()})),this.eventsToUnbind.length=0)},a.prototype.render=function(){var s=this,o=s.chart,_=s.options,S=j(_.animation),R=s.visible?"inherit":"hidden",O=_.zIndex,P=s.hasRendered,D=o.seriesGroup,N=o.inverted;o=!s.finishedAnimating&&o.renderer.isSVG?S.duration:0,ce(this,"render");var V=s.plotGroup("group","series",R,O,D);s.markerGroup=s.plotGroup("markerGroup","markers",R,O,D),!1!==_.clip&&s.setClip(),s.animate&&o&&s.animate(!0),V.inverted=!!ve(s.invertible,s.isCartesian)&&N,s.drawGraph&&(s.drawGraph(),s.applyZones()),s.visible&&s.drawPoints(),s.drawDataLabels&&s.drawDataLabels(),s.redrawPoints&&s.redrawPoints(),s.drawTracker&&!1!==s.options.enableMouseTracking&&s.drawTracker(),s.invertGroups(N),s.animate&&o&&s.animate(),P||(o&&S.defer&&(o+=S.defer),s.animationTimeout=Se((function(){s.afterAnimate()}),o||0)),s.isDirty=!1,s.hasRendered=!0,ce(s,"afterRender")},a.prototype.redraw=function(){var s=this.chart,o=this.isDirty||this.isDirtyData,_=this.group,S=this.xAxis,R=this.yAxis;_&&(s.inverted&&_.attr({width:s.plotWidth,height:s.plotHeight}),_.animate({translateX:ve(S&&S.left,s.plotLeft),translateY:ve(R&&R.top,s.plotTop)})),this.translate(),this.render(),o&&delete this.kdTree},a.prototype.searchPoint=function(s,o){var _=this.xAxis,S=this.yAxis,R=this.chart.inverted;return this.searchKDTree({clientX:R?_.len-s.chartY+_.pos:s.chartX-_.pos,plotY:R?S.len-s.chartX+S.pos:s.chartY-S.pos},o,s)},a.prototype.buildKDTree=function(s){this.buildingKdTree=!0;var o=this,_=-1(V=s[V]-N[V])?"right":"left",o[W=0>V?"left":"right"]&&(j=(W=d(s,o[W],_+1,D))[P]U;)Y--;this.updateParallelArrays(W,"splice",Y,0,0),this.updateParallelArrays(W,Y),N&&W.name&&(N[U]=W.name),j.splice(Y,0,s),V&&(this.data.splice(Y,0,null),this.processData()),"point"===O.legendType&&this.generatePoints(),_&&(P[0]&&P[0].remove?P[0].remove(!1):(P.shift(),this.updateParallelArrays(W,"shift"),j.shift())),!1!==R&&ce(this,"addPoint",{point:W}),this.isDirtyData=this.isDirty=!0,o&&D.redraw(S)},a.prototype.removePoint=function(s,o,_){var S=this,R=S.data,O=R[s],P=S.points,D=S.chart,k=function(){P&&P.length===R.length&&P.splice(s,1),R.splice(s,1),S.options.data.splice(s,1),S.updateParallelArrays(O||{series:S},"splice",s,1),O&&O.destroy(),S.isDirty=!0,S.isDirtyData=!0,o&&D.redraw()};K(_,D),o=ve(o,!0),O?O.firePointEvent("remove",null,k):k()},a.prototype.remove=function(s,o,_,S){function e(){R.destroy(S),O.isDirtyLegend=O.isDirtyBox=!0,O.linkSeries(),ve(s,!0)&&O.redraw(o)}var R=this,O=R.chart;!1!==_?ce(R,"remove",null,e):e()},a.prototype.update=function(s,o){s=ae(s,this.userOptions),ce(this,"update",{options:s});var _,S=this,R=S.chart,O=S.userOptions,P=S.initialType||S.type,D=R.options.plotOptions,N=Z[P].prototype,V=S.finishedAnimating&&{animation:!1},j={},K=["eventOptions","navigatorSeries","baseSeries"],W=s.type||O.type||R.options.chart.type,U=!(this.hasDerivedData||W&&W!==this.type||void 0!==s.pointStart||void 0!==s.pointInterval||void 0!==s.relativeXValue||S.hasOptionChanged("dataGrouping")||S.hasOptionChanged("pointStart")||S.hasOptionChanged("pointInterval")||S.hasOptionChanged("pointIntervalUnit")||S.hasOptionChanged("keys"));if(W=W||P,U&&(K.push("data","isDirtyData","points","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","_hasPointLabels","clips","nodes","layout","mapMap","mapData","minY","maxY","minX","maxX"),!1!==s.visible&&K.push("area","graph"),S.parallelArrays.forEach((function(s){K.push(s+"Data")})),s.data&&(s.dataSorting&&oe(S.options.dataSorting,s.dataSorting),this.setData(s.data,!1))),s=ge(O,V,{index:void 0===O.index?S.index:O.index,pointStart:ve(D&&D.series&&D.series.pointStart,O.pointStart,S.xData[0])},!U&&{data:S.options.data},s),U&&s.data&&(s.data=S.options.data),(K=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(K)).forEach((function(s){K[s]=S[s],delete S[s]})),D=!1,Z[W]){if(D=W!==S.type,S.remove(!1,!1,!1,!0),D)if(Object.setPrototypeOf)Object.setPrototypeOf(S,Z[W].prototype);else{for(_ in V=Object.hasOwnProperty.call(S,"hcEvents")&&S.hcEvents,N)S[_]=void 0;oe(S,Z[W].prototype),V?S.hcEvents=V:delete S.hcEvents}}else le(17,!0,R,{missingModuleFor:W});if(K.forEach((function(s){S[s]=K[s]})),S.init(R,s),U&&this.points){var Y=S.options;!1===Y.visible?(j.graphic=1,j.dataLabel=1):S._hasPointLabels||(s=Y.marker,N=Y.dataLabels,!s||!1!==s.enabled&&(O.marker&&O.marker.symbol)===s.symbol||(j.graphic=1),N&&!1===N.enabled&&(j.dataLabel=1)),this.points.forEach((function(s){s&&s.series&&(s.resolveColor(),Object.keys(j).length&&s.destroyElements(j),!1===Y.showInLegend&&s.legendItem&&R.legend.destroyItem(s))}),this)}S.initialType=P,R.linkSeries(),D&&S.linkedSeries.length&&(S.isDirtyData=!0),ce(this,"afterUpdate"),ve(o,!0)&&R.redraw(!!U&&void 0)},a.prototype.setName=function(s){this.name=this.options.name=this.userOptions.name=s,this.chart.isDirtyLegend=!0},a.prototype.hasOptionChanged=function(s){var o=this.options[s],_=this.chart.options.plotOptions,S=this.userOptions[s];return S?o!==S:o!==ve(_&&_[this.type]&&_[this.type][s],_&&_.series&&_.series[s],o)},a.prototype.onMouseOver=function(){var s=this.chart,o=s.hoverSeries;s.pointer.setHoverChartIndex(),o&&o!==this&&o.onMouseOut(),this.options.events.mouseOver&&ce(this,"mouseOver"),this.setState("hover"),s.hoverSeries=this},a.prototype.onMouseOut=function(){var s=this.options,o=this.chart,_=o.tooltip,S=o.hoverPoint;o.hoverSeries=null,S&&S.onMouseOut(),this&&s.events.mouseOut&&ce(this,"mouseOut"),!_||this.stickyTracking||_.shared&&!this.noSharedTooltip||_.hide(),o.series.forEach((function(s){s.setState("",!0)}))},a.prototype.setState=function(s,o){var _=this,S=_.options,R=_.graph,O=S.inactiveOtherPoints,P=S.states,D=ve(P[s||"normal"]&&P[s||"normal"].animation,_.chart.options.chart.animation),N=S.lineWidth,V=0,j=S.opacity;if(s=s||"",_.state!==s&&([_.group,_.markerGroup,_.dataLabelsGroup].forEach((function(o){o&&(_.state&&o.removeClass("highcharts-series-"+_.state),s&&o.addClass("highcharts-series-"+s))})),_.state=s,!_.chart.styledMode)){if(P[s]&&!1===P[s].enabled)return;if(s&&(N=P[s].lineWidth||N+(P[s].lineWidthPlus||0),j=ve(P[s].opacity,j)),R&&!R.dashstyle)for(S={"stroke-width":N},R.animate(S,D);_["zone-graph-"+V];)_["zone-graph-"+V].animate(S,D),V+=1;O||[_.group,_.markerGroup,_.dataLabelsGroup,_.labelBySeries].forEach((function(s){s&&s.animate({opacity:j},D)}))}o&&O&&_.points&&_.setAllPointsToState(s||void 0)},a.prototype.setAllPointsToState=function(s){this.points.forEach((function(o){o.setState&&o.setState(s)}))},a.prototype.setVisible=function(s,o){var _=this,S=_.chart,R=_.legendItem,O=S.options.chart.ignoreHiddenSeries,P=_.visible,D=(_.visible=s=_.options.visible=_.userOptions.visible=void 0===s?!P:s)?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach((function(s){_[s]&&_[s][D]()})),S.hoverSeries!==_&&(S.hoverPoint&&S.hoverPoint.series)!==_||_.onMouseOut(),R&&S.legend.colorizeItem(_,s),_.isDirty=!0,_.options.stacking&&S.series.forEach((function(s){s.options.stacking&&s.visible&&(s.isDirty=!0)})),_.linkedSeries.forEach((function(o){o.setVisible(s,!1)})),O&&(S.isDirtyBox=!0),ce(_,D),!1!==o&&S.redraw()},a.prototype.show=function(){this.setVisible(!0)},a.prototype.hide=function(){this.setVisible(!1)},a.prototype.select=function(s){this.selected=s=this.options.selected=void 0===s?!this.selected:s,this.checkbox&&(this.checkbox.checked=s),ce(this,s?"select":"unselect")},a.prototype.shouldShowTooltip=function(s,o,_){return void 0===_&&(_={}),_.series=this,_.visiblePlotOnly=!0,this.chart.isInsidePlot(s,o,_)},a.defaultOptions=P,a}(),oe(s.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,cropShoulder:1,directTouch:!1,drawLegendSymbol:R.drawLineMarker,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:O,requireSorting:!0,sorted:!0}),D.series=s,s})),M(o,"Extensions/ScrollablePlotArea.js",[o["Core/Animation/AnimationUtilities.js"],o["Core/Axis/Axis.js"],o["Core/Chart/Chart.js"],o["Core/Series/Series.js"],o["Core/Renderer/RendererRegistry.js"],o["Core/Utilities.js"]],(function(s,o,_,S,R,O){var P=s.stop,D=O.addEvent,N=O.createElement,V=O.merge,j=O.pick;D(_,"afterSetChartSize",(function(s){var _=this.options.chart.scrollablePlotArea,S=_&&_.minWidth;if(_=_&&_.minHeight,!this.renderer.forExport){if(S){if(this.scrollablePixelsX=S=Math.max(0,S-this.chartWidth)){this.scrollablePlotBox=this.renderer.scrollablePlotBox=V(this.plotBox),this.plotBox.width=this.plotWidth+=S,this.inverted?this.clipBox.height+=S:this.clipBox.width+=S;var R={1:{name:"right",value:S}}}}else _&&(this.scrollablePixelsY=S=Math.max(0,_-this.chartHeight))&&(this.scrollablePlotBox=this.renderer.scrollablePlotBox=V(this.plotBox),this.plotBox.height=this.plotHeight+=S,this.inverted?this.clipBox.width+=S:this.clipBox.height+=S,R={2:{name:"bottom",value:S}});R&&!s.skipAxes&&this.axes.forEach((function(s){R[s.side]?s.getPlotLinePath=function(){var _=R[s.side].name,S=this[_];this[_]=S-R[s.side].value;var O=o.prototype.getPlotLinePath.apply(this,arguments);return this[_]=S,O}:(s.setAxisSize(),s.setAxisTranslation())}))}})),D(_,"render",(function(){this.scrollablePixelsX||this.scrollablePixelsY?(this.setUpScrolling&&this.setUpScrolling(),this.applyFixed()):this.fixedDiv&&this.applyFixed()})),_.prototype.setUpScrolling=function(){var s=this,o={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};this.scrollablePixelsX&&(o.overflowX="auto"),this.scrollablePixelsY&&(o.overflowY="auto"),this.scrollingParent=N("div",{className:"highcharts-scrolling-parent"},{position:"relative"},this.renderTo),this.scrollingContainer=N("div",{className:"highcharts-scrolling"},o,this.scrollingParent),D(this.scrollingContainer,"scroll",(function(){s.pointer&&delete s.pointer.chartPosition})),this.innerContainer=N("div",{className:"highcharts-inner-container"},null,this.scrollingContainer),this.innerContainer.appendChild(this.container),this.setUpScrolling=null},_.prototype.moveFixedElements=function(){var s,o=this.container,_=this.fixedRenderer,S=".highcharts-contextbutton .highcharts-credits .highcharts-legend .highcharts-legend-checkbox .highcharts-navigator-series .highcharts-navigator-xaxis .highcharts-navigator-yaxis .highcharts-navigator .highcharts-reset-zoom .highcharts-drillup-button .highcharts-scrollbar .highcharts-subtitle .highcharts-title".split(" ");this.scrollablePixelsX&&!this.inverted?s=".highcharts-yaxis":this.scrollablePixelsX&&this.inverted||this.scrollablePixelsY&&!this.inverted?s=".highcharts-xaxis":this.scrollablePixelsY&&this.inverted&&(s=".highcharts-yaxis"),s&&S.push(s+":not(.highcharts-radial-axis)",s+"-labels:not(.highcharts-radial-axis-labels)"),S.forEach((function(s){[].forEach.call(o.querySelectorAll(s),(function(s){(s.namespaceURI===_.SVG_NS?_.box:_.box.parentNode).appendChild(s),s.style.pointerEvents="auto"}))}))},_.prototype.applyFixed=function(){var s=!this.fixedDiv,o=this.options.chart,_=o.scrollablePlotArea,S=R.getRendererType();s?(this.fixedDiv=N("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(o.style&&o.style.zIndex||0)+2,top:0},null,!0),this.scrollingContainer&&this.scrollingContainer.parentNode.insertBefore(this.fixedDiv,this.scrollingContainer),this.renderTo.style.overflow="visible",this.fixedRenderer=o=new S(this.fixedDiv,this.chartWidth,this.chartHeight,this.options.chart.style),this.scrollableMask=o.path().attr({fill:this.options.chart.backgroundColor||"#fff","fill-opacity":j(_.opacity,.85),zIndex:-1}).addClass("highcharts-scrollable-mask").add(),D(this,"afterShowResetZoom",this.moveFixedElements),D(this,"afterDrilldown",this.moveFixedElements),D(this,"afterLayOutTitles",this.moveFixedElements)):this.fixedRenderer.setSize(this.chartWidth,this.chartHeight),(this.scrollableDirty||s)&&(this.scrollableDirty=!1,this.moveFixedElements()),o=this.chartWidth+(this.scrollablePixelsX||0),S=this.chartHeight+(this.scrollablePixelsY||0),P(this.container),this.container.style.width=o+"px",this.container.style.height=S+"px",this.renderer.boxWrapper.attr({width:o,height:S,viewBox:[0,0,o,S].join(" ")}),this.chartBackground.attr({width:o,height:S}),this.scrollingContainer.style.height=this.chartHeight+"px",s&&(_.scrollPositionX&&(this.scrollingContainer.scrollLeft=this.scrollablePixelsX*_.scrollPositionX),_.scrollPositionY&&(this.scrollingContainer.scrollTop=this.scrollablePixelsY*_.scrollPositionY)),S=this.axisOffset,s=this.plotTop-S[0]-1,_=this.plotLeft-S[3]-1,o=this.plotTop+this.plotHeight+S[2]+1,S=this.plotLeft+this.plotWidth+S[1]+1;var O=this.plotLeft+this.plotWidth-(this.scrollablePixelsX||0),V=this.plotTop+this.plotHeight-(this.scrollablePixelsY||0);s=this.scrollablePixelsX?[["M",0,s],["L",this.plotLeft-1,s],["L",this.plotLeft-1,o],["L",0,o],["Z"],["M",O,s],["L",this.chartWidth,s],["L",this.chartWidth,o],["L",O,o],["Z"]]:this.scrollablePixelsY?[["M",_,0],["L",_,this.plotTop-1],["L",S,this.plotTop-1],["L",S,0],["Z"],["M",_,V],["L",_,this.chartHeight],["L",S,this.chartHeight],["L",S,V],["Z"]]:[["M",0,0]],"adjustHeight"!==this.redrawTrigger&&this.scrollableMask.attr({d:s})},D(o,"afterInit",(function(){this.chart.scrollableDirty=!0})),D(S,"show",(function(){this.chart.scrollableDirty=!0}))})),M(o,"Core/Axis/StackingAxis.js",[o["Core/Animation/AnimationUtilities.js"],o["Core/Axis/Axis.js"],o["Core/Utilities.js"]],(function(s,o,_){var S,R=s.getDeferredAnimation,O=_.addEvent,P=_.destroyObjectProperties,D=_.fireEvent,N=_.isNumber,V=_.objectEach;return function(s){function e(){var s=this.stacking;if(s){var o=s.stacks;V(o,(function(s,_){P(s),o[_]=null})),s&&s.stackTotalGroup&&s.stackTotalGroup.destroy()}}function c(){this.stacking||(this.stacking=new _(this))}var o=[];s.compose=function(s){return-1===o.indexOf(s)&&(o.push(s),O(s,"init",c),O(s,"destroy",e)),s};var _=function(){function a(s){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=s}return a.prototype.buildStacks=function(){var s,o=this.axis,_=o.series,S=o.options.reversedStacks,R=_.length;if(!o.isXAxis){for(this.usePercentage=!1,s=R;s--;){var O=_[S?s:R-s-1];O.setStackedPoints(),O.setGroupedPoints()}for(s=0;sO&&o.shadow)),D&&(D.startX=_.xMap,D.isArea=_.isArea)}))},A.prototype.getGraphPath=function(s,o,_){var S,O=this,P=O.options,D=[],N=[],V=P.step,j=(s=s||O.points).reversed;return j&&s.reverse(),(V={right:1,center:2}[V]||V&&3)&&j&&(V=4-V),(s=this.getValidPoints(s,!1,!(P.connectNulls&&!o&&!_))).forEach((function(j,K){var W=j.plotX,U=j.plotY,Y=s[K-1];(j.leftCliff||Y&&Y.rightCliff)&&!_&&(S=!0),j.isNull&&!R(o)&&0s&&j>R?K=2*R-(j=Math.max(s,R)):j_&&K>R?j=2*R-(K=Math.max(_,R)):K<_&&K=Math.abs(o)&&.5s.closestPointRange*s.xAxis.transA;S=s.borderWidth=ee(_.borderWidth,S?0:1);var O=s.xAxis,P=s.yAxis,D=_.threshold,N=s.translatedThreshold=P.getThreshold(D),V=ee(_.minPointLength,5),j=s.getColumnMetrics(),W=j.width,Y=s.pointXOffset=j.offset,$=s.dataMin,X=s.dataMax,Q=s.barW=Math.max(W,1+2*S);o.inverted&&(N-=.5),_.pointPadding&&(Q=Math.ceil(Q)),R.prototype.translate.apply(s),s.points.forEach((function(S){var R=ee(S.yBottom,N),te=999+Math.abs(R),ie=S.plotX||0;te=K(S.plotY,-te,P.len+te);var ae=Math.min(te,R),ne=Math.max(te,R)-ae,re=W,se=ie+Y,le=Q;V&&Math.abs(ne)V?R-V:N-(ie?V:0)),U(S.options.pointWidth)&&(re=le=Math.ceil(S.options.pointWidth),se-=Math.round((re-W)/2)),_.centerInCategory&&(se=s.adjustForMissingColumns(se,re,S,j)),S.barX=se,S.pointWidth=re,S.tooltipPos=o.inverted?[K(P.len+P.pos-o.plotLeft-te,P.pos-o.plotLeft,P.len+P.pos-o.plotLeft),O.len+O.pos-o.plotTop-se-le/2,ne]:[O.left-o.plotLeft+se+le/2,K(te+P.pos-o.plotTop,P.pos-o.plotTop,P.len+P.pos-o.plotTop),ne],S.shapeType=s.pointClass.prototype.shapeType||"rect",S.shapeArgs=s.crispCol.apply(s,S.isNull?[se,N,le,0]:[se,ae,le,ne])}))},l.prototype.drawGraph=function(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")},l.prototype.pointAttribs=function(s,o){var _=this.options,S=this.pointAttrToOptions||{},R=S.stroke||"borderColor",O=S["stroke-width"]||"borderWidth",P=s&&s.color||this.color,D=s&&s[R]||_[R]||P;S=s&&s.options.dashStyle||_.dashStyle;var N=s&&s[O]||_[O]||this[O]||0,j=ee(s&&s.opacity,_.opacity,1);if(s&&this.zones.length){var K=s.getZone();P=s.options.color||K&&(K.color||s.nonZonedColor)||this.color,K&&(D=K.borderColor||D,S=K.dashStyle||S,N=K.borderWidth||N)}return o&&s&&(o=(s=Q(_.states[o],s.options.states&&s.options.states[o]||{})).brightness,P=s.color||void 0!==o&&V(P).brighten(s.brightness).get()||P,D=s[R]||D,N=s[O]||N,S=s.dashStyle||S,j=ee(s.opacity,j)),R={fill:P,stroke:D,"stroke-width":N,opacity:j},S&&(R.dashstyle=S),R},l.prototype.drawPoints=function(){var s,o=this,_=this.chart,S=o.options,R=_.renderer,O=S.animationLimit||250;o.points.forEach((function(P){var D=P.graphic,N=!!D,V=D&&_.pointCountv,"left"===$?j.y-=v?U.height:0:"center"===$?(j.x-=U.width/2,j.y-=U.height/2):"right"===$&&(j.x-=U.width,j.y-=v?0:U.height),o.placed=!0,o.alignAttr=j):(v(S),o.align(_,void 0,S),j=o.alignAttr),Z&&0<=S.height?this.justifyDataLabel(o,_,j,U,S,R):W(_.crop,!0)&&(Q=P.isInsidePlot(j.x,j.y,{paneCoordinates:!0,series:O})&&P.isInsidePlot(j.x+U.width,j.y+U.height,{paneCoordinates:!0,series:O})),_.shape&&!Y&&o[R?"attr":"animate"]({anchorX:N?P.plotWidth-s.plotY:s.plotX,anchorY:N?P.plotHeight-s.plotX:s.plotY})}R&&V&&(o.placed=!1),Q||V&&!Z||(o.hide(!0),o.placed=!1)}function u(){var s=this,o=s.chart,_=s.options,S=s.points,D=s.hasRendered||0,j=o.renderer,Y=_.dataLabels,$=Y.animation;if($=Y.defer?R(o,$,s):{defer:0,duration:0},Y=z(z(o.options.plotOptions&&o.options.plotOptions.series&&o.options.plotOptions.series.dataLabels,o.options.plotOptions&&o.options.plotOptions[s.type]&&o.options.plotOptions[s.type].dataLabels),Y),N(this,"drawDataLabels"),V(Y)||Y.enabled||s._hasPointLabels){var X=s.plotGroup("dataLabelsGroup","data-labels",D?"inherit":"hidden",Y.zIndex||6);X.attr({opacity:+D}),!D&&(D=s.dataLabelsGroup)&&(s.visible&&X.show(!0),D[_.animation?"animate":"attr"]({opacity:1},$)),S.forEach((function(S){U(z(Y,S.dlOptions||S.options&&S.options.dataLabels)).forEach((function(R,D){var N=R.enabled&&(!S.isNull||S.dataLabelOnNull)&&function h(s,o){var _=o.filter;return!_||(o=_.operator,s=s[_.property],_=_.value,">"===o&&s>_||"<"===o&&s<_||">="===o&&s>=_||"<="===o&&s<=_||"=="===o&&s==_||"==="===o&&s===_)}(S,R),V=S.connectors?S.connectors[D]:S.connector,U=S.dataLabels?S.dataLabels[D]:S.dataLabel,Y=W(R.distance,S.labelDistance),$=!U;if(N){var Z=S.getLabelConfig(),Q=W(R[S.formatPrefix+"Format"],R.format);Z=P(Q)?O(Q,Z,o):(R[S.formatPrefix+"Formatter"]||R.formatter).call(Z,R),Q=R.style;var ee=R.rotation;o.styledMode||(Q.color=W(R.color,Q.color,s.color,"#000000"),"contrast"===Q.color?(S.contrastColor=j.getContrast(S.color||s.color),Q.color=!P(Y)&&R.inside||0>Y||_.stacking?S.contrastColor:"#000000"):delete S.contrastColor,_.cursor&&(Q.cursor=_.cursor));var te={r:R.borderRadius||0,rotation:ee,padding:R.padding,zIndex:1};o.styledMode||(te.fill=R.backgroundColor,te.stroke=R.borderColor,te["stroke-width"]=R.borderWidth),K(te,(function(s,o){void 0===s&&delete te[o]}))}!U||N&&P(Z)&&!!U.div==!!R.useHTML||(S.dataLabel=U=S.dataLabel&&S.dataLabel.destroy(),S.dataLabels&&(1===S.dataLabels.length?delete S.dataLabels:delete S.dataLabels[D]),D||delete S.dataLabel,V&&(S.connector=S.connector.destroy(),S.connectors&&(1===S.connectors.length?delete S.connectors:delete S.connectors[D]))),N&&P(Z)&&(U?te.text=Z:(S.dataLabels=S.dataLabels||[],U=S.dataLabels[D]=ee?j.text(Z,0,-9999,R.useHTML).addClass("highcharts-data-label"):j.label(Z,0,-9999,R.shape,null,null,R.useHTML,null,"data-label"),D||(S.dataLabel=U),U.addClass(" highcharts-data-label-color-"+S.colorIndex+" "+(R.className||"")+(R.useHTML?" highcharts-tracker":""))),U.options=R,U.attr(te),o.styledMode||U.css(Q).shadow(R.shadow),U.added||U.add(X),R.textPath&&!R.useHTML&&(U.setTextPath(S.getDataLabelPath&&S.getDataLabelPath(U)||S.graphic,R.textPath),S.dataLabelPath&&!R.textPath.enabled&&(S.dataLabelPath=S.dataLabelPath.destroy())),s.alignDataLabel(S,U,R,null,$))}))}))}N(this,"afterDrawDataLabels")}function t(s,o,_,S,R,O){var P=this.chart,D=o.align,N=o.verticalAlign,V=s.box?0:s.padding||0,j=o.x;j=void 0===j?0:j;var K=o.y;K=void 0===K?0:K;var W=(_.x||0)+V;if(0>W){"right"===D&&0<=j?(o.align="left",o.inside=!0):j-=W;var U=!0}return(W=(_.x||0)+S.width-V)>P.plotWidth&&("left"===D&&0>=j?(o.align="right",o.inside=!0):j+=P.plotWidth-W,U=!0),0>(W=_.y+V)&&("bottom"===N&&0<=K?(o.verticalAlign="top",o.inside=!0):K-=W,U=!0),(W=(_.y||0)+S.height-V)>P.plotHeight&&("top"===N&&0>=K?(o.verticalAlign="bottom",o.inside=!0):K+=P.plotHeight-W,U=!0),U&&(o.x=j,o.y=K,s.placed=!O,s.align(o,void 0,R)),U}function z(s,o){var _,S=[];if(V(s)&&!V(o))S=s.map((function(s){return j(s,o)}));else if(V(o)&&!V(s))S=o.map((function(o){return j(s,o)}));else if(V(s)||V(o))for(_=Math.max(s.length,o.length);_--;)S[_]=j(s[_],o[_]);else S=j(s,o);return S}function C(s,o,_,S,R){var O=this.chart,P=O.inverted,D=this.xAxis,N=D.reversed,V=P?o.height/2:o.width/2;s=(s=s.pointWidth)?s/2:0,o.startXPos=P?R.x:N?-V-s:D.width-V+s,o.startYPos=P?N?this.yAxis.height-V+s:-V-s:R.y,S?"hidden"===o.visibility&&(o.show(),o.attr({opacity:0}).animate({opacity:1})):o.attr({opacity:1}).animate({opacity:0},void 0,o.hide),O.hasRendered&&(_&&o.attr({x:o.startXPos,y:o.startYPos}),o.placed=!0)}var o=[];s.compose=function(s){if(-1===o.indexOf(s)){var _=s.prototype;o.push(s),_.alignDataLabel=f,_.drawDataLabels=u,_.justifyDataLabel=t,_.setDataLabelStartPos=C}}}(S||(S={})),S})),M(o,"Series/Column/ColumnDataLabel.js",[o["Core/Series/DataLabel.js"],o["Core/Series/SeriesRegistry.js"],o["Core/Utilities.js"]],(function(s,o,_){var S,R=o.series,O=_.merge,P=_.pick;return function(o){function q(s,o,_,S,D){var N=this.chart.inverted,V=s.series,j=(V.xAxis?V.xAxis.len:this.chart.plotSizeX)||0;V=(V.yAxis?V.yAxis.len:this.chart.plotSizeY)||0;var K=s.dlBox||s.shapeArgs,W=P(s.below,s.plotY>P(this.translatedThreshold,V)),U=P(_.inside,!!this.options.stacking);K&&(0>(S=O(K)).y&&(S.height+=S.y,S.y=0),0<(K=S.y+S.height-V)&&K● {series.name}
',pointFormat:"x: {point.x}
y: {point.y}
"}}),n}(o)).prototype,{drawTracker:s.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"],takeOrdinalPosition:!1}),O(S,"afterTranslate",(function(){this.applyJitter()})),_.registerSeriesType("scatter",S),S})),M(o,"Series/CenteredUtilities.js",[o["Core/Globals.js"],o["Core/Series/Series.js"],o["Core/Utilities.js"]],(function(s,o,_){var S,R=s.deg2rad,O=_.isNumber,P=_.pick,D=_.relativeLength;return function(s){s.getCenter=function(){var s=this.options,_=this.chart,S=2*(s.slicedOffset||0),R=_.plotWidth-2*S,O=_.plotHeight-2*S,N=s.center,V=Math.min(R,O),j=s.size,K=s.innerSize||0;for("string"==typeof j&&(j=parseFloat(j)),"string"==typeof K&&(K=parseFloat(K)),s=[P(N[0],"50%"),P(N[1],"50%"),P(j&&0>j?void 0:s.size,"100%"),P(K&&0>K?void 0:s.innerSize||0,"0%")],!_.angular||this instanceof o||(s[3]=0),N=0;4>N;++N)j=s[N],_=2>N||2===N&&/%$/.test(j),s[N]=D(j,[R,O,V,s[2]][N])+(_?S:0);return s[3]>s[2]&&(s[3]=s[2]),s},s.getStartAndEndRadians=function(s,o){return s=O(s)?s:0,o=O(o)&&o>s&&360>o-s?o:s+360,{start:R*(s+-90),end:R*(o+-90)}}}(S||(S={})),S})),M(o,"Series/Pie/PiePoint.js",[o["Core/Animation/AnimationUtilities.js"],o["Core/Series/Point.js"],o["Core/Utilities.js"]],(function(s,o,_){var S=this&&this.__extends||function(){var a=function(s,o){return(a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(s,o){s.__proto__=o}||function(s,o){for(var _ in o)o.hasOwnProperty(_)&&(s[_]=o[_])})(s,o)};return function(s,o){function h(){this.constructor=s}a(s,o),s.prototype=null===o?Object.create(o):(h.prototype=o.prototype,new h)}}(),R=s.setAnimation,O=_.addEvent,P=_.defined;s=_.extend;var D=_.isNumber,N=_.pick,V=_.relativeLength;return o=function(s){function e(){var o=null!==s&&s.apply(this,arguments)||this;return o.labelDistance=void 0,o.options=void 0,o.series=void 0,o}return S(e,s),e.prototype.getConnectorPath=function(){var s=this.labelPosition,o=this.series.options.dataLabels,_=this.connectorShapes,S=o.connectorShape;return _[S]&&(S=_[S]),S.call(this,{x:s.final.x,y:s.final.y,alignment:s.alignment},s.connectorPosition,o)},e.prototype.getTranslate=function(){return this.sliced?this.slicedTranslation:{translateX:0,translateY:0}},e.prototype.haloPath=function(s){var o=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(o.x,o.y,o.r+s,o.r+s,{innerR:o.r-1,start:o.start,end:o.end})},e.prototype.init=function(){var o=this;s.prototype.init.apply(this,arguments),this.name=N(this.name,"Slice");var e=function(s){o.slice("select"===s.type)};return O(this,"select",e),O(this,"unselect",e),this},e.prototype.isValid=function(){return D(this.y)&&0<=this.y},e.prototype.setVisible=function(s,o){var _=this,S=this.series,R=S.chart,O=S.options.ignoreHiddenPoint;o=N(o,O),s!==this.visible&&(this.visible=this.options.visible=s=void 0===s?!this.visible:s,S.options.data[S.data.indexOf(this)]=this.options,["graphic","dataLabel","connector","shadowGroup"].forEach((function(o){_[o]&&_[o][s?"show":"hide"](s)})),this.legendItem&&R.legend.colorizeItem(this,s),s||"hover"!==this.state||this.setState(""),O&&(S.isDirty=!0),o&&R.redraw())},e.prototype.slice=function(s,o,_){var S=this.series;R(_,S.chart),N(o,!0),this.sliced=this.options.sliced=P(s)?s:!this.sliced,S.options.data[S.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate()),this.shadowGroup&&this.shadowGroup.animate(this.getTranslate())},e}(o),s(o.prototype,{connectorShapes:{fixedOffset:function(s,o,_){var S=o.breakAt;return o=o.touchingSliceAt,[["M",s.x,s.y],_.softConnector?["C",s.x+("left"===s.alignment?-5:5),s.y,2*S.x-o.x,2*S.y-o.y,S.x,S.y]:["L",S.x,S.y],["L",o.x,o.y]]},straight:function(s,o){return o=o.touchingSliceAt,[["M",s.x,s.y],["L",o.x,o.y]]},crookedLine:function(s,o,_){o=o.touchingSliceAt;var S=this.series,R=S.center[0],O=S.chart.plotWidth,P=S.chart.plotLeft;S=s.alignment;var D=this.shapeArgs.r;return _=V(_.crookDistance,1),_=["L",O="left"===S?R+D+(O+P-R-D)*(1-_):P+(R-D)*_,s.y],R=!0,("left"===S?O>s.x||Oo.x)&&(R=!1),s=[["M",s.x,s.y]],R&&s.push(_),s.push(["L",o.x,o.y]),s}}}),o})),M(o,"Series/Pie/PieSeries.js",[o["Series/CenteredUtilities.js"],o["Series/Column/ColumnSeries.js"],o["Core/Globals.js"],o["Core/Legend/LegendSymbol.js"],o["Series/Pie/PiePoint.js"],o["Core/Series/Series.js"],o["Core/Series/SeriesRegistry.js"],o["Core/Renderer/SVG/Symbols.js"],o["Core/Utilities.js"]],(function(s,o,_,S,R,O,P,D,N){var V=this&&this.__extends||function(){var a=function(s,o){return(a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(s,o){s.__proto__=o}||function(s,o){for(var _ in o)o.hasOwnProperty(_)&&(s[_]=o[_])})(s,o)};return function(s,o){function f(){this.constructor=s}a(s,o),s.prototype=null===o?Object.create(o):(f.prototype=o.prototype,new f)}}(),j=s.getStartAndEndRadians;_=_.noop;var K=N.clamp,W=N.extend,U=N.fireEvent,Y=N.merge,$=N.pick,X=N.relativeLength;return N=function(s){function c(){var o=null!==s&&s.apply(this,arguments)||this;return o.center=void 0,o.data=void 0,o.maxLabelDistance=void 0,o.options=void 0,o.points=void 0,o}return V(c,s),c.prototype.animate=function(s){var o=this,_=o.points,S=o.startAngleRad;s||_.forEach((function(s){var _=s.graphic,R=s.shapeArgs;_&&R&&(_.attr({r:$(s.startR,o.center&&o.center[3]/2),start:S,end:S}),_.animate({r:R.r,start:R.start,end:R.end},o.options.animation))}))},c.prototype.drawEmpty=function(){var s=this.startAngleRad,o=this.endAngleRad,_=this.options;if(0===this.total&&this.center){var S=this.center[0],R=this.center[1];this.graph||(this.graph=this.chart.renderer.arc(S,R,this.center[1]/2,0,s,o).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:D.arc(S,R,this.center[2]/2,0,{start:s,end:o,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":_.borderWidth,fill:_.fillColor||"none",stroke:_.color||"#cccccc"})}else this.graph&&(this.graph=this.graph.destroy())},c.prototype.drawPoints=function(){var s=this.chart.renderer;this.points.forEach((function(o){o.graphic&&o.hasNewShapeType()&&(o.graphic=o.graphic.destroy()),o.graphic||(o.graphic=s[o.shapeType](o.shapeArgs).add(o.series.group),o.delayedRendering=!0)}))},c.prototype.generatePoints=function(){s.prototype.generatePoints.call(this),this.updateTotals()},c.prototype.getX=function(s,o,_){var S=this.center,R=this.radii?this.radii[_.index]||0:S[2]/2;return s=Math.asin(K((s-S[1])/(R+_.labelDistance),-1,1)),S[0]+(o?-1:1)*Math.cos(s)*(R+_.labelDistance)+(0<_.labelDistance?(o?-1:1)*this.options.dataLabels.padding:0)},c.prototype.hasData=function(){return!!this.processedXData.length},c.prototype.redrawPoints=function(){var s,o,_,S,R=this,O=R.chart,P=O.renderer,D=R.options.shadow;this.drawEmpty(),!D||R.shadowGroup||O.styledMode||(R.shadowGroup=P.g("shadow").attr({zIndex:-1}).add(R.group)),R.points.forEach((function(N){var V={};if(o=N.graphic,!N.isNull&&o){var j=void 0;S=N.shapeArgs,s=N.getTranslate(),O.styledMode||(j=N.shadowGroup,D&&!j&&(j=N.shadowGroup=P.g("shadow").add(R.shadowGroup)),j&&j.attr(s),_=R.pointAttribs(N,N.selected&&"select")),N.delayedRendering?(o.setRadialReference(R.center).attr(S).attr(s),O.styledMode||o.attr(_).attr({"stroke-linejoin":"round"}).shadow(D,j),N.delayedRendering=!1):(o.setRadialReference(R.center),O.styledMode||Y(!0,V,_),Y(!0,V,S,s),o.animate(V)),o.attr({visibility:N.visible?"inherit":"hidden"}),o.addClass(N.getClassName(),!0)}else o&&(N.graphic=o.destroy())}))},c.prototype.sortByAngle=function(s,o){s.sort((function(s,_){return void 0!==s.angle&&(_.angle-s.angle)*o}))},c.prototype.translate=function(s){this.generatePoints();var o=this.options,_=o.slicedOffset,S=_+(o.borderWidth||0),R=j(o.startAngle,o.endAngle),O=this.startAngleRad=R.start;R=(this.endAngleRad=R.end)-O;var P=this.points,D=o.dataLabels.distance;o=o.ignoreHiddenPoint;var N,V=P.length,K=0;for(s||(this.center=s=this.getCenter()),N=0;N1.5*Math.PI?Z-=2*Math.PI:Z<-Math.PI/2&&(Z+=2*Math.PI),W.slicedTranslation={translateX:Math.round(Math.cos(Z)*_),translateY:Math.round(Math.sin(Z)*_)},Q=Math.cos(Z)*s[2]/2;var ee=Math.sin(Z)*s[2]/2;W.tooltipPos=[s[0]+.7*Q,s[1]+.7*ee],W.half=Z<-Math.PI/2||Z>Math.PI/2?1:0,W.angle=Z,Y=Math.min(S,W.labelDistance/5),W.labelPosition={natural:{x:s[0]+Q+Math.cos(Z)*W.labelDistance,y:s[1]+ee+Math.sin(Z)*W.labelDistance},final:{},alignment:0>W.labelDistance?"center":W.half?"right":"left",connectorPosition:{breakAt:{x:s[0]+Q+Math.cos(Z)*Y,y:s[1]+ee+Math.sin(Z)*Y},touchingSliceAt:{x:s[0]+Q,y:s[1]+ee}}}}U(this,"afterTranslate")},c.prototype.updateTotals=function(){var s,o=this.points,_=o.length,S=this.options.ignoreHiddenPoint,R=0;for(s=0;s<_;s++){var O=o[s];!O.isValid()||S&&!O.visible||(R+=O.y)}for(this.total=R,s=0;s<_;s++)(O=o[s]).percentage=0le&&(s.dataLabel.css({width:Math.round(.7*le)+"px"}),s.dataLabel.shortened=!0)):(s.dataLabel=s.dataLabel.destroy(),s.dataLabels&&1===s.dataLabels.length&&delete s.dataLabels))})),he.forEach((function(o,_){var N,V=o.length,W=[];if(V){if(Q.sortByAngle(o,_-.5),0ne-ae&&0===_&&(ee=Math.round(j+R-ne+ae),ue[1]=Math.max(ee,ue[1])),0>Y-P/2?ue[0]=Math.max(Math.round(P/2-Y),ue[0]):Y+P/2>re&&(ue[2]=Math.max(Math.round(Y+P/2-re),ue[2])),S.sideOverflow=ee)}}})),0===V(ue)||this.verifyDataLabelOverflow(ue))&&(this.placeDataLabels(),this.points.forEach((function(s){var R;(Z=W(ie,s.options.dataLabels),o=U(Z.connectorWidth,1))&&(_=s.connector,(S=s.dataLabel)&&S._pos&&s.visible&&0o.bottom-2?S:_,o.half,o)},justify:function(s,o,_){return _[0]+(s.half?-1:1)*(o+s.labelDistance)},alignToPlotEdges:function(s,o,_,S){return s=s.getBBox().width,o?s+S:_-s-S},alignToConnectors:function(s,o,_,S){var R,O=0;return s.forEach((function(s){(R=s.dataLabel.getBBox().width)>O&&(O=R)})),o?O+S:_-O-S}};o.compose=function(o){s.compose(N),-1===_.indexOf(o)&&(_.push(o),(o=o.prototype).dataLabelPositioners=S,o.alignDataLabel=P,o.drawDataLabels=p,o.placeDataLabels=u,o.verifyDataLabelOverflow=t)}}(O||(O={})),O})),M(o,"Extensions/OverlappingDataLabels.js",[o["Core/Chart/Chart.js"],o["Core/Utilities.js"]],(function(s,o){function v(s,o){var _=!1;if(s){var R=s.newOpacity;s.oldOpacity!==R&&(s.alignAttr&&s.placed?(s[R?"removeClass":"addClass"]("highcharts-data-label-hidden"),_=!0,s.alignAttr.opacity=R,s[s.isOld?"animate":"attr"](s.alignAttr,null,(function(){o.styledMode||s.css({pointerEvents:R?"auto":"none"})})),S(o,"afterHideOverlappingLabel")):s.attr({opacity:R})),s.isOld=!0}return _}var _=o.addEvent,S=o.fireEvent,R=o.isArray,O=o.isNumber,P=o.objectEach,D=o.pick;_(s,"render",(function(){var s=this,o=[];(this.labelCollectors||[]).forEach((function(s){o=o.concat(s())})),(this.yAxis||[]).forEach((function(s){s.stacking&&s.options.stackLabels&&!s.options.stackLabels.allowOverlap&&P(s.stacking.stacks,(function(s){P(s,(function(s){s.label&&"hidden"!==s.label.visibility&&o.push(s.label)}))}))})),(this.series||[]).forEach((function(_){var S=_.options.dataLabels;_.visible&&(!1!==S.enabled||_._hasPointLabels)&&((S=function(_){return _.forEach((function(_){_.visible&&(R(_.dataLabels)?_.dataLabels:_.dataLabel?[_.dataLabel]:[]).forEach((function(S){var R=S.options;S.labelrank=D(R.labelrank,_.labelrank,_.shapeArgs&&_.shapeArgs.height),R.allowOverlap?(S.oldOpacity=S.opacity,S.newOpacity=1,v(S,s)):o.push(S)}))}))})(_.nodes||[]),S(_.points))})),this.hideOverlappingLabels(o)})),s.prototype.hideOverlappingLabels=function(s){var o,_,R,P=this,D=s.length,N=P.renderer,V=!1,q=function(s){var o,_,S=s.box?0:s.padding||0,R=o=0;if(s&&(!s.alignAttr||s.placed)){var P=s.alignAttr||{x:s.attr("x"),y:s.attr("y")},D=s.parentGroup;s.width||(o=s.getBBox(),s.width=o.width,s.height=o.height,o=N.fontMetrics(null,s.element).h);var V=s.width-2*S;return(_={left:"0",center:"0.5",right:"1"}[s.alignValue])?R=+_*V:O(s.x)&&Math.round(s.x)!==s.translateX&&(R=s.x-s.translateX),{x:P.x+(D.translateX||0)+S-(R||0),y:P.y+(D.translateY||0)+S-o,width:s.width-2*S,height:s.height-2*S}}};for(_=0;_=j.x+j.width||K.x+K.width<=j.x||K.y>=j.y+j.height||K.y+K.height<=j.y||((q.labelrank=N(_.minWidth,0)&&this.chartHeight>=N(_.minHeight,0)}).call(this)&&o.push(s._id)},a.prototype.setResponsive=function(s,o){var _=this,R=this.options.responsive,O=this.currentResponsive,D=[];!o&&R&&R.rules&&R.rules.forEach((function(s){void 0===s._id&&(s._id=j()),_.matchResponsiveRule(s,D)}),this),(o=P.apply(void 0,D.map((function(s){return S((R||{}).rules||[],(function(o){return o._id===s}))})).map((function(s){return s&&s.chartOptions})))).isResponsiveOptions=!0,(D=D.toString()||void 0)!==(O&&O.ruleIds)&&(O&&this.update(O.undoOptions,s,!0),D?((O=this.currentOptions(o)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:D,mergedOptions:o,undoOptions:O},this.update(o,s,!0)):this.currentResponsive=void 0)},a}()}(o||(o={})),o})),M(o,"masters/highcharts.src.js",[o["Core/Globals.js"],o["Core/Utilities.js"],o["Core/DefaultOptions.js"],o["Core/Animation/Fx.js"],o["Core/Animation/AnimationUtilities.js"],o["Core/Renderer/HTML/AST.js"],o["Core/FormatUtilities.js"],o["Core/Renderer/RendererUtilities.js"],o["Core/Renderer/SVG/SVGElement.js"],o["Core/Renderer/SVG/SVGRenderer.js"],o["Core/Renderer/HTML/HTMLElement.js"],o["Core/Renderer/HTML/HTMLRenderer.js"],o["Core/Axis/Axis.js"],o["Core/Axis/DateTimeAxis.js"],o["Core/Axis/LogarithmicAxis.js"],o["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],o["Core/Axis/Tick.js"],o["Core/Tooltip.js"],o["Core/Series/Point.js"],o["Core/Pointer.js"],o["Core/MSPointer.js"],o["Core/Legend/Legend.js"],o["Core/Chart/Chart.js"],o["Core/Series/Series.js"],o["Core/Series/SeriesRegistry.js"],o["Series/Column/ColumnSeries.js"],o["Series/Column/ColumnDataLabel.js"],o["Series/Pie/PieSeries.js"],o["Series/Pie/PieDataLabel.js"],o["Core/Series/DataLabel.js"],o["Core/Responsive.js"],o["Core/Color/Color.js"],o["Core/Time.js"]],(function(s,o,_,S,R,O,P,D,N,V,j,K,W,U,Y,$,X,Z,Q,ee,te,ie,ae,ne,re,se,le,oe,de,ce,he,ue,pe){return s.animate=R.animate,s.animObject=R.animObject,s.getDeferredAnimation=R.getDeferredAnimation,s.setAnimation=R.setAnimation,s.stop=R.stop,s.timers=S.timers,s.AST=O,s.Axis=W,s.Chart=ae,s.chart=ae.chart,s.Fx=S,s.Legend=ie,s.PlotLineOrBand=$,s.Point=Q,s.Pointer=te.isRequired()?te:ee,s.Series=ne,s.SVGElement=N,s.SVGRenderer=V,s.Tick=X,s.Time=pe,s.Tooltip=Z,s.Color=ue,s.color=ue.parse,K.compose(V),j.compose(N),s.defaultOptions=_.defaultOptions,s.getOptions=_.getOptions,s.time=_.defaultTime,s.setOptions=_.setOptions,s.dateFormat=P.dateFormat,s.format=P.format,s.numberFormat=P.numberFormat,s.addEvent=o.addEvent,s.arrayMax=o.arrayMax,s.arrayMin=o.arrayMin,s.attr=o.attr,s.clearTimeout=o.clearTimeout,s.correctFloat=o.correctFloat,s.createElement=o.createElement,s.css=o.css,s.defined=o.defined,s.destroyObjectProperties=o.destroyObjectProperties,s.discardElement=o.discardElement,s.distribute=D.distribute,s.erase=o.erase,s.error=o.error,s.extend=o.extend,s.extendClass=o.extendClass,s.find=o.find,s.fireEvent=o.fireEvent,s.getMagnitude=o.getMagnitude,s.getStyle=o.getStyle,s.inArray=o.inArray,s.isArray=o.isArray,s.isClass=o.isClass,s.isDOMElement=o.isDOMElement,s.isFunction=o.isFunction,s.isNumber=o.isNumber,s.isObject=o.isObject,s.isString=o.isString,s.keys=o.keys,s.merge=o.merge,s.normalizeTickInterval=o.normalizeTickInterval,s.objectEach=o.objectEach,s.offset=o.offset,s.pad=o.pad,s.pick=o.pick,s.pInt=o.pInt,s.relativeLength=o.relativeLength,s.removeEvent=o.removeEvent,s.seriesType=re.seriesType,s.splat=o.splat,s.stableSort=o.stableSort,s.syncTimeout=o.syncTimeout,s.timeUnits=o.timeUnits,s.uniqueKey=o.uniqueKey,s.useSerialIds=o.useSerialIds,s.wrap=o.wrap,le.compose(se),ce.compose(ne),U.compose(W),Y.compose(W),de.compose(oe),$.compose(W),he.compose(ae),s})),o["masters/highcharts.src.js"]._modules=o,o["masters/highcharts.src.js"]}))}});