rushfee/classes/artifacts/rushfee_Web_exploded/www/lib/highcharts/highcharts.js

1 line
161 KiB
JavaScript

(function(){function X(){var C,A=arguments,B,$={},_=function(C,A){var B,$;typeof C!=="object"&&(C={});for($ in A)A.hasOwnProperty($)&&(B=A[$],C[$]=B&&typeof B==="object"&&Object.prototype.toString.call(B)!=="[object Array]"&&$!=="renderTo"&&typeof B.nodeType!=="number"?_(C[$]||{},B):A[$]);return C};A[0]===!0&&($=A[1],A=Array.prototype.slice.call(A,2));B=A.length;for(C=0;C<B;C++)$=_($,A[C]);return $}function b(_,$){return parseInt(_,$||10)}function v0($){return typeof $==="string"}function k0($){return $&&typeof $==="object"}function D0($){return Object.prototype.toString.call($)==="[object Array]"}function N1($){return typeof $==="number"}function L1($){return t.log($)/t.LN10}function _1($){return t.pow(10,$)}function U1(A,$){for(var _=A.length;_--;)if(A[_]===$){A.splice(_,1);break}}function P0($){return $!==W0&&$!==null}function n(C,A,B){var $,_;if(v0(A))P0(B)?C.setAttribute(A,B):C&&C.getAttribute&&(_=C.getAttribute(A));else if(P0(A)&&k0(A))for($ in A)C.setAttribute($,A[$]);return _}function z0($){return D0($)?$:[$]}function g(_,$){if(p0&&!Y0&&$&&$.opacity!==W0)$.filter="alpha(opacity="+$.opacity*100+")";K0(_.style,$)}function K(C,A,B,$,_){C=e.createElement(C);A&&K0(C,A);_&&g(C,{padding:0,border:v,margin:0});B&&g(C,B);$&&$.appendChild(C);return C}function g0(A,$){var _=function(){return W0};_.prototype=new A;K0(_.prototype,$);return _}function h0(_,$){return Array(($||2)+1-String(_).length).join(0)+_}function q($){return(j0&&j0($)||M0||0)*60000}function t0(E,C){for(var D="{",A=!1,B,$,_,G,H,F=[];(D=E.indexOf(D))!==-1;){B=E.slice(0,D);if(A){$=B.split(":");_=$.shift().split(".");H=_.length;B=C;for(G=0;G<H;G++)B=B[_[G]];if($.length)$=$.join(":"),_=/\.([0-9])/,G=w.lang,H=void 0,/f$/.test($)?(H=(H=$.match(_))?H[1]:-1,B!==null&&(B=c.numberFormat(B,H,G.decimalPoint,$.indexOf(",")>-1?G.thousandsSep:""))):B=C0($,B)}F.push(B);E=E.slice(D+1);D=(A=!A)?"}":"{"}F.push(E);return F.join("")}function F($){return t.pow(10,r(t.log($)/t.LN10))}function S(E,C,D,A,B){var $,_=E,D=Q0(D,1);$=E/D;C||(C=[1,2,2.5,5,10],A===!1&&(D===1?C=[1,2,5,10]:D<=0.1&&(C=[1/D])));for(A=0;A<C.length;A++)if(_=C[A],B&&_*D>=E||!B&&$<=(C[A]+(C[A+1]||C[A]))/2)break;_*=D;return _}function M1(C,A){var B=C.length,$,_;for(_=0;_<B;_++)C[_].ss_i=_;C.sort(function(B,_){$=A(B,_);return $===0?B.ss_i-_.ss_i:$});for(_=0;_<B;_++)delete C[_].ss_i}function U0(A){for(var $=A.length,_=A[0];$--;)A[$]<_&&(_=A[$]);return _}function $(A){for(var $=A.length,_=A[0];$--;)A[$]>_&&(_=A[$]);return _}function l0(A,$){for(var _ in A)A[_]&&A[_]!==$&&A[_].destroy&&A[_].destroy(),delete A[_]}function a0($){k||(k=K(y0));$&&k.appendChild($);k.innerHTML=""}function r0(A,$){var _="Highcharts error #"+A+": www.highcharts.com/errors/"+A;if($)throw _;f.console&&console.log(_)}function j(_,$){return parseFloat(_.toPrecision($||14))}function V1(_,$){$.renderer.globalAnimation=Q0(_,$.animation)}function K1(){var C=w.global,A=C.useUTC,B=A?"getUTC":"get",$=A?"setUTC":"set";I1=C.Date||window.Date;M0=A&&C.timezoneOffset;j0=A&&C.getTimezoneOffset;H0=function(B,_,$,E,F,C){var D;A?(D=I1.UTC.apply(0,arguments),D+=q(D)):D=(new I1(B,_,Q0($,1),Q0(E,0),Q0(F,0),Q0(C,0))).getTime();return D};x0=B+"Minutes";q0=B+"Hours";c0=B+"Day";o0=B+"Date";b0=B+"Month";H1=B+"FullYear";_=$+"Milliseconds";M=$+"Seconds";Y=$+"Minutes";E0=$+"Hours";R0=$+"Date";_0=$+"Month";T=$+"FullYear"}function u(){}function C1(B,_,A,$){this.axis=B;this.pos=_;this.type=A||"";this.isNew=!0;!A&&!$&&this.addLabel()}function f0(D,B,C,_,A){var $=D.chart.inverted;this.axis=D;this.isNegative=C;this.options=B;this.x=_;this.total=null;this.points={};this.stack=A;this.alignOptions={align:B.align||($?C?"left":"right":"center"),verticalAlign:B.verticalAlign||($?"middle":C?"bottom":"top"),y:Q0(B.y,$?4:C?14:-6),x:Q0(B.x,$?C?-6:6:0)};this.textAlign=B.textAlign||($?C?"right":"left":"center")}var W0,e=document,f=window,t=Math,I0=t.round,r=t.floor,d0=t.ceil,N0=t.max,T0=t.min,i=t.abs,s=t.cos,S1=t.sin,x=t.PI,A=x*2/360,w0=navigator.userAgent,s0=f.opera,p0=/(msie|trident|edge)/i.test(w0)&&!s0,B=e.documentMode===8,N=!p0&&/AppleWebKit/.test(w0),Q1=/Firefox/.test(w0),E1=/(Mobile|Android|Windows Phone)/.test(w0),L="http://www.w3.org/2000/svg",Y0=!!e.createElementNS&&!!e.createElementNS(L,"svg").createSVGRect,$0=Q1&&parseInt(w0.split("Firefox/")[1],10)<4,F0=!Y0&&!p0&&!!e.createElement("canvas").getContext,W1,T1,P1={},G=0,k,w,C0,J1,a,S0=function(){return W0},B0=[],i0=0,y0="div",v="none",V0=/^[0-9]+$/,$1=["plotTop","marginRight","marginBottom","plotLeft"],m0="stroke-width",I1,H0,M0,j0,x0,q0,c0,o0,b0,H1,_,M,Y,E0,R0,_0,T,h={},c;c=f.Highcharts=f.Highcharts?r0(16,!0):{};c.seriesTypes=h;var K0=c.extend=function(A,$){var _;A||(A={});for(_ in $)A[_]=$[_];return A},Q0=c.pick=function(){var B=arguments,_,A,$=B.length;for(_=0;_<$;_++)if(A=B[_],A!==W0&&A!==null)return A},P=c.wrap=function(B,_,A){var $=B[_];B[_]=function(){var _=Array.prototype.slice.call(arguments);_.unshift($);return A.apply(this,_)}};C0=function(E,C,D){if(!P0(C)||isNaN(C))return w.lang.invalidDate||"";var E=Q0(E,"%Y-%m-%d %H:%M:%S"),A=new I1(C-q(C)),B,$=A[q0](),_=A[c0](),I=A[o0](),J=A[b0](),G=A[H1](),H=w.lang,F=H.weekdays,A=K0({a:F[_].substr(0,3),A:F[_],d:h0(I),e:I,w:_,b:H.shortMonths[J],B:H.months[J],m:h0(J+1),y:G.toString().substr(2,2),Y:G,H:h0($),k:$,I:h0($%12||12),l:$%12||12,M:h0(A[x0]()),p:$<12?"AM":"PM",P:$<12?"am":"pm",S:h0(A.getSeconds()),L:h0(I0(C%1000),3)},c.dateFormats);for(B in A)for(;E.indexOf("%"+B)!==-1;)E=E.replace("%"+B,typeof A[B]==="function"?A[B](C):A[B]);return D?E.substr(0,1).toUpperCase()+E.substr(1):E};a={millisecond:1,second:1000,minute:60000,hour:3600000,day:86400000,week:604800000,month:2419200000,year:31449600000};c.numberFormat=function(E,C,D,A){var B=w.lang,E=+E||0,$=C===-1?T0((E.toString().split(".")[1]||"").length,20):isNaN(C=i(C))?2:C,C=D===void 0?B.decimalPoint:D,A=A===void 0?B.thousandsSep:A,B=E<0?"-":"",D=String(b(E=i(E).toFixed($))),_=D.length>3?D.length%3:0;return B+(_?D.substr(0,_)+A:"")+D.substr(_).replace(/(\d{3})(?=\d)/g,"$1"+A)+($?C+i(E-D).toFixed($).slice(2):"")};J1={init:function(E,C,D){var C=C||"",A=E.shift,B=C.indexOf("C")>-1,$=B?7:3,_,C=C.split(" "),D=[].concat(D),G,H,F=function($){for(_=$.length;_--;)$[_]==="M"&&$.splice(_+1,0,$[_+1],$[_+2],$[_+1],$[_+2])};B&&(F(C),F(D));E.isArea&&(G=C.splice(C.length-6,6),H=D.splice(D.length-6,6));if(A<=D.length/$&&C.length===D.length)for(;A--;)D=[].concat(D).splice(0,$).concat(D);E.shift=0;if(C.length)for(E=D.length;C.length<E;)A=[].concat(C).splice(C.length-$,$),B&&(A[$-6]=A[$-2],A[$-5]=A[$-1]),C=C.concat(A);G&&(C=C.concat(G),D=D.concat(H));return[C,D]},step:function(D,B,C,_){var A=[],$=D.length;if(C===1)A=_;else if($===B.length&&C<1){for(;$--;)_=parseFloat(D[$]),A[$]=isNaN(_)?D[$]:C*parseFloat(B[$]-_)+_}else A=B;return A}};(function($){f.HighchartsAdapter=f.HighchartsAdapter||$&&{init:function(_){var A=$.fx;$.extend($.easing,{easeOutQuad:function(B,_,A,$,C){return-$*(_/=C)*(_-2)+A}});$.each(["cur","_default","width","height","opacity"],function(D,C){var _=A.step,B;C==="cur"?_=A.prototype:C==="_default"&&$.Tween&&(_=$.Tween.propHooks[C],C="set");(B=_[C])&&(_[C]=function(_){var $,_=D?_:this;if(_.prop!=="align")return $=_.elem,$.attr?$.attr(_.prop,C==="cur"?W0:_.now):B.apply(this,arguments)})});P($.cssHooks.opacity,"get",function(A,$,_){return $.attr?$.opacity||0:A.call(this,$,_)});this.addAnimSetter("d",function(B){var A=B.elem,$;if(!B.started)$=_.init(A,A.d,A.toD),B.start=$[0],B.end=$[1],B.started=!0;A.attr("d",_.step(B.start,B.end,B.pos,A.toD))});this.each=Array.prototype.forEach?function(_,$){return Array.prototype.forEach.call(_,$)}:function(B,_){var A,$=B.length;for(A=0;A<$;A++)if(_.call(B[A],B[A],A,B)===!1)return A};$.fn.highcharts=function(){var B="Chart",_=arguments,A,$;if(this[0]){v0(_[0])&&(B=_[0],_=Array.prototype.slice.call(_,1));A=_[0];if(A!==W0)A.chart=A.chart||{},A.chart.renderTo=this[0],new c[B](A,_[1]),$=this;A===W0&&($=B0[n(this[0],"data-highcharts-chart")])}return $}},addAnimSetter:function(_,A){$.Tween?$.Tween.propHooks[_]={set:A}:$.fx.step[_]=A},getScript:$.getScript,inArray:$.inArray,adapterRun:function(_,A){return $(_)[A]()},grep:$.grep,map:function(C,B){for(var _=[],A=0,$=C.length;A<$;A++)_[A]=B.call(C[A],C[A],A,C);return _},offset:function(_){return $(_).offset()},addEvent:function(A,B,_){$(A).bind(B,_)},removeEvent:function(B,C,_){var A=e.removeEventListener?"removeEventListener":"detachEvent";e[A]&&B&&!B[A]&&(B[A]=function(){});$(B).unbind(C,_)},fireEvent:function(D,E,B,C){var _=$.Event(E),A="detached"+E,F;!p0&&B&&(delete B.layerX,delete B.layerY,delete B.returnValue);K0(_,B);D[E]&&(D[A]=D[E],D[E]=null);$.each(["preventDefault","stopPropagation"],function(B,$){var A=_[$];_[$]=function(){try{A.call(_)}catch(B){$==="preventDefault"&&(F=!0)}}});$(D).trigger(_);D[A]&&(D[E]=D[A],D[A]=null);C&&!_.isDefaultPrevented()&&!F&&C(_)},washMouseEvent:function(_){var $=_.originalEvent||_;if($.pageX===W0)$.pageX=_.pageX,$.pageY=_.pageY;return $},animate:function(B,C,_){var A=$(B);if(!B.style)B.style={};if(C.d)B.toD=C.d,C.d=1;A.stop();C.opacity!==W0&&B.attr&&(C.opacity+="px");B.hasAnim=1;A.animate(C,_)},stop:function(_){_.hasAnim&&$(_).stop()}}})(f.jQuery);var o=f.HighchartsAdapter,Z=o||{};o&&o.init.call(o,J1);var O1=Z.adapterRun,Z0=Z.getScript,J=Z.inArray,G0=c.each=Z.each,e0=Z.grep,F1=Z.offset,D=Z.map,l=Z.addEvent,A0=Z.removeEvent,m=Z.fireEvent,D1=Z.washMouseEvent,u0=Z.animate,X0=Z.stop;w={colors:"#7cb5ec,#434348,#90ed7d,#f7a35c,#8085e9,#f15c80,#e4d354,#2b908f,#f45b5b,#91e8e1".split(","),symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:"January,February,March,April,May,June,July,August,September,October,November,December".split(","),shortMonths:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(","),weekdays:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday".split(","),decimalPoint:".",numericSymbols:"k,M,G,T,P,E".split(","),resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{useUTC:!0,canvasToolsURL:"http://code.highcharts.com/4.1.9/modules/canvas-tools.js",VMLRadialGradientURL:"http://code.highcharts.com/4.1.9/gfx/vml-radial-gradient.png"},chart:{borderColor:"#4572A7",borderRadius:0,defaultSeriesType:"line",ignoreHiddenSeries:!0,spacing:[10,10,15,10],backgroundColor:"#FFFFFF",plotBorderColor:"#C0C0C0",resetZoomButton:{theme:{zIndex:20},position:{align:"right",x:-10,y:10}}},title:{text:"Chart title",align:"center",margin:15,style:{color:"#333333",fontSize:"18px"}},subtitle:{text:"",align:"center",style:{color:"#555555"}},plotOptions:{line:{allowPointSelect:!1,showCheckbox:!1,animation:{duration:1000},events:{},lineWidth:2,marker:{lineWidth:0,radius:4,lineColor:"#FFFFFF",states:{hover:{enabled:!0,lineWidthPlus:1,radiusPlus:2},select:{fillColor:"#FFFFFF",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{align:"center",formatter:function(){return this.y===null?"":c.numberFormat(this.y,-1)},style:{color:"contrast",fontSize:"11px",fontWeight:"bold",textShadow:"0 0 6px contrast, 0 0 3px contrast"},verticalAlign:"bottom",x:0,y:0,padding:5},cropThreshold:300,pointRange:0,softThreshold:!0,states:{hover:{lineWidthPlus:1,marker:{},halo:{size:10,opacity:0.25}},select:{marker:{}}},stickyTracking:!0,turboThreshold:1000}},labels:{style:{position:"absolute",color:"#3E576F"}},legend:{enabled:!0,align:"center",layout:"horizontal",labelFormatter:function(){return this.name},borderColor:"#909090",borderRadius:0,navigation:{activeColor:"#274b6d",inactiveColor:"#CCC"},shadow:!1,itemStyle:{color:"#333333",fontSize:"12px",fontWeight:"bold"},itemHoverStyle:{color:"#000"},itemHiddenStyle:{color:"#CCC"},itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"white",opacity:0.5,textAlign:"center"}},tooltip:{enabled:!0,animation:Y0,backgroundColor:"rgba(249, 249, 249, .85)",borderWidth:1,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %b %e, %H:%M:%S.%L",second:"%A, %b %e, %H:%M:%S",minute:"%A, %b %e, %H:%M",hour:"%A, %b %e, %H:%M",day:"%A, %b %e, %Y",week:"Week from %A, %b %e, %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerFormat:"<span style=\"font-size: 10px\">{point.key}</span><br/>",pointFormat:"<span style=\"color:{point.color}\">\u25cf</span> {series.name}: <b>{point.y}</b><br/>",shadow:!0,snap:E1?25:10,style:{color:"#333333",cursor:"default",fontSize:"12px",padding:"8px",pointerEvents:"none",whiteSpace:"nowrap"}},credits:{enabled:!0,text:"Highcharts.com",href:"http://www.highcharts.com",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#909090",fontSize:"9px"}}};var G1=w.plotOptions,o=G1.line;K1();var Q=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,C=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/,O0=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,L0=function(B){var _=[],A,$;(function(B){B&&B.stops?$=D(B.stops,function($){return L0($[1])}):(A=Q.exec(B))?_=[b(A[1]),b(A[2]),b(A[3]),parseFloat(A[4],10)]:(A=C.exec(B))?_=[b(A[1],16),b(A[2],16),b(A[3],16),1]:(A=O0.exec(B))&&(_=[b(A[1]),b(A[2]),b(A[3]),1])})(B);return{get:function(C){var A;$?(A=X(B),A.stops=[].concat(A.stops),G0($,function(_,$){A.stops[$]=[A.stops[$][0],_.get(C)]})):A=_&&!isNaN(_[0])?C==="rgb"?"rgb("+_[0]+","+_[1]+","+_[2]+")":C==="a"?_[3]:"rgba("+_.join(",")+")":B;return A},brighten:function(B){if($)G0($,function($){$.brighten(B)});else if(N1(B)&&B!==0){var A;for(A=0;A<3;A++)_[A]+=b(B*255),_[A]<0&&(_[A]=0),_[A]>255&&(_[A]=255)}return this},rgba:_,setOpacity:function($){_[3]=$;return this},raw:B}};u.prototype={opacity:1,textProps:"fontSize,fontWeight,fontFamily,fontStyle,color,lineHeight,width,textDecoration,textOverflow,textShadow".split(","),init:function(_,$){this.element=$==="span"?K($):e.createElementNS(L,$);this.renderer=_},animate:function(A,$,_){$=Q0($,this.renderer.globalAnimation,!0);X0(this);if($){$=X($,{});if(_)$.complete=_;u0(this,A,$)}else this.attr(A,null,_);return this},colorGradient:function(E,C,D){var A=this.renderer,B,$,_,L,M,J,K,I,F,H,N,O=[];E.linearGradient?$="linearGradient":E.radialGradient&&($="radialGradient");if($){_=E[$];M=A.gradients;K=E.stops;H=D.radialReference;D0(_)&&(E[$]=_={x1:_[0],y1:_[1],x2:_[2],y2:_[3],gradientUnits:"userSpaceOnUse"});$==="radialGradient"&&H&&!P0(_.gradientUnits)&&(L=_,_=X(_,A.getRadialAttr(H,L),{gradientUnits:"userSpaceOnUse"}));for(N in _)N!=="id"&&O.push(N,_[N]);for(N in K)O.push(K[N]);O=O.join(",");M[O]?E=M[O].attr("id"):(_.id=E="highcharts-"+G++,M[O]=J=A.createElement($).attr(_).add(A.defs),J.radAttr=L,J.stops=[],G0(K,function($){$[1].indexOf("rgba")===0?(B=L0($[1]),I=B.get("rgb"),F=B.get("a")):(I=$[1],F=1);$=A.createElement("stop").attr({offset:$[0],"stop-color":I,"stop-opacity":F}).add(J);J.stops.push($)}));D.setAttribute(C,"url("+A.url+"#"+E+")");D.gradient=O}},applyTextShadow:function(E){var C=this.element,D,A=E.indexOf("contrast")!==-1,B={},$=this.renderer.forExport,_=$||C.style.textShadow!==W0&&!p0;if(A)B.textShadow=E=E.replace(/contrast/g,this.renderer.getContrast(C.style.fill));if(N||$)B.textRendering="geometricPrecision";_?this.css(B):(this.fakeTS=!0,this.ySetter=this.xSetter,D=[].slice.call(C.getElementsByTagName("tspan")),G0(E.split(/\s?,\s?/g),function(B){var _=C.firstChild,A,$,B=B.split(" ");A=B[B.length-1];($=B[B.length-2])&&G0(D,function(E,D){var B;D===0&&(E.setAttribute("x",C.getAttribute("x")),D=C.getAttribute("y"),E.setAttribute("y",D||0),D===null&&C.setAttribute("y",0));B=E.cloneNode(1);n(B,{"class":"highcharts-text-shadow",fill:A,stroke:A,"stroke-opacity":1/N0(b($),3),"stroke-width":$,"stroke-linejoin":"round"});C.insertBefore(B,_)})}))},attr:function(E,C,D){var A,B=this.element,$,_=this,F;typeof E==="string"&&C!==W0&&(A=E,E={},E[A]=C);if(typeof E==="string")_=(this[E+"Getter"]||this._defaultGetter).call(this,E,B);else{for(A in E){C=E[A];F=!1;this.symbolName&&/^(x|y|width|height|r|start|end|innerR|anchorX|anchorY)/.test(A)&&($||(this.symbolAttr(E),$=!0),F=!0);if(this.rotation&&(A==="x"||A==="y"))this.doTransform=!0;F||(this[A+"Setter"]||this._defaultSetter).call(this,C,A,B);this.shadows&&/^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(A)&&this.updateShadows(A,C)}if(this.doTransform)this.updateTransform(),this.doTransform=!1}D&&D();return _},updateShadows:function(B,_){for(var A=this.shadows,$=A.length;$--;)A[$].setAttribute(B,B==="height"?N0(_-(A[$].cutHeight||0),0):B==="d"?this.d:_)},addClass:function(A){var $=this.element,_=n($,"class")||"";_.indexOf(A)===-1&&n($,"class",_+" "+A);return this},symbolAttr:function(_){var $=this;G0("x,y,r,start,end,width,height,innerR,anchorX,anchorY".split(","),function(A){$[A]=Q0(_[A],$[A])});$.attr({d:$.renderer.symbols[$.symbolName]($.x,$.y,$.width,$.height,$)})},clip:function($){return this.attr("clip-path",$?"url("+this.renderer.url+"#"+$.id+")":v)},crisp:function(C){var A,B={},$,_=C.strokeWidth||this.strokeWidth||0;$=I0(_)%2/2;C.x=r(C.x||this.x||0)+$;C.y=r(C.y||this.y||0)+$;C.width=r((C.width||this.width||0)-2*$);C.height=r((C.height||this.height||0)-2*$);C.strokeWidth=_;for(A in C)this[A]!==C[A]&&(this[A]=B[A]=C[A]);return B},css:function(E){var C=this.styles,D={},A=this.element,B,$,_="";B=!C;if(E&&E.color)E.fill=E.color;if(C)for($ in E)E[$]!==C[$]&&(D[$]=E[$],B=!0);if(B){B=this.textWidth=E&&E.width&&A.nodeName.toLowerCase()==="text"&&b(E.width)||this.textWidth;C&&(E=K0(C,D));this.styles=E;B&&(F0||!Y0&&this.renderer.forExport)&&delete E.width;if(p0&&!Y0)g(this.element,E);else{C=function(_,$){return"-"+$.toLowerCase()};for($ in E)_+=$.replace(/([A-Z])/g,C)+":"+E[$]+";";n(A,"style",_)}B&&this.added&&this.renderer.buildText(this)}return this},on:function(B,_){var A=this,$=A.element;T1&&B==="click"?($.ontouchstart=function(B){A.touchEventFired=I1.now();B.preventDefault();_.call($,B)},$.onclick=function(B){(w0.indexOf("Android")===-1||I1.now()-(A.touchEventFired||0)>1100)&&_.call($,B)}):$["on"+B]=_;return this},setRadialReference:function(_){var $=this.renderer.gradients[this.element.gradient];this.element.radialReference=_;$&&$.radAttr&&$.animate(this.renderer.getRadialAttr(_,$.radAttr));return this},translate:function(_,$){return this.attr({translateX:_,translateY:$})},invert:function(){this.inverted=!0;this.updateTransform();return this},updateTransform:function(){var E=this.translateX||0,C=this.translateY||0,D=this.scaleX,A=this.scaleY,B=this.inverted,$=this.rotation,_=this.element;B&&(E+=this.attr("width"),C+=this.attr("height"));E=["translate("+E+","+C+")"];B?E.push("rotate(90) scale(-1,1)"):$&&E.push("rotate("+$+" "+(_.getAttribute("x")||0)+" "+(_.getAttribute("y")||0)+")");(P0(D)||P0(A))&&E.push("scale("+Q0(D,1)+" "+Q0(A,1)+")");E.length&&_.setAttribute("transform",E.join(" "))},toFront:function(){var $=this.element;$.parentNode.appendChild($);return this},align:function(E,C,D){var A,B,$,_,F={};B=this.renderer;$=B.alignedObjects;if(E){if(this.alignOptions=E,this.alignByTranslate=C,!D||v0(D))this.alignTo=A=D||"renderer",U1($,this),$.push(this),D=null}else E=this.alignOptions,C=this.alignByTranslate,A=this.alignTo;D=Q0(D,B[A],B);A=E.align;B=E.verticalAlign;$=(D.x||0)+(E.x||0);_=(D.y||0)+(E.y||0);if(A==="right"||A==="center")$+=(D.width-(E.width||0))/{right:1,center:2}[A];F[C?"translateX":"x"]=I0($);if(B==="bottom"||B==="middle")_+=(D.height-(E.height||0))/({bottom:1,middle:2}[B]||1);F[C?"translateY":"y"]=I0(_);this[this.placed?"animate":"attr"](F);this.placed=!0;this.alignAttr=F;return this},getBBox:function(F){var D,E=this.renderer,B,C=this.rotation,$=this.element,_=this.styles,K=C*A;B=this.textStr;var M,I=$.style,J,H;B!==W0&&(H=["",C||0,_&&_.fontSize,$.style.width].join(","),H=B===""||V0.test(B)?"num:"+B.toString().length+H:B+H);H&&!F&&(D=E.cache[H]);if(!D){if($.namespaceURI===L||E.forExport){try{J=this.fakeTS&&function(_){G0($.querySelectorAll(".highcharts-text-shadow"),function($){$.style.display=_})},Q1&&I.textShadow?(M=I.textShadow,I.textShadow=""):J&&J(v),D=$.getBBox?K0({},$.getBBox()):{width:$.offsetWidth,height:$.offsetHeight},M?I.textShadow=M:J&&J("")}catch(G){}if(!D||D.width<0)D={width:0,height:0}}else D=this.htmlGetBBox();if(E.isSVG){F=D.width;B=D.height;if(p0&&_&&_.fontSize==="11px"&&B.toPrecision(3)==="16.9")D.height=B=14;if(C)D.width=i(B*S1(K))+i(F*s(K)),D.height=i(B*s(K))+i(F*S1(K))}H&&(E.cache[H]=D)}return D},show:function($){return this.attr({visibility:$?"inherit":"visible"})},hide:function(){return this.attr({visibility:"hidden"})},fadeOut:function(_){var $=this;$.animate({opacity:0},{duration:_||150,complete:function(){$.attr({y:-9999})}})},add:function(B){var _=this.renderer,A=this.element,$;if(B)this.parentGroup=B;this.parentInverted=B&&B.inverted;this.textStr!==void 0&&_.buildText(this);this.added=!0;if(!B||B.handleZ||this.zIndex)$=this.zIndexSetter();$||(B?B.element:_.box).appendChild(A);if(this.onAdd)this.onAdd();return this},safeRemoveChild:function(_){var $=_.parentNode;$&&$.removeChild(_)},destroy:function(){var D=this,B=D.element||{},C=D.shadows,_=D.renderer.isSVG&&B.nodeName==="SPAN"&&D.parentGroup,A,$;B.onclick=B.onmouseout=B.onmouseover=B.onmousemove=B.point=null;X0(D);if(D.clipPath)D.clipPath=D.clipPath.destroy();if(D.stops){for($=0;$<D.stops.length;$++)D.stops[$]=D.stops[$].destroy();D.stops=null}D.safeRemoveChild(B);for(C&&G0(C,function($){D.safeRemoveChild($)});_&&_.div&&_.div.childNodes.length===0;)B=_.parentGroup,D.safeRemoveChild(_.div),delete _.div,_=B;D.alignTo&&U1(D.renderer.alignedObjects,D);for(A in D)delete D[A];return null},shadow:function(E,C,D){var A=[],B,$,_=this.element,H,I,F,G;if(E){I=Q0(E.width,3);F=(E.opacity||0.15)/I;G=this.parentInverted?"(-1,-1)":"("+Q0(E.offsetX,1)+", "+Q0(E.offsetY,1)+")";for(B=1;B<=I;B++){$=_.cloneNode(0);H=I*2+1-2*B;n($,{isShadow:"true",stroke:E.color||"black","stroke-opacity":F*B,"stroke-width":H,transform:"translate"+G,fill:v});if(D)n($,"height",N0(n($,"height")-H,0)),$.cutHeight=H;C?C.element.appendChild($):_.parentNode.insertBefore($,_);A.push($)}this.shadows=A}return this},xGetter:function($){this.element.nodeName==="circle"&&($={x:"cx",y:"cy"}[$]||$);return this._defaultGetter($)},_defaultGetter:function($){$=Q0(this[$],this.element?this.element.getAttribute($):null,0);/^[\-0-9\.]+$/.test($)&&($=parseFloat($));return $},dSetter:function(A,$,_){A&&A.join&&(A=A.join(" "));/(NaN| {2}|^$)/.test(A)&&(A="M 0 0");_.setAttribute($,A);this[$]=A},dashstyleSetter:function(_){var $;if(_=_&&_.toLowerCase()){_=_.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($=_.length;$--;)_[$]=b(_[$])*this["stroke-width"];_=_.join(",").replace("NaN","none");this.element.setAttribute("stroke-dasharray",_)}},alignSetter:function($){this.element.setAttribute("text-anchor",{left:"start",center:"middle",right:"end"}[$])},opacitySetter:function(A,$,_){this[$]=A;_.setAttribute($,A)},titleSetter:function(_){var $=this.element.getElementsByTagName("title")[0];$||($=e.createElementNS(L,"title"),this.element.appendChild($));$.appendChild(e.createTextNode(String(Q0(_),"").replace(/<[^>]*>/g,"")))},textSetter:function($){if($!==this.textStr)delete this.bBox,this.textStr=$,this.added&&this.renderer.buildText(this)},fillSetter:function(A,$,_){typeof A==="string"?_.setAttribute($,A):A&&this.colorGradient(A,$,_)},visibilitySetter:function(A,$,_){A==="inherit"?_.removeAttribute($):_.setAttribute($,A)},zIndexSetter:function(E,C){var D=this.renderer,A=this.parentGroup,D=(A||D).element||D.box,B,$,_=this.element,F;B=this.added;var G;P0(E)&&(_.setAttribute(C,E),E=+E,this[C]===E&&(B=!1),this[C]=E);if(B){if((E=this.zIndex)&&A)A.handleZ=!0;A=D.childNodes;for(G=0;G<A.length&&!F;G++)if(B=A[G],$=n(B,"zIndex"),B!==_&&(b($)>E||!P0(E)&&P0($)))D.insertBefore(_,B),F=!0;F||D.appendChild(_)}return F},_defaultSetter:function(A,$,_){_.setAttribute($,A)}};u.prototype.yGetter=u.prototype.xGetter;u.prototype.translateXSetter=u.prototype.translateYSetter=u.prototype.rotationSetter=u.prototype.verticalAlignSetter=u.prototype.scaleXSetter=u.prototype.scaleYSetter=function(_,$){this[$]=_;this.doTransform=!0};u.prototype["stroke-widthSetter"]=u.prototype.strokeSetter=function(A,$,_){this[$]=A;if(this.stroke&&this["stroke-width"])this.strokeWidth=this["stroke-width"],u.prototype.fillSetter.call(this,this.stroke,"stroke",_),_.setAttribute("stroke-width",this["stroke-width"]),this.hasStroke=!0;else if($==="stroke-width"&&A===0&&this.hasStroke)_.removeAttribute("stroke"),this.hasStroke=!1};var A1=function(){this.init.apply(this,arguments)};A1.prototype={Element:u,init:function(E,C,D,A,B,$){var _=location,F,A=this.createElement("svg").attr({version:"1.1"}).css(this.getStyle(A));F=A.element;E.appendChild(F);E.innerHTML.indexOf("xmlns")===-1&&n(F,"xmlns",L);this.isSVG=!0;this.box=F;this.boxWrapper=A;this.alignedObjects=[];this.url=(Q1||N)&&e.getElementsByTagName("base").length?_.href.replace(/#.*?$/,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"";this.createElement("desc").add().element.appendChild(e.createTextNode("Created with Highcharts 4.1.9"));this.defs=this.createElement("defs").add();this.allowHTML=$;this.forExport=B;this.gradients={};this.cache={};this.setSize(C,D,!1);var G;if(Q1&&E.getBoundingClientRect)this.subPixelFix=C=function(){g(E,{left:0,top:0});G=E.getBoundingClientRect();g(E,{left:d0(G.left)-G.left+"px",top:d0(G.top)-G.top+"px"})},C(),l(f,"resize",C)},getStyle:function($){return this.style=K0({fontFamily:"\"Lucida Grande\", \"Lucida Sans Unicode\", Arial, Helvetica, sans-serif",fontSize:"12px"},$)},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var $=this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();l0(this.gradients||{});this.gradients=null;if($)this.defs=$.destroy();this.subPixelFix&&A0(f,"resize",this.subPixelFix);return this.alignedObjects=null},createElement:function(_){var $=new this.Element;$.init(this,_);return $},draw:function(){},getRadialAttr:function(_,$){return{cx:_[0]-_[2]/2+$.cx*_[2],cy:_[1]-_[2]/2+$.cy*_[2],r:$.r*_[2]}},buildText:function(F){for(var C=F.element,E=this,A=E.forExport,B=Q0(F.textStr,"").toString(),$=B.indexOf("<")!==-1,_=C.childNodes,M,N,J=n(C,"x"),K=F.styles,I=F.textWidth,G=K&&K.lineHeight,H=K&&K.textShadow,P=K&&K.textOverflow==="ellipsis",Q=_.length,R=I&&!F.added&&this.box,D=function($){return G?b(G):E.fontMetrics(/(px|em)$/.test($&&$.style.fontSize)?$.style.fontSize:K&&K.fontSize||E.style.fontSize||12,$).h},O=function($){return $.replace(/&lt;/g,"<").replace(/&gt;/g,">")};Q--;)C.removeChild(_[Q]);!$&&!H&&!P&&B.indexOf(" ")===-1?C.appendChild(e.createTextNode(O(B))):(M=/<.*style="([^"]+)".*>/,N=/<.*href="(http[^"]+)".*>/,R&&R.appendChild(C),B=$?B.replace(/<(b|strong)>/g,"<span style=\"font-weight:bold\">").replace(/<(i|em)>/g,"<span style=\"font-style:italic\">").replace(/<a/g,"<span").replace(/<\/(b|strong|i|em|a)>/g,"</span>").split(/<br.*?>/g):[B],B[B.length-1]===""&&B.pop(),G0(B,function(B,$){var _,G=0,B=B.replace(/<span/g,"|||<span").replace(/<\/span>/g,"</span>|||");_=B.split("|||");G0(_,function(H){if(H!==""||_.length===1){var R={},V=e.createElementNS(L,"tspan"),X;M.test(H)&&(X=H.match(M)[1].replace(/(;| |^)color([ :])/,"$1fill$2"),n(V,"style",X));N.test(H)&&!A&&(n(V,"onclick","location.href=\""+H.match(N)[1]+"\""),g(V,{cursor:"pointer"}));H=O(H.replace(/<(.|\n)*?>/g,"")||" ");if(H!==" "){V.appendChild(e.createTextNode(H));if(G)R.dx=0;else if($&&J!==null)R.x=J;n(V,R);C.appendChild(V);!G&&$&&(!Y0&&A&&g(V,{display:"block"}),n(V,"dy",D(V)));if(I){for(var R=H.replace(/([^\^])-/g,"$1- ").split(" "),a=_.length>1||$||R.length>1&&K.whiteSpace!=="nowrap",Q,Z,W,U=[],b=D(V),T=1,S=F.rotation,Y=H,B=Y.length;(a||P)&&(R.length||U.length);)F.rotation=0,Q=F.getBBox(!0),W=Q.width,!Y0&&E.forExport&&(W=E.measureSpanWidth(V.firstChild.data,F.styles)),Q=W>I,Z===void 0&&(Z=Q),P&&Z?(B/=2,Y===""||!Q&&B<0.5?R=[]:(Q&&(Z=!0),Y=H.substring(0,Y.length+(Q?-1:1)*d0(B)),R=[Y+(I>3?"\u2026":"")],V.removeChild(V.firstChild))):!Q||R.length===1?(R=U,U=[],R.length&&(T++,V=e.createElementNS(L,"tspan"),n(V,{dy:b,x:J}),X&&n(V,"style",X),C.appendChild(V)),W>I&&(I=W)):(V.removeChild(V.firstChild),U.unshift(R.pop())),R.length&&V.appendChild(e.createTextNode(R.join(" ").replace(/- /g,"-")));Z&&F.attr("title",F.textStr);F.rotation=S}G++}}})}),R&&R.removeChild(C),H&&F.applyTextShadow&&F.applyTextShadow(H))},getContrast:function($){$=L0($).rgba;return $[0]+$[1]+$[2]>384?"#000000":"#FFFFFF"},button:function(E,C,D,A,B,$,_,K,L){var I=this.label(E,C,D,L,null,null,null,null,"button"),J=0,H,F,G,M,N,O,E={x1:0,y1:0,x2:0,y2:1},B=X({"stroke-width":1,stroke:"#CCCCCC",fill:{linearGradient:E,stops:[[0,"#FEFEFE"],[1,"#F6F6F6"]]},r:2,padding:5,style:{color:"black"}},B);G=B.style;delete B.style;$=X(B,{stroke:"#68A",fill:{linearGradient:E,stops:[[0,"#FFF"],[1,"#ACF"]]}},$);M=$.style;delete $.style;_=X(B,{stroke:"#68A",fill:{linearGradient:E,stops:[[0,"#9BD"],[1,"#CDF"]]}},_);N=_.style;delete _.style;K=X(B,{style:{color:"#CCC"}},K);O=K.style;delete K.style;l(I.element,p0?"mouseover":"mouseenter",function(){J!==3&&I.attr($).css(M)});l(I.element,p0?"mouseout":"mouseleave",function(){J!==3&&(H=[B,$,_][J],F=[G,M,N][J],I.attr(H).css(F))});I.setState=function($){(I.state=J=$)?$===2?I.attr(_).css(N):$===3&&I.attr(K).css(O):I.attr(B).css(G)};return I.on("click",function($){J!==3&&A.call(I,$)}).attr(B).css(K0({cursor:"default"},G))},crispLine:function(_,$){_[1]===_[4]&&(_[1]=_[4]=I0(_[1])-$%2/2);_[2]===_[5]&&(_[2]=_[5]=I0(_[2])+$%2/2);return _},path:function(_){var $={fill:v};D0(_)?$.d=_:k0(_)&&K0($,_);return this.createElement("path").attr($)},circle:function(A,$,_){A=k0(A)?A:{x:A,y:$,r:_};$=this.createElement("circle");$.xSetter=function($){this.element.setAttribute("cx",$)};$.ySetter=function($){this.element.setAttribute("cy",$)};return $.attr(A)},arc:function(D,B,C,_,A,$){if(k0(D))B=D.y,C=D.r,_=D.innerR,A=D.start,$=D.end,D=D.x;D=this.symbol("arc",D||0,B||0,C||0,C||0,{innerR:_||0,start:A||0,end:$||0});D.r=C;return D},rect:function(E,C,D,A,B,$){var B=k0(E)?E.r:B,_=this.createElement("rect"),E=k0(E)?E:E===W0?{}:{x:E,y:C,width:N0(D,0),height:N0(A,0)};if($!==W0)E.strokeWidth=$,E=_.crisp(E);if(B)E.r=B;_.rSetter=function($){n(this.element,{rx:$,ry:$})};return _.attr(E)},setSize:function(C,A,B){var $=this.alignedObjects,_=$.length;this.width=C;this.height=A;for(this.boxWrapper[Q0(B,!0)?"animate":"attr"]({width:C,height:A});_--;)$[_].align()},g:function(_){var $=this.createElement("g");return P0(_)?$.attr({"class":"highcharts-"+_}):$},image:function(D,B,C,_,A){var $={preserveAspectRatio:v};arguments.length>1&&K0($,{x:B,y:C,width:_,height:A});$=this.createElement("image").attr($);$.element.setAttributeNS?$.element.setAttributeNS("http://www.w3.org/1999/xlink","href",D):$.element.setAttribute("hc-svg-href",D);return $},symbol:function(E,C,D,A,B,$){var _,H=this.symbols[E],H=H&&H(I0(C),I0(D),A,B,$),I=/^url\((.*?)\)$/,F,G;if(H)_=this.path(H),K0(_,{symbolName:E,x:C,y:D,width:A,height:B}),$&&K0(_,$);else if(I.test(E))G=function(_,$){_.element&&(_.attr({width:$[0],height:$[1]}),_.alignByTranslate||_.translate(I0((A-$[0])/2),I0((B-$[1])/2)))},F=E.match(I)[1],E=P1[F]||$&&$.width&&$.height&&[$.width,$.height],_=this.image(F).attr({x:C,y:D}),_.isImg=!0,E?G(_,E):(_.attr({width:0,height:0}),K("img",{onload:function(){this.width===0&&(g(this,{position:"absolute",top:"-999em"}),document.body.appendChild(this));G(_,P1[F]=[this.width,this.height]);this.parentNode&&this.parentNode.removeChild(this)},src:F}));return _},symbols:{circle:function(C,A,B,$){var _=0.166*B;return["M",C+B/2,A,"C",C+B+_,A,C+B+_,A+$,C+B/2,A+$,"C",C-_,A+$,C-_,A,C+B/2,A,"Z"]},square:function(B,_,A,$){return["M",B,_,"L",B+A,_,B+A,_+$,B,_+$,"Z"]},triangle:function(B,_,A,$){return["M",B+A/2,_,"L",B+A,_+$,B,_+$,"Z"]},"triangle-down":function(B,_,A,$){return["M",B,_,"L",B+A,_,B+A/2,_+$,"Z"]},diamond:function(B,_,A,$){return["M",B+A/2,_,"L",B+A,_+$/2,B+A/2,_+$,B,_+$/2,"Z"]},arc:function(E,C,D,A,B){var $=B.start,D=B.r||D||A,_=B.end-0.001,A=B.innerR,H=B.open,I=s($),F=S1($),G=s(_),_=S1(_),B=B.end-$<x?0:1;return["M",E+D*I,C+D*F,"A",D,D,0,B,1,E+D*G,C+D*_,H?"M":"L",E+A*G,C+A*_,"A",A,A,0,B,0,E+A*I,C+A*F,H?"":"Z"]},callout:function(E,C,D,A,B){var $=T0(B&&B.r||0,D,A),_=$+6,F=B&&B.anchorX,B=B&&B.anchorY,G;G=["M",E+$,C,"L",E+D-$,C,"C",E+D,C,E+D,C,E+D,C+$,"L",E+D,C+A-$,"C",E+D,C+A,E+D,C+A,E+D-$,C+A,"L",E+$,C+A,"C",E,C+A,E,C+A,E,C+A-$,"L",E,C+$,"C",E,C,E,C,E+$,C];F&&F>D&&B>C+_&&B<C+A-_?G.splice(13,3,"L",E+D,B-6,E+D+6,B,E+D,B+6,E+D,C+A-$):F&&F<0&&B>C+_&&B<C+A-_?G.splice(33,3,"L",E,B+6,E-6,B,E,B-6,E,C+$):B&&B>A&&F>E+_&&F<E+D-_?G.splice(23,3,"L",F+6,C+A,F,C+A+6,F-6,C+A,E+$,C+A):B&&B<0&&F>E+_&&F<E+D-_&&G.splice(3,3,"L",F-6,C,F,C-6,F+6,C,D-$,C);return G}},clipRect:function(D,B,C,_){var A="highcharts-"+G++,$=this.createElement("clipPath").attr({id:A}).add(this.defs),D=this.rect(D,B,C,_,0).add($);D.id=A;D.clipPath=$;D.count=0;return D},text:function(D,B,C,_){var A=F0||!Y0&&this.forExport,$={};if(_&&(this.allowHTML||!this.forExport))return this.html(D,B,C);$.x=Math.round(B||0);if(C)$.y=Math.round(C);if(D||D===0)$.text=D;D=this.createElement("text").attr($);A&&D.css({position:"absolute"});if(!_)D.xSetter=function(D,B,C){var _=C.getElementsByTagName("tspan"),A,$=C.getAttribute(B),E;for(E=0;E<_.length;E++)A=_[E],A.getAttribute(B)===$&&A.setAttribute(B,D);C.setAttribute(B,D)};return D},fontMetrics:function(B,_){var A,$,B=B||this.style.fontSize;!B&&_&&f.getComputedStyle&&(_=_.element||_,B=(A=f.getComputedStyle(_,""))&&A.fontSize);B=/px/.test(B)?b(B):/em/.test(B)?parseFloat(B)*12:12;A=B<24?B+3:I0(B*1.2);$=I0(A*0.8);return{h:A,b:$,f:B}},rotCorr:function(C,_,B){var $=C;_&&B&&($=N0($*s(_*A),4));return{x:-C/3*S1(_*A),y:$}},label:function(M,K,L,I,J,G,H,S,T){function Q(){var A,_;A=V.element.style;Z=(W===void 0||F===void 0||O.styles.textAlign)&&P0(V.textStr)&&V.getBBox();O.width=(W||Z.width||0)+2*U+b;O.height=(F||Z.height||0)+2*U;C=U+N.fontMetrics(A&&A.fontSize,V).b;if($){if(!Y)A=I0(-B*U)+D,_=(S?-C:0)+D,O.box=Y=I?N.symbol(I,A,_,O.width,O.height,E):N.rect(A,_,O.width,O.height,0,E[m0]),Y.isImg||Y.attr("fill",v),Y.add(O);Y.isImg||Y.attr(K0({width:I0(O.width),height:I0(O.height)},E));E=null}}function R(){var A=O.styles,A=A&&A.textAlign,$=b+U*(1-B),_;_=S?0:C;if(P0(W)&&Z&&(A==="center"||A==="right"))$+={center:0.5,right:1}[A]*(W-Z.width);if($!==V.x||_!==V.y)V.attr("x",$),_!==W0&&V.attr("y",_);V.x=$;V.y=_}function P(_,$){Y?Y.attr(_,$):E[_]=$}var N=this,O=N.g(T),V=N.text("",0,0,H).attr({zIndex:1}),Y,Z,B=0,U=3,b=0,W,F,A,a,D=0,E={},C,$;O.onAdd=function(){V.add(O);O.attr({text:M||M===0?M:"",x:K,y:L});Y&&P0(J)&&O.attr({anchorX:J,anchorY:G})};O.widthSetter=function($){W=$};O.heightSetter=function($){F=$};O.paddingSetter=function($){if(P0($)&&$!==U)U=O.padding=$,R()};O.paddingLeftSetter=function($){P0($)&&$!==b&&(b=$,R())};O.alignSetter=function($){B={left:0,center:0.5,right:1}[$]};O.textSetter=function($){$!==W0&&V.textSetter($);Q();R()};O["stroke-widthSetter"]=function(A,_){A&&($=!0);D=A%2/2;P(_,A)};O.strokeSetter=O.fillSetter=O.rSetter=function(A,_){_==="fill"&&A&&($=!0);P(_,A)};O.anchorXSetter=function(_,$){J=_;P($,I0(_)-D-A)};O.anchorYSetter=function(_,$){G=_;P($,_-a)};O.xSetter=function($){O.x=$;B&&($-=B*((W||Z.width)+U));A=I0($);O.attr("translateX",A)};O.ySetter=function($){a=O.y=I0($);O.attr("translateY",a)};var _=O.css;return K0(O,{css:function(A){if(A){var $={},A=X(A);G0(O.textProps,function(_){A[_]!==W0&&($[_]=A[_],delete A[_])});V.css($)}return _.call(O,A)},getBBox:function(){return{width:Z.width+2*U,height:Z.height+2*U,x:Z.x-U,y:Z.y-U}},shadow:function($){Y&&Y.shadow($);return O},destroy:function(){A0(O.element,"mouseenter");A0(O.element,"mouseleave");V&&(V=V.destroy());Y&&(Y=Y.destroy());u.prototype.destroy.call(O);O=N=Q=R=P=null}})}};W1=A1;K0(u.prototype,{htmlCss:function(_){var $=this.element;if($=_&&$.tagName==="SPAN"&&_.width)delete _.width,this.textWidth=$,this.updateTransform();if(_&&_.textOverflow==="ellipsis")_.whiteSpace="nowrap",_.overflow="hidden";this.styles=K0(this.styles,_);g(this.element,_);return this},htmlGetBBox:function(){var $=this.element;if($.nodeName==="text")$.style.position="absolute";return{x:$.offsetLeft,y:$.offsetTop,width:$.offsetWidth,height:$.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var E=this.renderer,C=this.element,D=this.translateX||0,A=this.translateY||0,B=this.x||0,$=this.y||0,_=this.textAlign||"left",K={left:0,center:0.5,right:1}[_],L=this.shadows,I=this.styles;g(C,{marginLeft:D,marginTop:A});L&&G0(L,function($){g($,{marginLeft:D+1,marginTop:A+1})});this.inverted&&G0(C.childNodes,function($){E.invertChild($,C)});if(C.tagName==="SPAN"){var J=this.rotation,H,F=b(this.textWidth),G=[J,_,C.innerHTML,this.textWidth,this.textAlign].join(",");if(G!==this.cTT){H=E.fontMetrics(C.style.fontSize).b;P0(J)&&this.setSpanRotation(J,K,H);L=Q0(this.elemWidth,C.offsetWidth);if(L>F&&/[ \-]/.test(C.textContent||C.innerText))g(C,{width:F+"px",display:"block",whiteSpace:I&&I.whiteSpace||"normal"}),L=F;this.getSpanCorrection(L,H,K,J,_)}g(C,{left:B+(this.xCorr||0)+"px",top:$+(this.yCorr||0)+"px"});if(N)H=C.offsetHeight;this.cTT=G}}else this.alignOnAdd=!0},setSpanRotation:function(C,A,B){var $={},_=p0?"-ms-transform":N?"-webkit-transform":Q1?"MozTransform":s0?"-o-transform":"";$[_]=$.transform="rotate("+C+"deg)";$[_+(Q1?"Origin":"-origin")]=$.transformOrigin=A*100+"% "+B+"px";g(this.element,$)},getSpanCorrection:function(A,$,_){this.xCorr=-A*_;this.yCorr=-$}});K0(A1.prototype,{html:function(D,B,C){var _=this.createElement("span"),A=_.element,$=_.renderer;_.textSetter=function($){$!==A.innerHTML&&delete this.bBox;A.innerHTML=this.textStr=$;_.htmlUpdateTransform()};_.xSetter=_.ySetter=_.alignSetter=_.rotationSetter=function(A,$){$==="align"&&($="textAlign");_[$]=A;_.htmlUpdateTransform()};_.attr({text:D,x:I0(B),y:I0(C)}).css({position:"absolute",fontFamily:this.style.fontFamily,fontSize:this.style.fontSize});A.style.whiteSpace="nowrap";_.css=_.htmlCss;if($.isSVG)_.add=function(D){var B,C=$.box.parentNode,E=[];if(this.parentGroup=D){if(B=D.div,!B){for(;D;)E.push(D),D=D.parentGroup;G0(E.reverse(),function(A){var $,_=n(A.element,"class");_&&(_={className:_});B=A.div=A.div||K(y0,_,{position:"absolute",left:(A.translateX||0)+"px",top:(A.translateY||0)+"px"},B||C);$=B.style;K0(A,{translateXSetter:function(_,B){$.left=_+"px";A[B]=_;A.doTransform=!0},translateYSetter:function(_,B){$.top=_+"px";A[B]=_;A.doTransform=!0}});G0(["opacity","visibility"],function(_){P(A,_+"Setter",function(C,A,B,_){C.call(this,A,B,_);$[B]=A})})})}}else B=C;B.appendChild(A);_.added=!0;_.alignOnAdd&&_.htmlUpdateTransform();return _};return _}});if(!Y0&&!F0){Z={init:function(C,A){var B=["<",A," filled=\"f\" stroked=\"f\""],$=["position: ","absolute",";"],_=A===y0;(A==="shape"||_)&&$.push("left:0;top:0;width:1px;height:1px;");$.push("visibility: ",_?"hidden":"visible");B.push(" style=\"",$.join(""),"\"/>");if(A)B=_||A==="span"||A==="img"?B.join(""):C.prepVML(B),this.element=K(B);this.renderer=C},add:function(B){var _=this.renderer,A=this.element,$=_.box,$=B?B.element||B:$;B&&B.inverted&&_.invertChild(A,$);$.appendChild(A);this.added=!0;this.alignOnAdd&&!this.deferUpdateTransform&&this.updateTransform();if(this.onAdd)this.onAdd();return this},updateTransform:u.prototype.htmlUpdateTransform,setSpanRotation:function(){var B=this.rotation,$=s(B*A),_=S1(B*A);g(this.element,{filter:B?["progid:DXImageTransform.Microsoft.Matrix(M11=",$,", M12=",-_,", M21=",_,", M22=",$,", sizingMethod='auto expand')"].join(""):v})},getSpanCorrection:function(F,D,E,B,C){var $=B?s(B*A):1,_=B?S1(B*A):0,G=Q0(this.elemHeight,this.element.offsetHeight),H;this.xCorr=$<0&&-F;this.yCorr=_<0&&-G;H=$*_<0;this.xCorr+=_*D*(H?1-E:E);this.yCorr-=$*D*(B?H?E:1-E:1);C&&C!=="left"&&(this.xCorr-=F*E*($<0?-1:1),B&&(this.yCorr-=G*E*(_<0?-1:1)),g(this.element,{textAlign:C}))},pathToVML:function(A){for(var $=A.length,_=[];$--;)if(N1(A[$]))_[$]=I0(A[$]*10)-5;else if(A[$]==="Z")_[$]="x";else if(_[$]=A[$],A.isArc&&(A[$]==="wa"||A[$]==="at"))_[$+5]===_[$+7]&&(_[$+7]+=A[$+7]>A[$+5]?1:-1),_[$+6]===_[$+8]&&(_[$+8]+=A[$+8]>A[$+6]?1:-1);return _.join(" ")||"x"},clip:function(A){var $=this,_;A?(_=A.members,U1(_,$),_.push($),$.destroyClip=function(){U1(_,$)},A=A.getCSS($)):($.destroyClip&&$.destroyClip(),A={clip:B?"inherit":"rect(auto)"});return $.css(A)},css:u.prototype.htmlCss,safeRemoveChild:function($){$.parentNode&&a0($)},destroy:function(){this.destroyClip&&this.destroyClip();return u.prototype.destroy.apply(this)},on:function(_,$){this.element["on"+_]=function(){var _=f.event;_.target=_.srcElement;$(_)};return this},cutOffPath:function(A,$){var _,A=A.split(/[ ,]/);_=A.length;if(_===9||_===11)A[_-4]=A[_-2]=b(A[_-2])-10*$;return A.join(" ")},shadow:function(E,C,D){var A=[],B,$=this.element,_=this.renderer,L,M=$.style,I,J=$.path,H,F,G,N;J&&typeof J.value!=="string"&&(J="x");F=J;if(E){G=Q0(E.width,3);N=(E.opacity||0.15)/G;for(B=1;B<=3;B++){H=G*2+1-2*B;D&&(F=this.cutOffPath(J.value,H+0.5));I=["<shape isShadow=\"true\" strokeweight=\"",H,"\" filled=\"false\" path=\"",F,"\" coordsize=\"10 10\" style=\"",$.style.cssText,"\" />"];L=K(_.prepVML(I),null,{left:b(M.left)+Q0(E.offsetX,1),top:b(M.top)+Q0(E.offsetY,1)});if(D)L.cutOff=H+1;I=["<stroke color=\"",E.color||"black","\" opacity=\"",N*B,"\"/>"];K(_.prepVML(I),null,null,L);C?C.element.appendChild(L):$.parentNode.insertBefore(L,$);A.push(L)}this.shadows=A}return this},updateShadows:S0,setAttr:function(_,$){B?this.element[_]=$:this.element.setAttribute(_,$)},classSetter:function($){this.element.className=$},dashstyleSetter:function(A,$,_){(_.getElementsByTagName("stroke")[0]||K(this.renderer.prepVML(["<stroke/>"]),null,null,_))[$]=A||"solid";this[$]=A},dSetter:function(B,_,A){var $=this.shadows,B=B||[];this.d=B.join&&B.join(" ");A.path=B=this.pathToVML(B);if($)for(A=$.length;A--;)$[A].path=$[A].cutOff?this.cutOffPath(B,$[A].cutOff):B;this.setAttr(_,B)},fillSetter:function(B,_,A){var $=A.nodeName;if($==="SPAN")A.style.color=B;else if($!=="IMG")A.filled=B!==v,this.setAttr("fillcolor",this.renderer.color(B,A,_,this))},opacitySetter:S0,rotationSetter:function(B,$,_){_=_.style;this[$]=_[$]=B;_.left=-I0(S1(B*A)+1)+"px";_.top=I0(s(B*A))+"px"},strokeSetter:function(A,$,_){this.setAttr("strokecolor",this.renderer.color(A,_,$))},"stroke-widthSetter":function(A,$,_){_.stroked=!!A;this[$]=A;N1(A)&&(A+="px");this.setAttr("strokeweight",A)},titleSetter:function(_,$){this.setAttr($,_)},visibilitySetter:function(A,$,_){A==="inherit"&&(A="visible");this.shadows&&G0(this.shadows,function(_){_.style[$]=A});_.nodeName==="DIV"&&(A=A==="hidden"?"-999em":0,B||(_.style[$]=A?"visible":"hidden"),$="top");_.style[$]=A},xSetter:function(A,$,_){this[$]=A;$==="x"?$="left":$==="y"&&($="top");this.updateClipping?(this[$]=A,this.updateClipping()):_.style[$]=A},zIndexSetter:function(A,$,_){_.style[$]=A}};c.VMLElement=Z=g0(u,Z);Z.prototype.ySetter=Z.prototype.widthSetter=Z.prototype.heightSetter=Z.prototype.xSetter;var V={Element:Z,isIE8:w0.indexOf("MSIE 8.0")>-1,init:function(D,B,C,_){var A;this.alignedObjects=[];_=this.createElement(y0).css(K0(this.getStyle(_),{position:"relative"}));A=_.element;D.appendChild(_.element);this.isVML=!0;this.box=A;this.boxWrapper=_;this.cache={};this.setSize(B,C,!1);if(!e.namespaces.hcv){e.namespaces.add("hcv","urn:schemas-microsoft-com:vml");try{e.createStyleSheet().cssText="hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } "}catch($){e.styleSheets[0].cssText+="hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } "}}},isHidden:function(){return!this.box.offsetWidth},clipRect:function(E,C,D,_){var A=this.createElement(),$=k0(E);return K0(A,{members:[],count:0,left:($?E.x:E)+1,top:($?E.y:C)+1,width:($?E.width:D)-1,height:($?E.height:_)-1,getCSS:function(E){var C=E.element,D=C.nodeName,E=E.inverted,_=this.top-(D==="shape"?C.offsetTop:0),A=this.left,C=A+this.width,$=_+this.height,_={clip:"rect("+I0(E?A:_)+"px,"+I0(E?$:C)+"px,"+I0(E?C:$)+"px,"+I0(E?_:A)+"px)"};!E&&B&&D==="DIV"&&K0(_,{width:C+"px",height:$+"px"});return _},updateClipping:function(){G0(A.members,function($){$.element&&$.css(A.getCSS($))})}})},color:function(H,F,G,D){var E=this,B,C=/^rgba/,O,P,M=v;H&&H.linearGradient?P="gradient":H&&H.radialGradient&&(P="pattern");if(P){var N,L,I=H.linearGradient||H.radialGradient,J,S,V,X,_,R="",H=H.stops,Z,W=[],A=function(){O=["<fill colors=\""+W.join(",")+"\" opacity=\"",V,"\" o:opacity2=\"",S,"\" type=\"",P,"\" ",R,"focus=\"100%\" method=\"any\" />"];K(E.prepVML(O),null,null,F)};J=H[0];Z=H[H.length-1];J[0]>0&&H.unshift([0,J[1]]);Z[0]<1&&H.push([1,Z[1]]);G0(H,function(A,$){C.test(A[1])?(B=L0(A[1]),N=B.get("rgb"),L=B.get("a")):(N=A[1],L=1);W.push(A[0]*100+"% "+N);$?(V=L,X=N):(S=L,_=N)});if(G==="fill"){if(P==="gradient")G=I.x1||I[0]||0,H=I.y1||I[1]||0,J=I.x2||I[2]||0,I=I.y2||I[3]||0,R="angle=\""+(90-t.atan((I-H)/(J-G))*180/x)+"\"",A();else{var M=I.r,U=M*2,a=M*2,T=I.cx,Q=I.cy,Y=F.radialReference,$,M=function(){Y&&($=D.getBBox(),T+=(Y[0]-$.x)/$.width-0.5,Q+=(Y[1]-$.y)/$.height-0.5,U*=Y[2]/$.width,a*=Y[2]/$.height);R="src=\""+w.global.VMLRadialGradientURL+"\" size=\""+U+","+a+"\" origin=\"0.5,0.5\" position=\""+T+","+Q+"\" color2=\""+_+"\" ";A()};D.added?M():D.onAdd=M;M=X}}else M=N}else if(C.test(H)&&F.tagName!=="IMG")B=L0(H),O=["<",G," opacity=\"",B.get("a"),"\"/>"],K(this.prepVML(O),null,null,F),M=B.get("rgb");else{M=F.getElementsByTagName(G);if(M.length)M[0].opacity=1,M[0].type="solid";M=H}return M},prepVML:function(_){var $=this.isIE8,_=_.join("");$?(_=_.replace("/>"," xmlns=\"urn:schemas-microsoft-com:vml\" />"),_=_.indexOf("style=\"")===-1?_.replace("/>"," style=\"display:inline-block;behavior:url(#default#VML);\" />"):_.replace("style=\"","style=\"display:inline-block;behavior:url(#default#VML);")):_=_.replace("<","<hcv:");return _},text:A1.prototype.html,path:function(_){var $={coordsize:"10 10"};D0(_)?$.d=_:k0(_)&&K0($,_);return this.createElement("shape").attr($)},circle:function(B,_,A){var $=this.symbol("circle");if(k0(B))A=B.r,_=B.y,B=B.x;$.isCircle=!0;$.r=A;return $.attr({x:B,y:_})},g:function(_){var $;_&&($={className:"highcharts-"+_,"class":"highcharts-"+_});return this.createElement(y0).attr($)},image:function(D,B,C,_,A){var $=this.createElement("img").attr({src:D});arguments.length>1&&$.attr({x:B,y:C,width:_,height:A});return $},createElement:function($){return $==="rect"?this.symbol($):A1.prototype.createElement.call(this,$)},invertChild:function(C,A){var B=this,$=A.style,_=C.tagName==="IMG"&&C.style;g(C,{flip:"x",left:b($.width)-(_?b(_.top):1),top:b($.height)-(_?b(_.left):1),rotation:-90});G0(C.childNodes,function($){B.invertChild($,C)})},symbols:{arc:function(E,C,D,A,B){var $=B.start,_=B.end,H=B.r||D||A,D=B.innerR,A=s($),I=S1($),F=s(_),G=S1(_);if(_-$===0)return["x"];$=["wa",E-H,C-H,E+H,C+H,E+H*A,C+H*I,E+H*F,C+H*G];B.open&&!D&&$.push("e","M",E,C);$.push("at",E-D,C-D,E+D,C+D,E+D*F,C+D*G,E+D*A,C+D*I,"x","e");$.isArc=!0;return $},circle:function(C,A,B,$,_){_&&(B=$=2*_.r);_&&_.isCircle&&(C-=B/2,A-=$/2);return["wa",C,A,C+B,A+$,C+B,A+$/2,C+B,A+$/2,"e"]},rect:function(C,A,B,$,_){return A1.prototype.symbols[!P0(_)||!_.r?"square":"callout"].call(0,C,A,B,$,_)}}};c.VMLRenderer=Z=function(){this.init.apply(this,arguments)};Z.prototype=X(A1.prototype,V);W1=Z}A1.prototype.measureSpanWidth=function(B,_){var A=e.createElement("span"),$;$=e.createTextNode(B);A.appendChild($);g(A,_);this.box.appendChild(A);$=A.offsetWidth;a0(A);return $};var I;if(F0)c.CanVGRenderer=Z=function(){L="http://www.w3.org/1999/xhtml"},Z.prototype.symbols={},I=function(){function _(){var A=$.length,_;for(_=0;_<A;_++)$[_]();$=[]}var $=[];return{push:function(B,A){$.length===0&&Z0(A,_);$.push(B)}}}(),W1=Z;C1.prototype={addLabel:function(){var E=this.axis,C=E.options,D=E.chart,A=E.categories,B=E.names,$=this.pos,_=C.labels,H=E.tickPositions,I=$===H[0],F=$===H[H.length-1],B=A?Q0(A[$],B[$],$):$,A=this.label,H=H.info,G;E.isDatetimeAxis&&H&&(G=C.dateTimeLabelFormats[H.higherRanks[$]||H.unitName]);this.isFirst=I;this.isLast=F;C=E.labelFormatter.call({axis:E,chart:D,isFirst:I,isLast:F,dateTimeLabelFormat:G,value:E.isLog?j(_1(B)):B});P0(A)?A&&A.attr({text:C}):(this.labelLength=(this.label=A=P0(C)&&_.enabled?D.renderer.text(C,0,0,_.useHTML).css(X(_.style)).add(E.labelGroup):null)&&A.getBBox().width,this.rotation=0)},getLabelSize:function(){return this.label?this.label.getBBox()[this.axis.horiz?"height":"width"]:0},handleOverflow:function(F){var D=this.axis,E=F.x,B=D.chart.chartWidth,C=D.chart.spacing,$=Q0(D.labelLeft,T0(D.pos,C[3])),C=Q0(D.labelRight,N0(D.pos+D.len,B-C[1])),_=this.label,L=this.rotation,M={left:0,center:0.5,right:1}[D.labelAlign],J=_.getBBox().width,K=D.slotWidth,I=1,G,H={};if(L)L<0&&E-M*J<$?G=I0(E/s(L*A)-$):L>0&&E+M*J>C&&(G=I0((B-E)/s(L*A)));else if(B=E+(1-M)*J,E-M*J<$?K=F.x+K*(1-M)-$:B>C&&(K=C-F.x+K*M,I=-1),K=T0(D.slotWidth,K),K<D.slotWidth&&D.labelAlign==="center"&&(F.x+=I*(D.slotWidth-K-M*(D.slotWidth-T0(J,K)))),J>K||D.autoRotation&&_.styles.width)G=K;if(G){H.width=G;if(!D.options.labels.style.textOverflow)H.textOverflow="ellipsis";_.css(H)}},getPosition:function(E,C,D,A){var B=this.axis,$=B.chart,_=A&&$.oldChartHeight||$.chartHeight;return{x:E?B.translate(C+D,null,null,A)+B.transB:B.left+B.offset+(B.opposite?(A&&$.oldChartWidth||$.chartWidth)-B.right-B.left:0),y:E?_-B.bottom+B.offset-(B.opposite?B.height:0):_-B.translate(C+D,null,null,A)-B.transB}},getLabelPosition:function(E,C,D,A,B,$,_,J){var K=this.axis,H=K.transA,I=K.reversed,G=K.staggerLines,F=K.tickRotCorr||{x:0,y:0},D=Q0(B.y,F.y+(K.side===2?8:-(D.getBBox().height/2))),E=E+B.x+F.x-($&&A?$*H*(I?-1:1):0),C=C+D-($&&!A?$*H*(I?1:-1):0);G&&(C+=_/(J||1)%G*(K.labelOffset/G));return{x:E,y:I0(C)}},getMarkPath:function(D,B,C,_,A,$){return $.crispLine(["M",D,B,"L",D+(A?0:-C),B+(A?C:0)],_)},render:function(G,E,F){var C=this.axis,D=C.options,A=C.chart.renderer,B=C.horiz,N=this.type,O=this.label,L=this.pos,M=D.labels,K=this.gridLine,H=N?N+"Grid":"grid",J=N?N+"Tick":"tick",R=D[H+"LineWidth"],U=D[H+"LineColor"],I=D[H+"LineDashStyle"],$=D[J+"Length"],H=Q0(D[J+"Width"],!N&&C.isXAxis?1:0),Q=D[J+"Color"],X=D[J+"Position"],J=this.mark,V=M.step,_=!0,T=C.tickmarkOffset,S=this.getPosition(B,L,T,E),P=S.x,S=S.y,W=B&&P===C.pos+C.len||!B&&S===C.pos?-1:1,F=Q0(F,1);this.isActive=!0;if(R){L=C.getPlotLinePath(L+T,R*W,E,!0);if(K===W0){K={stroke:U,"stroke-width":R};if(I)K.dashstyle=I;if(!N)K.zIndex=1;if(E)K.opacity=0;this.gridLine=K=R?A.path(L).attr(K).add(C.gridGroup):null}if(!E&&K&&L)K[this.isNew?"attr":"animate"]({d:L,opacity:F})}if(H&&$)X==="inside"&&($=-$),C.opposite&&($=-$),N=this.getMarkPath(P,S,$,H*W,B,A),J?J.animate({d:N,opacity:F}):this.mark=A.path(N).attr({stroke:Q,"stroke-width":H,opacity:F}).add(C.axisGroup);if(O&&!isNaN(P))O.xy=S=this.getLabelPosition(P,S,O,B,M,T,G,V),this.isFirst&&!this.isLast&&!Q0(D.showFirstLabel,1)||this.isLast&&!this.isFirst&&!Q0(D.showLastLabel,1)?_=!1:B&&!C.isRadial&&!M.step&&!M.rotation&&!E&&F!==0&&this.handleOverflow(S),V&&G%V&&(_=!1),_&&!isNaN(S.y)?(S.opacity=F,O[this.isNew?"attr":"animate"](S),this.isNew=!1):O.attr("y",-9999)},destroy:function(){l0(this,this.axis)}};c.PlotLineOrBand=function(_,$){this.axis=_;if($)this.options=$,this.id=$.id};c.PlotLineOrBand.prototype={render:function(){var F=this,D=F.axis,E=D.horiz,B=F.options,C=B.label,_=F.label,A=B.width,M=B.to,N=B.from,K=P0(N)&&P0(M),L=B.value,J=B.dashStyle,G=F.svgElem,I=[],P,Q=B.color,R=B.zIndex,H=B.events,O={},S=D.chart.renderer;D.isLog&&(N=L1(N),M=L1(M),L=L1(L));if(A){if(I=D.getPlotLinePath(L,A),O={stroke:Q,"stroke-width":A},J)O.dashstyle=J}else if(K){I=D.getPlotBandPath(N,M,B);if(Q)O.fill=Q;if(B.borderWidth)O.stroke=B.borderColor,O["stroke-width"]=B.borderWidth}else return;if(P0(R))O.zIndex=R;if(G){if(I)G.animate({d:I},null,G.onGetPath);else if(G.hide(),G.onGetPath=function(){G.show()},_)F.label=_=_.destroy()}else if(I&&I.length&&(F.svgElem=G=S.path(I).attr(O).add(),H))for(P in B=function($){G.on($,function(_){H[$].apply(F,[_])})},H)B(P);if(C&&P0(C.text)&&I&&I.length&&D.width>0&&D.height>0){C=X({align:E&&K&&"center",x:E?!K&&4:10,verticalAlign:!E&&K&&"middle",y:E?K?16:10:K?6:-4,rotation:E&&!K&&90},C);if(!_){O={align:C.textAlign||C.align,rotation:C.rotation};if(P0(R))O.zIndex=R;F.label=_=S.text(C.text,0,0,C.useHTML).attr(O).css(C.style).add()}D=[I[1],I[4],K?I[6]:I[1]];K=[I[2],I[5],K?I[7]:I[2]];I=U0(D);E=U0(K);_.align(C,!1,{x:I,y:E,width:$(D)-I,height:$(K)-E});_.show()}else _&&_.hide();return F},destroy:function(){U1(this.axis.plotLinesAndBands,this);delete this.axis;l0(this)}};var O=c.Axis=function(){this.init.apply(this,arguments)};O.prototype={defaultOptions:{dateTimeLabelFormats:{millisecond:"%H:%M:%S.%L",second:"%H:%M:%S",minute:"%H:%M",hour:"%H:%M",day:"%e. %b",week:"%e. %b",month:"%b '%y",year:"%Y"},endOnTick:!1,gridLineColor:"#D8D8D8",labels:{enabled:!0,style:{color:"#606060",cursor:"default",fontSize:"11px"},x:0,y:15},lineColor:"#C0D0E0",lineWidth:1,minPadding:0.01,maxPadding:0.01,minorGridLineColor:"#E0E0E0",minorGridLineWidth:1,minorTickColor:"#A0A0A0",minorTickLength:2,minorTickPosition:"outside",startOfWeek:1,startOnTick:!1,tickColor:"#C0D0E0",tickLength:10,tickmarkPlacement:"between",tickPixelInterval:100,tickPosition:"outside",title:{align:"middle",style:{color:"#707070"}},type:"linear"},defaultYAxisOptions:{endOnTick:!0,gridLineWidth:1,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8,y:3},lineWidth:0,maxPadding:0.05,minPadding:0.05,startOnTick:!0,title:{rotation:270,text:"Values"},stackLabels:{enabled:!1,formatter:function(){return c.numberFormat(this.total,-1)},style:X(G1.line.dataLabels.style,{color:"#000000"})}},defaultLeftAxisOptions:{labels:{x:-15,y:null},title:{rotation:270}},defaultRightAxisOptions:{labels:{x:15,y:null},title:{rotation:90}},defaultBottomAxisOptions:{labels:{autoRotation:[-45],x:0,y:null},title:{rotation:0}},defaultTopAxisOptions:{labels:{autoRotation:[-45],x:0,y:-15},title:{rotation:0}},init:function(D,B){var C=B.isX;this.chart=D;this.horiz=D.inverted?!C:C;this.coll=(this.isXAxis=C)?"xAxis":"yAxis";this.opposite=B.opposite;this.side=B.side||(this.horiz?this.opposite?0:2:this.opposite?1:3);this.setOptions(B);var _=this.options,A=_.type;this.labelFormatter=_.labels.formatter||this.defaultLabelFormatter;this.userOptions=B;this.minPixelPadding=0;this.reversed=_.reversed;this.visible=_.visible!==!1;this.zoomEnabled=_.zoomEnabled!==!1;this.categories=_.categories||A==="category";this.names=this.names||[];this.isLog=A==="logarithmic";this.isDatetimeAxis=A==="datetime";this.isLinked=P0(_.linkedTo);this.ticks={};this.labelEdge=[];this.minorTicks={};this.plotLinesAndBands=[];this.alternateBands={};this.len=0;this.minRange=this.userMinRange=_.minRange||_.maxZoom;this.range=_.range;this.offset=_.offset||0;this.stacks={};this.oldStacks={};this.stacksTouched=0;this.min=this.max=null;this.crosshair=Q0(_.crosshair,z0(D.options.tooltip.crosshairs)[C?0:1],!1);var $,_=this.options.events;J(this,D.axes)===-1&&(C&&!this.isColorAxis?D.axes.splice(D.xAxis.length,0,this):D.axes.push(this),D[this.coll].push(this));this.series=this.series||[];if(D.inverted&&C&&this.reversed===W0)this.reversed=!0;this.removePlotLine=this.removePlotBand=this.removePlotBandOrLine;for($ in _)l(this,$,_[$]);if(this.isLog)this.val2lin=L1,this.lin2val=_1},setOptions:function($){this.options=X(this.defaultOptions,this.isXAxis?{}:this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],X(w[this.coll],$))},defaultLabelFormatter:function(){var E=this.axis,C=this.value,D=E.categories,A=this.dateTimeLabelFormat,B=w.lang.numericSymbols,$=B&&B.length,_,F=E.options.labels.format,E=E.isLog?C:E.tickInterval;if(F)_=t0(F,this);else if(D)_=C;else if(A)_=C0(A,C);else if($&&E>=1000)for(;$--&&_===W0;)D=Math.pow(1000,$+1),E>=D&&C*10%D===0&&B[$]!==null&&(_=c.numberFormat(C/D,-1)+B[$]);_===W0&&(_=i(C)>=10000?c.numberFormat(C,-1):c.numberFormat(C,-1,W0,""));return _},getSeriesExtremes:function(){var A=this,_=A.chart;A.hasVisibleSeries=!1;A.dataMin=A.dataMax=A.threshold=null;A.softThreshold=!A.isXAxis;A.buildStacks&&A.buildStacks();G0(A.series,function(E){if(E.visible||!_.options.chart.ignoreHiddenSeries){var C=E.options,D=C.threshold,B;A.hasVisibleSeries=!0;A.isLog&&D<=0&&(D=null);if(A.isXAxis){if(C=E.xData,C.length)A.dataMin=T0(Q0(A.dataMin,C[0]),U0(C)),A.dataMax=N0(Q0(A.dataMax,C[0]),$(C))}else{E.getExtremes();B=E.dataMax;E=E.dataMin;if(P0(E)&&P0(B))A.dataMin=T0(Q0(A.dataMin,E),E),A.dataMax=N0(Q0(A.dataMax,B),B);if(P0(D))A.threshold=D;if(!C.softThreshold||A.isLog)A.softThreshold=!1}}})},translate:function(E,C,D,A,B,$){var _=this.linkedParent||this,H=1,I=0,F=A?_.oldTransA:_.transA,A=A?_.oldMin:_.min,G=_.minPixelPadding,B=(_.doPostTranslate||_.isLog&&B)&&_.lin2val;if(!F)F=_.transA;if(D)H*=-1,I=_.len;_.reversed&&(H*=-1,I-=H*(_.sector||_.len));C?(E=E*H+I,E-=G,E=E/F+A,B&&(E=_.lin2val(E))):(B&&(E=_.val2lin(E)),$==="between"&&($=0.5),E=H*(E-A)*F+I+H*G+(N1($)?F*$*_.pointRange:0));return E},toPixels:function(_,$){return this.translate(_,!1,!this.horiz,null,!0)+($?0:this.pos)},toValue:function(_,$){return this.translate(_-($?0:this.pos),!0,!this.horiz,null,!0)},getPlotLinePath:function(E,C,D,A,B){var $=this.chart,_=this.left,K=this.top,L,I,J=D&&$.oldChartHeight||$.chartHeight,H=D&&$.oldChartWidth||$.chartWidth,F;L=this.transB;var G=function(B,$,_){if(B<$||B>_)A?B=T0(N0($,B),_):F=!0;return B},B=Q0(B,this.translate(E,null,null,D)),E=D=I0(B+L);L=I=I0(J-B-L);isNaN(B)?F=!0:this.horiz?(L=K,I=J-this.bottom,E=D=G(E,_,_+this.width)):(E=_,D=H-this.right,L=I=G(L,K,K+this.height));return F&&!A?null:$.renderer.crispLine(["M",E,L,"L",D,I],C||1)},getLinearTickPositions:function(E,C,D){var A,B=j(r(C/E)*E),$=j(d0(D/E)*E),_=[];if(C===D&&N1(C))return[C];for(C=B;C<=$;){_.push(C);C=j(C+E);if(C===A)break;A=C}return _},getMinorTickPositions:function(){var E=this.options,C=this.tickPositions,D=this.minorTickInterval,A=[],B,$=this.pointRangePadding||0;B=this.min-$;var $=this.max+$,_=$-B;if(_&&_/D<this.len/3)if(this.isLog){$=C.length;for(B=1;B<$;B++)A=A.concat(this.getLogTickPositions(D,C[B-1],C[B],!0))}else if(this.isDatetimeAxis&&E.minorTickInterval==="auto")A=A.concat(this.getTimeTicks(this.normalizeTimeTickInterval(D),B,$,E.startOfWeek));else for(C=B+(C[0]-B)%D;C<=$;C+=D)A.push(C);A.length!==0&&this.trimTicks(A,E.startOnTick,E.endOnTick);return A},adjustForMinRange:function(){var F=this.options,D=this.min,E=this.max,B,C=this.dataMax-this.dataMin>=this.minRange,_,A,I,J,G,H;if(this.isXAxis&&this.minRange===W0&&!this.isLog)P0(F.min)||P0(F.max)?this.minRange=null:(G0(this.series,function($){J=$.xData;for(A=G=$.xIncrement?1:J.length-1;A>0;A--)if(I=J[A]-J[A-1],_===W0||I<_)_=I}),this.minRange=T0(_*5,this.dataMax-this.dataMin));if(E-D<this.minRange){H=this.minRange;B=(H-E+D)/2;B=[D-B,Q0(F.min,D-B)];if(C)B[2]=this.dataMin;D=$(B);E=[D+H,Q0(F.max,D+H)];if(C)E[2]=this.dataMax;E=U0(E);E-D<H&&(B[0]=E-H,B[1]=Q0(F.min,E-H),D=$(B))}this.min=D;this.max=E},setAxisTranslation:function(E){var C=this,D=C.max-C.min,A=C.axisPointRange||0,B,$=0,_=0,H=C.linkedParent,I=!!C.categories,F=C.transA,G=C.isXAxis;if(G||I||A)if(H?($=H.minPointOffset,_=H.pointRangePadding):G0(C.series,function(E){var D=I?1:G?E.pointRange:C.axisPointRange||0,H=E.options.pointPlacement,F=E.closestPointRange;A=N0(A,D);C.single||($=N0($,v0(H)?0:D/2),_=N0(_,H==="on"?0:D));!E.noSharedTooltip&&P0(F)&&(B=P0(B)?T0(B,F):F)}),H=C.ordinalSlope&&B?C.ordinalSlope/B:1,C.minPointOffset=$*=H,C.pointRangePadding=_*=H,C.pointRange=T0(A,D),G)C.closestPointRange=B;if(E)C.oldTransA=F;C.translationSlope=C.transA=F=C.len/(D+_||1);C.transB=C.horiz?C.left:C.bottom;C.minPixelPadding=F*$},minFromRange:function(){return this.max-this.range},setTickInterval:function(G){var C=this,E=C.chart,A=C.options,B=C.isLog,$=C.isDatetimeAxis,_=C.isXAxis,M=C.isLinked,N=A.maxPadding,K=A.minPadding,L=A.tickInterval,J=A.tickPixelInterval,H=C.categories,I=C.threshold,P=C.softThreshold,Q,R,D,O;!$&&!H&&!M&&this.getTickAmount();D=Q0(C.userMin,A.min);O=Q0(C.userMax,A.max);M?(C.linkedParent=E[C.coll][A.linkedTo],E=C.linkedParent.getExtremes(),C.min=Q0(E.min,E.dataMin),C.max=Q0(E.max,E.dataMax),A.type!==C.linkedParent.options.type&&r0(11,1)):(!P&&P0(I)&&(C.dataMin>=I?(Q=I,K=0):C.dataMax<=I&&(R=I,N=0)),C.min=Q0(D,Q,C.dataMin),C.max=Q0(O,R,C.dataMax));if(B)!G&&T0(C.min,Q0(C.dataMin,C.min))<=0&&r0(10,1),C.min=j(L1(C.min),15),C.max=j(L1(C.max),15);if(C.range&&P0(C.max))C.userMin=C.min=D=N0(C.min,C.minFromRange()),C.userMax=O=C.max,C.range=null;C.beforePadding&&C.beforePadding();C.adjustForMinRange();if(!H&&!C.axisPointRange&&!C.usePercentage&&!M&&P0(C.min)&&P0(C.max)&&(E=C.max-C.min))!P0(D)&&K&&(C.min-=E*K),!P0(O)&&N&&(C.max+=E*N);if(N1(A.floor))C.min=N0(C.min,A.floor);if(N1(A.ceiling))C.max=T0(C.max,A.ceiling);if(P&&P0(C.dataMin))if(I=I||0,!P0(D)&&C.min<I&&C.dataMin>=I)C.min=I;else if(!P0(O)&&C.max>I&&C.dataMax<=I)C.max=I;C.tickInterval=C.min===C.max||C.min===void 0||C.max===void 0?1:M&&!L&&J===C.linkedParent.options.tickPixelInterval?L=C.linkedParent.tickInterval:Q0(L,this.tickAmount?(C.max-C.min)/N0(this.tickAmount-1,1):void 0,H?1:(C.max-C.min)*J/N0(C.len,J));_&&!G&&G0(C.series,function($){$.processData(C.min!==C.oldMin||C.max!==C.oldMax)});C.setAxisTranslation(!0);C.beforeSetTickPositions&&C.beforeSetTickPositions();if(C.postProcessTickInterval)C.tickInterval=C.postProcessTickInterval(C.tickInterval);if(C.pointRange)C.tickInterval=N0(C.pointRange,C.tickInterval);G=Q0(A.minTickInterval,C.isDatetimeAxis&&C.closestPointRange);if(!L&&C.tickInterval<G)C.tickInterval=G;if(!$&&!B&&!L)C.tickInterval=S(C.tickInterval,null,F(C.tickInterval),Q0(A.allowDecimals,!(C.tickInterval>0.5&&C.tickInterval<5&&C.max>1000&&C.max<9999)),!!this.tickAmount);if(!this.tickAmount&&this.len)C.tickInterval=C.unsquish();this.setTickPositions()},setTickPositions:function(){var E=this.options,C,D=E.tickPositions,A=E.tickPositioner,B=E.startOnTick,$=E.endOnTick,_;this.tickmarkOffset=this.categories&&E.tickmarkPlacement==="between"&&this.tickInterval===1?0.5:0;this.minorTickInterval=E.minorTickInterval==="auto"&&this.tickInterval?this.tickInterval/5:E.minorTickInterval;this.tickPositions=C=D&&D.slice();if(!C&&(C=this.isDatetimeAxis?this.getTimeTicks(this.normalizeTimeTickInterval(this.tickInterval,E.units),this.min,this.max,E.startOfWeek,this.ordinalPositions,this.closestPointRange,!0):this.isLog?this.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max),C.length>this.len&&(C=[C[0],C.pop()]),this.tickPositions=C,A&&(A=A.apply(this,[this.min,this.max]))))this.tickPositions=C=A;if(!this.isLinked)this.trimTicks(C,B,$),this.min===this.max&&P0(this.min)&&!this.tickAmount&&(_=!0,this.min-=0.5,this.max+=0.5),this.single=_,!D&&!A&&this.adjustTickAmount()},trimTicks:function(D,B,C){var _=D[0],A=D[D.length-1],$=this.minPointOffset||0;B?this.min=_:this.min-$>_&&D.shift();C?this.max=A:this.max+$<A&&D.pop();D.length===0&&P0(_)&&D.push((A+_)/2)},getTickAmount:function(){var C={},A,B=this.options,$=B.tickAmount,_=B.tickPixelInterval;!P0(B.tickInterval)&&this.len<_&&!this.isRadial&&!this.isLog&&B.startOnTick&&B.endOnTick&&($=2);!$&&this.chart.options.chart.alignTicks!==!1&&B.alignTicks!==!1&&(G0(this.chart[this.coll],function(B){var $=B.options,_=B.horiz,$=[_?$.left:$.top,_?$.width:$.height,$.pane].join(",");B.series.length&&(C[$]?A=!0:C[$]=1)}),A&&($=d0(this.len/_)+1));if($<4)this.finalTickAmt=$,$=5;this.tickAmount=$},adjustTickAmount:function(){var C=this.tickInterval,A=this.tickPositions,B=this.tickAmount,$=this.finalTickAmt,_=A&&A.length;if(_<B){for(;A.length<B;)A.push(j(A[A.length-1]+C));this.transA*=(_-1)/(B-1);this.max=A[A.length-1]}else _>B&&(this.tickInterval*=2,this.setTickPositions());if(P0($)){for(C=B=A.length;C--;)($===3&&C%2===1||$<=2&&C>0&&C<B-1)&&A.splice(C,1);this.finalTickAmt=W0}},setScale:function(){var _,$;this.oldMin=this.min;this.oldMax=this.max;this.oldAxisLength=this.len;this.setAxisSize();$=this.len!==this.oldAxisLength;G0(this.series,function($){if($.isDirtyData||$.isDirty||$.xAxis.isDirty)_=!0});if($||_||this.isLinked||this.forceRedraw||this.userMin!==this.oldUserMin||this.userMax!==this.oldUserMax){if(this.resetStacks&&this.resetStacks(),this.forceRedraw=!1,this.getSeriesExtremes(),this.setTickInterval(),this.oldUserMin=this.userMin,this.oldUserMax=this.userMax,!this.isDirty)this.isDirty=$||this.min!==this.oldMin||this.max!==this.oldMax}else this.cleanStacks&&this.cleanStacks()},setExtremes:function(E,C,D,A,B){var $=this,_=$.chart,D=Q0(D,!0);G0($.series,function($){delete $.kdTree});B=K0(B,{min:E,max:C});m($,"setExtremes",B,function(){$.userMin=E;$.userMax=C;$.eventArgs=B;D&&_.redraw(A)})},zoom:function(D,B){var C=this.dataMin,_=this.dataMax,A=this.options,$=T0(C,Q0(A.min,C)),A=N0(_,Q0(A.max,_));this.allowZoomOutside||(P0(C)&&D<=$&&(D=$),P0(_)&&B>=A&&(B=A));this.displayBtn=D!==W0||B!==W0;this.setExtremes(D,B,!1,W0,{trigger:"zoom"});return!0},setAxisSize:function(){var E=this.chart,C=this.options,D=C.offsetLeft||0,A=this.horiz,B=Q0(C.width,E.plotWidth-D+(C.offsetRight||0)),$=Q0(C.height,E.plotHeight),_=Q0(C.top,E.plotTop),C=Q0(C.left,E.plotLeft+D),D=/%$/;D.test($)&&($=parseFloat($)/100*E.plotHeight);D.test(_)&&(_=parseFloat(_)/100*E.plotHeight+E.plotTop);this.left=C;this.top=_;this.width=B;this.height=$;this.bottom=E.chartHeight-$-_;this.right=E.chartWidth-B-C;this.len=N0(A?B:$,0);this.pos=A?C:_},getExtremes:function(){var $=this.isLog;return{min:$?j(_1(this.min)):this.min,max:$?j(_1(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(A){var $=this.isLog,_=$?_1(this.min):this.min,$=$?_1(this.max):this.max;A===null?A=$<0?$:_:_>A?A=_:$<A&&(A=$);return this.translate(A,0,1,0,1)},autoLabelAlign:function($){$=(Q0($,0)-this.side*90+720)%360;return $>15&&$<165?"right":$>195&&$<345?"left":"center"},unsquish:function(){var F=this.ticks,D=this.options.labels,E=this.horiz,B=this.tickInterval,C=B,$=this.len/(((this.categories?1:0)+this.max-this.min)/B),_,K=D.rotation,L=this.chart.renderer.fontMetrics(D.style.fontSize,F[0]&&F[0].label),I,J=Number.MAX_VALUE,H,G=function($){$/=$||1;$=$>1?d0($):1;return $*B};E?(H=!D.staggerLines&&!D.step&&(P0(K)?[K]:$<Q0(D.autoRotationLimit,80)&&D.autoRotation))&&G0(H,function(B){var $;if(B===K||B&&B>=-90&&B<=90)I=G(i(L.h/S1(A*B))),$=I+i(B/360),$<J&&(J=$,_=B,C=I)}):D.step||(C=G(L.h));this.autoRotation=H;this.labelRotation=Q0(_,K);return C},renderUnsquish:function(){var E=this.chart,C=E.renderer,D=this.tickPositions,A=this.ticks,B=this.options.labels,$=this.horiz,_=E.margin,J=this.categories?D.length:D.length-1,K=this.slotWidth=$&&!B.step&&!B.rotation&&(this.staggerLines||1)*E.plotWidth/J||!$&&(_[3]&&_[3]-E.spacing[3]||E.chartWidth*0.33),H=N0(1,I0(K-2*(B.padding||5))),I={},_=C.fontMetrics(B.style.fontSize,A[0]&&A[0].label),J=B.style.textOverflow,G,F=0;if(!v0(B.rotation))I.rotation=B.rotation||0;if(this.autoRotation)G0(D,function($){if(($=A[$])&&$.labelLength>F)F=$.labelLength}),F>H&&F>_.h?I.rotation=this.labelRotation:this.labelRotation=0;else if(K&&(G={width:H+"px"},!J)){G.textOverflow="clip";for(K=D.length;!$&&K--;)if(H=D[K],H=A[H].label)if(H.styles.textOverflow==="ellipsis"&&H.css({textOverflow:"clip"}),H.getBBox().height>this.len/D.length-(_.h-_.f))H.specCss={textOverflow:"ellipsis"}}if(I.rotation&&(G={width:(F>E.chartHeight*0.5?E.chartHeight*0.33:E.chartHeight)+"px"},!J))G.textOverflow="ellipsis";this.labelAlign=I.align=B.align||this.autoLabelAlign(this.labelRotation);G0(D,function(_){var $=(_=A[_])&&_.label;if($)$.attr(I),G&&$.css(X(G,$.specCss)),delete $.specCss,_.rotation=I.rotation});this.tickRotCorr=C.rotCorr(_.b,this.labelRotation||0,this.side===2)},hasData:function(){return this.hasVisibleSeries||P0(this.min)&&P0(this.max)&&!!this.tickPositions},getOffset:function(){var F=this,C=F.chart,E=C.renderer,A=F.options,B=F.tickPositions,$=F.ticks,_=F.horiz,L=F.side,M=C.inverted?[1,0,3,2][L]:L,J,K,I=0,G,H=0,O=A.title,Q=A.labels,S=0,D=C.axisOffset,C=C.clipOffset,N=[-1,1,1,-1][L],R,P=F.axisParent;J=F.hasData();F.showAxis=K=J||Q0(A.showEmpty,!0);F.staggerLines=F.horiz&&Q.staggerLines;if(!F.axisGroup)F.gridGroup=E.g("grid").attr({zIndex:A.gridZIndex||1}).add(P),F.axisGroup=E.g("axis").attr({zIndex:A.zIndex||2}).add(P),F.labelGroup=E.g("axis-labels").attr({zIndex:Q.zIndex||7}).addClass("highcharts-"+F.coll.toLowerCase()+"-labels").add(P);if(J||F.isLinked){if(G0(B,function(_){$[_]?$[_].addLabel():$[_]=new C1(F,_)}),F.renderUnsquish(),G0(B,function(_){if(L===0||L===2||{1:"left",3:"right"}[L]===F.labelAlign)S=N0($[_].getLabelSize(),S)}),F.staggerLines)S*=F.staggerLines,F.labelOffset=S}else for(R in $)$[R].destroy(),delete $[R];if(O&&O.text&&O.enabled!==!1){if(!F.axisTitle)F.axisTitle=E.text(O.text,0,0,O.useHTML).attr({zIndex:7,rotation:O.rotation||0,align:O.textAlign||{low:"left",middle:"center",high:"right"}[O.align]}).addClass("highcharts-"+this.coll.toLowerCase()+"-title").css(O.style).add(F.axisGroup),F.axisTitle.isNew=!0;if(K)I=F.axisTitle.getBBox()[_?"height":"width"],G=O.offset,H=P0(G)?0:Q0(O.margin,_?5:10);F.axisTitle[K?"show":"hide"]()}F.offset=N*Q0(A.offset,D[L]);F.tickRotCorr=F.tickRotCorr||{x:0,y:0};E=L===2?F.tickRotCorr.y:0;_=S+H+(S&&N*(_?Q0(Q.y,F.tickRotCorr.y+8):Q.x)-E);F.axisTitleMargin=Q0(G,_);D[L]=N0(D[L],F.axisTitleMargin+I+N*F.offset,_);A=A.offset?0:r(A.lineWidth/2)*2;C[M]=N0(C[M],A)},getLinePath:function(D){var B=this.chart,C=this.opposite,_=this.offset,A=this.horiz,$=this.left+(C?this.width:0)+_,_=B.chartHeight-this.bottom-(C?this.height:0)+_;C&&(D*=-1);return B.renderer.crispLine(["M",A?this.left:$,A?_:this.top,"L",A?B.chartWidth-this.right:$,A?_:B.chartHeight-this.bottom],D)},getTitlePosition:function(){var E=this.horiz,C=this.left,D=this.top,A=this.len,B=this.options.title,$=E?C:D,_=this.opposite,H=this.offset,I=B.x||0,F=B.y||0,G=b(B.style.fontSize||12),A={low:$+(E?0:A),middle:$+A/2,high:$+(E?A:0)}[B.align],C=(E?D+this.height:C)+(E?1:-1)*(_?-1:1)*this.axisTitleMargin+(this.side===2?G:0);return{x:E?A+I:C+(_?this.width:0)+H+I,y:E?C+F-(_?this.height:0)+H:A+F}},render:function(){var F=this,C=F.chart,E=C.renderer,A=F.options,B=F.isLog,$=F.isLinked,_=F.tickPositions,L=F.axisTitle,M=F.ticks,J=F.minorTicks,K=F.alternateBands,I=A.stackLabels,G=A.alternateGridColor,H=F.tickmarkOffset,O=A.lineWidth,Q,R=C.hasRendered&&P0(F.oldMin)&&!isNaN(F.oldMin),D=F.showAxis,N=E.globalAnimation,S,P;F.labelEdge.length=0;F.overlap=!1;G0([M,J,K],function(_){for(var $ in _)_[$].isActive=!1});if(F.hasData()||$){F.minorTickInterval&&!F.categories&&G0(F.getMinorTickPositions(),function($){J[$]||(J[$]=new C1(F,$,"minor"));R&&J[$].isNew&&J[$].render(null,!0);J[$].render(null,!1,1)});if(_.length&&(G0(_,function(_,A){if(!$||_>=F.min&&_<=F.max)M[_]||(M[_]=new C1(F,_)),R&&M[_].isNew&&M[_].render(A,!0,0.1),M[_].render(A)}),H&&(F.min===0||F.single)))M[-1]||(M[-1]=new C1(F,-1,null,!0)),M[-1].render(-1);G&&G0(_,function($,A){P=_[A+1]!==W0?_[A+1]+H:F.max-H;if(A%2===0&&$<F.max&&P<=F.max-H)K[$]||(K[$]=new c.PlotLineOrBand(F)),S=$+H,K[$].options={from:B?_1(S):S,to:B?_1(P):P,color:G},K[$].render(),K[$].isActive=!0});if(!F._addedPlotLB)G0((A.plotLines||[]).concat(A.plotBands||[]),function($){F.addPlotBandOrLine($)}),F._addedPlotLB=!0}G0([M,J,K],function(E){var D,A,B=[],$=N?N.duration||500:0,_=function(){for(A=B.length;A--;)E[B[A]]&&!E[B[A]].isActive&&(E[B[A]].destroy(),delete E[B[A]])};for(D in E)if(!E[D].isActive)E[D].render(D,!1,0),E[D].isActive=!1,B.push(D);E===K||!C.hasRendered||!$?_():$&&setTimeout(_,$)});if(O)Q=F.getLinePath(O),F.axisLine?F.axisLine.animate({d:Q}):F.axisLine=E.path(Q).attr({stroke:A.lineColor,"stroke-width":O,zIndex:7}).add(F.axisGroup),F.axisLine[D?"show":"hide"]();if(L&&D)L[L.isNew?"attr":"animate"](F.getTitlePosition()),L.isNew=!1;I&&I.enabled&&F.renderStackTotals();F.isDirty=!1},redraw:function(){this.visible&&(this.render(),G0(this.plotLinesAndBands,function($){$.render()}));G0(this.series,function($){$.isDirty=!0})},destroy:function(C){var A=this,B=A.stacks,$,_=A.plotLinesAndBands;C||A0(A);for($ in B)l0(B[$]),B[$]=null;G0([A.ticks,A.minorTicks,A.alternateBands],function($){l0($)});for(C=_.length;C--;)_[C].destroy();G0("stackTotalGroup,axisLine,axisTitle,axisGroup,cross,gridGroup,labelGroup".split(","),function($){A[$]&&(A[$]=A[$].destroy())});this.cross&&this.cross.destroy()},drawCrosshair:function(C,A){var B,$=this.crosshair,_=$.animation;if(!this.crosshair||(P0(A)||!Q0(this.crosshair.snap,!0))===!1||A&&A.series&&A.series[this.coll]!==this)this.hideCrosshair();else if(Q0($.snap,!0)?P0(A)&&(B=this.isXAxis?A.plotX:this.len-A.plotY):B=this.horiz?C.chartX-this.pos:this.len-C.chartY+this.pos,B=this.isRadial?this.getPlotLinePath(this.isXAxis?A.x:Q0(A.stackY,A.y))||null:this.getPlotLinePath(null,null,null,null,B)||null,B===null)this.hideCrosshair();else if(this.cross)this.cross.attr({visibility:"visible"})[_?"animate":"attr"]({d:B},_);else{_=this.categories&&!this.isRadial;_={"stroke-width":$.width||(_?this.transA:1),stroke:$.color||(_?"rgba(155,200,255,0.2)":"#C0C0C0"),zIndex:$.zIndex||2};if($.dashStyle)_.dashstyle=$.dashStyle;this.cross=this.chart.renderer.path(B).attr(_).add()}},hideCrosshair:function(){this.cross&&this.cross.hide()}};K0(O.prototype,{getPlotBandPath:function(B,_){var A=this.getPlotLinePath(_,null,null,!0),$=this.getPlotLinePath(B,null,null,!0);$&&A&&$.toString()!==A.toString()?$.push(A[4],A[5],A[1],A[2]):$=null;return $},addPlotBand:function($){return this.addPlotBandOrLine($,"plotBands")},addPlotLine:function($){return this.addPlotBandOrLine($,"plotLines")},addPlotBandOrLine:function(B,_){var A=(new c.PlotLineOrBand(this,B)).render(),$=this.userOptions;A&&(_&&($[_]=$[_]||[],$[_].push(B)),this.plotLinesAndBands.push(A));return A},removePlotBandOrLine:function(C){for(var A=this.plotLinesAndBands,B=this.options,$=this.userOptions,_=A.length;_--;)A[_].id===C&&A[_].destroy();G0([B.plotLines||[],$.plotLines||[],B.plotBands||[],$.plotBands||[]],function($){for(_=$.length;_--;)$[_].id===C&&U1($,$[_])})}});O.prototype.getTimeTicks=function(F,D,E,B){var C=[],$={},A=w.global.useUTC,L,N=new I1(D-q(D)),J=F.unitRange,K=F.count;if(P0(D)){N[_](J>=a.second?0:K*r(N.getMilliseconds()/K));if(J>=a.second)N[M](J>=a.minute?0:K*r(N.getSeconds()/K));if(J>=a.minute)N[Y](J>=a.hour?0:K*r(N[x0]()/K));if(J>=a.hour)N[E0](J>=a.day?0:K*r(N[q0]()/K));if(J>=a.day)N[R0](J>=a.month?1:K*r(N[o0]()/K));J>=a.month&&(N[_0](J>=a.year?0:K*r(N[b0]()/K)),L=N[H1]());J>=a.year&&(L-=L%K,N[T](L));if(J===a.week)N[R0](N[o0]()-N[c0]()+Q0(B,1));D=1;if(M0||j0)N=N.getTime(),N=new I1(N+q(N));L=N[H1]();for(var B=N.getTime(),I=N[b0](),G=N[o0](),H=(a.day+(A?q(N):N.getTimezoneOffset()*60000))%a.day;B<E;)C.push(B),J===a.year?B=H0(L+D*K,0):J===a.month?B=H0(L,I+D*K):!A&&(J===a.day||J===a.week)?B=H0(L,I,G+D*K*(J===a.day?1:7)):B+=J*K,D++;C.push(B);G0(e0(C,function($){return J<=a.hour&&$%a.day===H}),function(_){$[_]="day"})}C.info=K0(F,{higherRanks:$,totalRange:J*K});return C};O.prototype.normalizeTimeTickInterval=function(E,C){var D=C||[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2]],["week",[1,2]],["month",[1,2,3,4,6]],["year",null]],A=D[D.length-1],B=a[A[0]],$=A[1],_;for(_=0;_<D.length;_++)if(A=D[_],B=a[A[0]],$=A[1],D[_+1]&&E<=(B*$[$.length-1]+a[D[_+1][0]])/2)break;B===a.year&&E<5*B&&($=[1,2,5]);D=S(E/B,$,A[0]==="year"?N0(F(E/B),1):1);return{unitRange:B,count:D,unitName:A[0]}};O.prototype.getLogTickPositions=function(G,C,E,A){var B=this.options,$=this.len,_=[];if(!A)this._minorAutoInterval=null;if(G>=0.5)G=I0(G),_=this.getLinearTickPositions(G,C,E);else if(G>=0.08){for(var $=r(C),K,L,I,J,H,B=G>0.3?[1,2,4]:G>0.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9];$<E+1&&!H;$++){L=B.length;for(K=0;K<L&&!H;K++)I=L1(_1($)*B[K]),I>C&&(!A||J<=E)&&J!==W0&&_.push(J),J>E&&(H=!0),J=I}}else if(C=_1(C),E=_1(E),G=B[A?"minorTickInterval":"tickInterval"],G=Q0(G==="auto"?null:G,this._minorAutoInterval,(E-C)*(B.tickPixelInterval/(A?5:1))/((A?$/this.tickPositions.length:$)||1)),G=S(G,null,F(G)),_=D(this.getLinearTickPositions(G,C,E),L1),!A)this._minorAutoInterval=G/5;if(!A)this.tickInterval=G;return _};var W=c.Tooltip=function(){this.init.apply(this,arguments)};W.prototype={init:function(C,A){var B=A.borderWidth,$=A.style,_=b($.padding);this.chart=C;this.options=A;this.crosshairs=[];this.now={x:0,y:0};this.isHidden=!0;this.label=C.renderer.label("",0,0,A.shape||"callout",null,null,A.useHTML,null,"tooltip").attr({padding:_,fill:A.backgroundColor,"stroke-width":B,r:A.borderRadius,zIndex:8}).css($).css({padding:0}).add().attr({y:-9999});F0||this.label.shadow(A.shadow);this.shared=A.shared},destroy:function(){if(this.label)this.label=this.label.destroy();clearTimeout(this.hideTimer);clearTimeout(this.tooltipTimeout)},move:function(E,C,D,A){var B=this,$=B.now,_=B.options.animation!==!1&&!B.isHidden&&(i(E-$.x)>1||i(C-$.y)>1),F=B.followPointer||B.len>1;K0($,{x:_?(2*$.x+E)/3:E,y:_?($.y+C)/2:C,anchorX:F?W0:_?(2*$.anchorX+D)/3:D,anchorY:F?W0:_?($.anchorY+A)/2:A});B.label.attr($);if(_)clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){B&&B.move(E,C,D,A)},32)},hide:function(_){var $=this;clearTimeout(this.hideTimer);if(!this.isHidden)this.hideTimer=setTimeout(function(){$.label.fadeOut();$.isHidden=!0},Q0(_,this.options.hideDelay,500))},getAnchor:function(F,C){var E,A=this.chart,B=A.inverted,$=A.plotTop,_=A.plotLeft,I=0,J=0,G,H,F=z0(F);E=F[0].tooltipPos;this.followPointer&&C&&(C.chartX===W0&&(C=A.pointer.normalize(C)),E=[C.chartX-A.plotLeft,C.chartY-$]);E||(G0(F,function(A){G=A.series.yAxis;H=A.series.xAxis;I+=A.plotX+(!B&&H?H.left-_:0);J+=(A.plotLow?(A.plotLow+A.plotHigh)/2:A.plotY)+(!B&&G?G.top-$:0)}),I/=F.length,J/=F.length,E=[B?A.plotWidth-J:I,this.shared&&!B&&F.length>1&&C?C.chartY-$:B?A.plotHeight-I:J]);return D(E,I0)},getPosition:function(E,C,D){var A=this.chart,B=this.distance,$={},_=D.h||0,K,L=["y",A.chartHeight,C,D.plotY+A.plotTop,A.plotTop,A.plotTop+A.plotHeight],I=["x",A.chartWidth,E,D.plotX+A.plotLeft,A.plotLeft,A.plotLeft+A.plotWidth],J=Q0(D.ttBelow,A.inverted&&!D.negative||!A.inverted&&D.negative),H=function(E,C,D,A,I,K){var H=D<A-B,F=A+B+D<C,G=A-B-D;A+=B;if(J&&F)$[E]=A;else if(!J&&H)$[E]=G;else if(H)$[E]=T0(K-D,G-_<0?G:G-_);else if(F)$[E]=N0(I,A+_+D>C?A:A+_);else return!1},F=function(D,A,C,_){if(_<B||_>A-B)return!1;else $[D]=_<C/2?1:_>A-C/2?A-C-2:_-C/2},G=function(_){var $=L;L=I;I=$;K=_},M=function(){H.apply(0,L)!==!1?F.apply(0,I)===!1&&!K&&(G(!0),M()):K?$.x=$.y=0:(G(!0),M())};(A.inverted||this.len>1)&&G();M();return $},defaultFormatter:function(A){var $=this.points||z0(this),_;_=[A.tooltipFooterHeaderFormatter($[0])];_=_.concat(A.bodyFormatter($));_.push(A.tooltipFooterHeaderFormatter($[0],!0));return _.join("")},refresh:function(E,C){var D=this.chart,A=this.label,B=this.options,$,_,J,K={},H,I=[];H=B.formatter||this.defaultFormatter;var K=D.hoverPoints,G,F=this.shared;clearTimeout(this.hideTimer);this.followPointer=z0(E)[0].series.tooltipOptions.followPointer;J=this.getAnchor(E,C);$=J[0];_=J[1];F&&(!E.series||!E.series.noSharedTooltip)?(D.hoverPoints=E,K&&G0(K,function($){$.setState()}),G0(E,function($){$.setState("hover");I.push($.getLabelConfig())}),K={x:E[0].category,y:E[0].y},K.points=I,this.len=I.length,E=E[0]):K=E.getLabelConfig();H=H.call(K,this);K=E.series;this.distance=Q0(K.tooltipOptions.distance,16);H===!1?this.hide():(this.isHidden&&(X0(A),A.attr("opacity",1).show()),A.attr({text:H}),G=B.borderColor||E.color||K.color||"#606060",A.attr({stroke:G}),this.updatePosition({plotX:$,plotY:_,negative:E.negative,ttBelow:E.ttBelow,h:J[2]||0}),this.isHidden=!1);m(D,"tooltipRefresh",{text:H,x:$+D.plotLeft,y:_+D.plotTop,borderColor:G})},updatePosition:function(A){var $=this.chart,_=this.label,_=(this.options.positioner||this.getPosition).call(this,_.width,_.height,A);this.move(I0(_.x),I0(_.y||0),A.plotX+$.plotLeft,A.plotY+$.plotTop)},getXDateFormat:function(E,C,D){var A,C=C.dateTimeLabelFormats,B=D&&D.closestPointRange,$,_={millisecond:15,second:12,minute:9,hour:6,day:3},F,G="millisecond";if(B){F=C0("%m-%d %H:%M:%S.%L",E.x);for($ in a){if(B===a.week&&+C0("%w",E.x)===D.options.startOfWeek&&F.substr(6)==="00:00:00.000"){$="week";break}else if(a[$]>B){$=G;break}else if(_[$]&&F.substr(_[$])!=="01-01 00:00:00.000".substr(_[$]))break;$!=="week"&&(G=$)}$&&(A=C[$])}else A=C.day;return A||C.year},tooltipFooterHeaderFormatter:function(E,C){var D=C?"footer":"header",A=E.series,B=A.tooltipOptions,$=B.xDateFormat,_=A.xAxis,F=_&&_.options.type==="datetime"&&N1(E.key),D=B[D+"Format"];F&&!$&&($=this.getXDateFormat(E,B,_));F&&$&&(D=D.replace("{point.key}","{point.key:"+$+"}"));return t0(D,{point:E,series:A})},bodyFormatter:function($){return D($,function(_){var $=_.series.tooltipOptions;return($.pointFormatter||_.point.tooltipFormatter).call(_.point,$.pointFormat)})}};var E;T1=e.documentElement.ontouchstart!==W0;var J0=c.Pointer=function(_,$){this.init(_,$)};J0.prototype={init:function(D,B){var C=B.chart,_=C.events,A=F0?"":C.zoomType,C=D.inverted,$;this.options=B;this.chart=D;this.zoomX=$=/x/.test(A);this.zoomY=A=/y/.test(A);this.zoomHor=$&&!C||A&&C;this.zoomVert=A&&!C||$&&C;this.hasZoom=$||A;this.runChartClick=_&&!!_.click;this.pinchDown=[];this.lastValidTouch={};if(c.Tooltip&&B.tooltip.enabled)D.tooltip=new W(D,B.tooltip),this.followTouchMove=Q0(B.tooltip.followTouchMove,!0);this.setDOMEvents()},normalize:function(B,_){var A,$,B=B||window.event,B=D1(B);if(!B.target)B.target=B.srcElement;$=B.touches?B.touches.length?B.touches.item(0):B.changedTouches[0]:B;if(!_)this.chartPosition=_=F1(this.chart.container);$.pageX===W0?(A=N0(B.x,B.clientX-_.left),$=B.y):(A=$.pageX-_.left,$=$.pageY-_.top);return K0(B,{chartX:I0(A),chartY:I0($)})},getCoordinates:function(_){var $={xAxis:[],yAxis:[]};G0(this.chart.axes,function(A){$[A.isXAxis?"xAxis":"yAxis"].push({axis:A,value:A.toValue(_[A.horiz?"chartX":"chartY"])})});return $},runPointActions:function(F){var C=this.chart,D=C.series,A=C.tooltip,B=A?A.shared:!1,$=C.hoverPoint,_=C.hoverSeries,L,M=Number.MAX_VALUE,J,K,I=[],G,H;if(!B&&!_)for(L=0;L<D.length;L++)if(D[L].directTouch||!D[L].options.stickyTracking)D=[];_&&(B?_.noSharedTooltip:_.directTouch)&&$?G=$:(G0(D,function($){J=$.noSharedTooltip&&B;K=!B&&$.directTouch;$.visible&&!J&&!K&&Q0($.options.enableMouseTracking,!0)&&(H=$.searchPoint(F,!J&&$.kdDimensions===1))&&I.push(H)}),G0(I,function($){if($&&typeof $.dist==="number"&&$.dist<M)M=$.dist,G=$}));if(G&&(G!==this.prevKDPoint||A&&A.isHidden)){if(B&&!G.series.noSharedTooltip){for(L=I.length;L--;)(I[L].clientX!==G.clientX||I[L].series.noSharedTooltip)&&I.splice(L,1);I.length&&A&&A.refresh(I,F);G0(I,function(A){A.onMouseOver(F,A!==(_&&_.directTouch&&$||G))})}else if(A&&A.refresh(G,F),!_||!_.directTouch)G.onMouseOver(F);this.prevKDPoint=G}else D=_&&_.tooltipOptions.followPointer,A&&D&&!A.isHidden&&(D=A.getAnchor([{}],F),A.updatePosition({plotX:D[0],plotY:D[1]}));if(A&&!this._onDocumentMouseMove)this._onDocumentMouseMove=function($){if(B0[E])B0[E].pointer.onDocumentMouseMove($)},l(e,"mousemove",this._onDocumentMouseMove);G0(C.axes,function(_){_.drawCrosshair(F,Q0(G,$))})},reset:function(E,C){var D=this.chart,A=D.hoverSeries,B=D.hoverPoint,$=D.hoverPoints,_=D.tooltip,F=_&&_.shared?$:B;(E=E&&_&&F)&&z0(F)[0].plotX===W0&&(E=!1);if(E)_.refresh(F),B&&(B.setState(B.state,!0),G0(D.axes,function($){Q0($.options.crosshair&&$.options.crosshair.snap,!0)?$.drawCrosshair(null,B):$.hideCrosshair()}));else{if(B)B.onMouseOut();$&&G0($,function($){$.setState()});if(A)A.onMouseOut();_&&_.hide(C);if(this._onDocumentMouseMove)A0(e,"mousemove",this._onDocumentMouseMove),this._onDocumentMouseMove=null;G0(D.axes,function($){$.hideCrosshair()});this.hoverX=D.hoverPoints=D.hoverPoint=null}},scaleGroups:function(B,_){var A=this.chart,$;G0(A.series,function(C){$=B||C.getPlotBox();C.xAxis&&C.xAxis.zoomEnabled&&(C.group.attr($),C.markerGroup&&(C.markerGroup.attr($),C.markerGroup.clip(_?A.clipRect:null)),C.dataLabelsGroup&&C.dataLabelsGroup.attr($))});A.clipRect.attr(_||A.clipBox)},dragStart:function(_){var $=this.chart;$.mouseIsDown=_.type;$.cancelClick=!1;$.mouseDownX=this.mouseDownX=_.chartX;$.mouseDownY=this.mouseDownY=_.chartY},drag:function(E){var C=this.chart,D=C.options.chart,A=E.chartX,B=E.chartY,$=this.zoomHor,_=this.zoomVert,K=C.plotLeft,L=C.plotTop,I=C.plotWidth,J=C.plotHeight,H,F=this.selectionMarker,G=this.mouseDownX,M=this.mouseDownY,N=D.panKey&&E[D.panKey+"Key"];if(!F||!F.touch)if(A<K?A=K:A>K+I&&(A=K+I),B<L?B=L:B>L+J&&(B=L+J),this.hasDragged=Math.sqrt(Math.pow(G-A,2)+Math.pow(M-B,2)),this.hasDragged>10){H=C.isInsidePlot(G-K,M-L);if(C.hasCartesianSeries&&(this.zoomX||this.zoomY)&&H&&!N&&!F)this.selectionMarker=F=C.renderer.rect(K,L,$?1:I,_?1:J,0).attr({fill:D.selectionMarkerFill||"rgba(69,114,167,0.25)",zIndex:7}).add();F&&$&&(A-=G,F.attr({width:i(A),x:(A>0?0:A)+G}));F&&_&&(A=B-M,F.attr({height:i(A),y:(A>0?0:A)+M}));H&&!F&&D.panning&&C.pan(E,D.panning)}},drop:function(E){var C=this,D=this.chart,A=this.hasPinched;if(this.selectionMarker){var B={xAxis:[],yAxis:[],originalEvent:E.originalEvent||E},$=this.selectionMarker,_=$.attr?$.attr("x"):$.x,H=$.attr?$.attr("y"):$.y,I=$.attr?$.attr("width"):$.width,F=$.attr?$.attr("height"):$.height,G;if(this.hasDragged||A)G0(D.axes,function(J){if(J.zoomEnabled&&P0(J.min)&&(A||C[{xAxis:"zoomX",yAxis:"zoomY"}[J.coll]])){var $=J.horiz,K=E.type==="touchend"?J.minPixelPadding:0,D=J.toValue(($?_:H)+K),$=J.toValue(($?_+I:H+F)-K);B[J.coll].push({axis:J,min:T0(D,$),max:N0(D,$)});G=!0}}),G&&m(D,"selection",B,function($){D.zoom(K0($,A?{animation:!1}:null))});this.selectionMarker=this.selectionMarker.destroy();A&&this.scaleGroups()}if(D)g(D.container,{cursor:D._cursor}),D.cancelClick=this.hasDragged>10,D.mouseIsDown=this.hasDragged=this.hasPinched=!1,this.pinchDown=[]},onContainerMouseDown:function($){$=this.normalize($);$.preventDefault&&$.preventDefault();this.dragStart($)},onDocumentMouseUp:function($){B0[E]&&B0[E].pointer.drop($)},onDocumentMouseMove:function(A){var $=this.chart,_=this.chartPosition,A=this.normalize(A,_);_&&!this.inClass(A.target,"highcharts-tracker")&&!$.isInsidePlot(A.chartX-$.plotLeft,A.chartY-$.plotTop)&&this.reset()},onContainerMouseLeave:function(){var $=B0[E];if($)$.pointer.reset(),$.pointer.chartPosition=null},onContainerMouseMove:function(_){var $=this.chart;E=$.index;_=this.normalize(_);_.returnValue=!1;$.mouseIsDown==="mousedown"&&this.drag(_);(this.inClass(_.target,"highcharts-tracker")||$.isInsidePlot(_.chartX-$.plotLeft,_.chartY-$.plotTop))&&!$.openMenu&&this.runPointActions(_)},inClass:function(A,$){for(var _;A;){if(_=n(A,"class"))if(_.indexOf($)!==-1)return!0;else if(_.indexOf("highcharts-container")!==-1)return!1;A=A.parentNode}},onTrackerMouseOut:function(_){var $=this.chart.hoverSeries,_=_.relatedTarget||_.toElement;if($&&!$.options.stickyTracking&&!this.inClass(_,"highcharts-tooltip")&&!this.inClass(_,"highcharts-series-"+$.index))$.onMouseOut()},onContainerClick:function(C){var A=this.chart,B=A.hoverPoint,$=A.plotLeft,_=A.plotTop,C=this.normalize(C);C.originalEvent=C;A.cancelClick||(B&&this.inClass(C.target,"highcharts-tracker")?(m(B.series,"click",K0(C,{point:B})),A.hoverPoint&&B.firePointEvent("click",C)):(K0(C,this.getCoordinates(C)),A.isInsidePlot(C.chartX-$,C.chartY-_)&&m(A,"click",C)))},setDOMEvents:function(){var _=this,$=_.chart.container;$.onmousedown=function($){_.onContainerMouseDown($)};$.onmousemove=function($){_.onContainerMouseMove($)};$.onclick=function($){_.onContainerClick($)};l($,"mouseleave",_.onContainerMouseLeave);i0===1&&l(e,"mouseup",_.onDocumentMouseUp);if(T1)$.ontouchstart=function($){_.onContainerTouchStart($)},$.ontouchmove=function($){_.onContainerTouchMove($)},i0===1&&l(e,"touchend",_.onDocumentTouchEnd)},destroy:function(){var $;A0(this.chart.container,"mouseleave",this.onContainerMouseLeave);i0||(A0(e,"mouseup",this.onDocumentMouseUp),A0(e,"touchend",this.onDocumentTouchEnd));clearInterval(this.tooltipTimeout);for($ in this)this[$]=null}};K0(c.Pointer.prototype,{pinchTranslate:function(D,B,C,_,A,$){(this.zoomHor||this.pinchHor)&&this.pinchTranslateDirection(!0,D,B,C,_,A,$);(this.zoomVert||this.pinchVert)&&this.pinchTranslateDirection(!1,D,B,C,_,A,$)},pinchTranslateDirection:function(E,C,D,A,B,$,_,L){var M=this.chart,J=E?"x":"y",K=E?"X":"Y",I="chart"+K,F=E?"width":"height",H=M["plot"+(E?"Left":"Top")],P,S,U=L||1,G=M.inverted,O=M.bounds[E?"h":"v"],R=C.length===1,T=C[0][I],Q=D[0][I],W=!R&&C[1][I],N=!R&&D[1][I],V,D=function(){!R&&i(T-W)>20&&(U=L||i(Q-N)/i(T-W));S=(H-Q)/U+T;P=M["plot"+(E?"Width":"Height")]/U};D();C=S;C<O.min?(C=O.min,V=!0):C+P>O.max&&(C=O.max-P,V=!0);V?(Q-=0.8*(Q-_[J][0]),R||(N-=0.8*(N-_[J][1])),D()):_[J]=[Q,N];G||($[J]=S-H,$[F]=P);$=G?1/U:U;B[F]=P;B[J]=C;A[G?E?"scaleY":"scaleX":"scale"+K]=U;A["translate"+K]=$*H+(Q-$*T)},pinch:function(F){var C=this,E=C.chart,A=C.pinchDown,B=F.touches,$=B.length,_=C.lastValidTouch,J=C.hasZoom,K=C.selectionMarker,H={},I=$===1&&(C.inClass(F.target,"highcharts-tracker")&&E.runTrackerClick||C.runChartClick),G={};if($>1)C.initiated=!0;J&&C.initiated&&!I&&F.preventDefault();D(B,function($){return C.normalize($)});if(F.type==="touchstart")G0(B,function(_,$){A[$]={chartX:_.chartX,chartY:_.chartY}}),_.x=[A[0].chartX,A[1]&&A[1].chartX],_.y=[A[0].chartY,A[1]&&A[1].chartY],G0(E.axes,function(D){if(D.zoomEnabled){var C=E.bounds[D.horiz?"h":"v"],A=D.minPixelPadding,B=D.toPixels(Q0(D.options.min,D.dataMin)),$=D.toPixels(Q0(D.options.max,D.dataMax)),_=T0(B,$),B=N0(B,$);C.min=T0(D.pos,_-A);C.max=N0(D.pos+D.len,B+A)}}),C.res=!0;else if(A.length){if(!K)C.selectionMarker=K=K0({destroy:S0,touch:!0},E.plotBox);C.pinchTranslate(A,B,H,K,G,_);C.hasPinched=J;C.scaleGroups(H,G);if(!J&&C.followTouchMove&&$===1)this.runPointActions(C.normalize(F));else if(C.res)C.res=!1,this.reset(!1,0)}},touch:function(A,$){var _=this.chart;E=_.index;A.touches.length===1?(A=this.normalize(A),_.isInsidePlot(A.chartX-_.plotLeft,A.chartY-_.plotTop)&&!_.openMenu?($&&this.runPointActions(A),this.pinch(A)):$&&this.reset()):A.touches.length===2&&this.pinch(A)},onContainerTouchStart:function($){this.touch($,!0)},onContainerTouchMove:function($){this.touch($)},onDocumentTouchEnd:function($){B0[E]&&B0[E].pointer.drop($)}});if(f.PointerEvent||f.MSPointerEvent){var U={},B1=!!f.PointerEvent,p=function(){var _,$=[];$.item=function($){return this[$]};for(_ in U)U.hasOwnProperty(_)&&$.push({pageX:U[_].pageX,pageY:U[_].pageY,target:U[_].target});return $},R1=function(B,_,A,$){B=B.originalEvent||B;if((B.pointerType==="touch"||B.pointerType===B.MSPOINTER_TYPE_TOUCH)&&B0[E])$(B),$=B0[E].pointer,$[_]({type:A,target:B.currentTarget,preventDefault:S0,touches:p()})};K0(J0.prototype,{onContainerPointerDown:function($){R1($,"onContainerTouchStart","touchstart",function($){U[$.pointerId]={pageX:$.pageX,pageY:$.pageY,target:$.currentTarget}})},onContainerPointerMove:function($){R1($,"onContainerTouchMove","touchmove",function($){U[$.pointerId]={pageX:$.pageX,pageY:$.pageY};if(!U[$.pointerId].target)U[$.pointerId].target=$.currentTarget})},onDocumentPointerUp:function($){R1($,"onDocumentTouchEnd","touchend",function($){delete U[$.pointerId]})},batchMSEvents:function($){$(this.chart.container,B1?"pointerdown":"MSPointerDown",this.onContainerPointerDown);$(this.chart.container,B1?"pointermove":"MSPointerMove",this.onContainerPointerMove);$(e,B1?"pointerup":"MSPointerUp",this.onDocumentPointerUp)}});P(J0.prototype,"init",function(A,$,_){A.call(this,$,_);this.hasZoom&&g($.container,{"-ms-touch-action":v,"touch-action":v})});P(J0.prototype,"setDOMEvents",function($){$.apply(this);(this.hasZoom||this.followTouchMove)&&this.batchMSEvents(l)});P(J0.prototype,"destroy",function($){this.batchMSEvents(A0);$.call(this)})}var z=c.Legend=function(_,$){this.init(_,$)};z.prototype={init:function(C,A){var B=this,$=A.itemStyle,_=A.itemMarginTop||0;this.options=A;if(A.enabled)B.itemStyle=$,B.itemHiddenStyle=X($,A.itemHiddenStyle),B.itemMarginTop=_,B.padding=$=Q0(A.padding,8),B.initialItemX=$,B.initialItemY=$-5,B.maxItemWidth=0,B.chart=C,B.itemHeight=0,B.symbolWidth=Q0(A.symbolWidth,16),B.pages=[],B.render(),l(B.chart,"endResize",function(){B.positionCheckboxes()})},colorizeItem:function(E,C){var D=this.options,A=E.legendItem,B=E.legendLine,$=E.legendSymbol,_=this.itemHiddenStyle.color,D=C?D.itemStyle.color:_,G=C?E.legendColor||E.color||"#CCC":_,_=E.options&&E.options.marker,H={fill:G},F;A&&A.css({fill:D,color:D});B&&B.attr({stroke:G});if($){if(_&&$.isMarker)for(F in H.stroke=G,_=E.convertAttribs(_),_)A=_[F],A!==W0&&(H[F]=A);$.attr(H)}},positionItem:function(D){var B=this.options,C=B.symbolPadding,B=!B.rtl,_=D._legendItemPos,A=_[0],_=_[1],$=D.checkbox;(D=D.legendGroup)&&D.element&&D.translate(B?A:this.legendWidth-A-2*C-4,_);if($)$.x=A,$.y=_},destroyItem:function(_){var $=_.checkbox;G0(["legendItem","legendLine","legendSymbol","legendGroup"],function($){_[$]&&(_[$]=_[$].destroy())});$&&a0(_.checkbox)},destroy:function(){var _=this.group,$=this.box;if($)this.box=$.destroy();if(_)this.group=_.destroy()},positionCheckboxes:function(B){var _=this.group.alignAttr,A,$=this.clipHeight||this.legendHeight;if(_)A=_.translateY,G0(this.allItems,function(E){var C=E.checkbox,D;C&&(D=A+C.y+(B||0)+3,g(C,{left:_.translateX+E.checkboxOffset+C.x-20+"px",top:D+"px",display:D>A-6&&D<A+$-6?"":v}))})},renderTitle:function(){var A=this.padding,$=this.options.title,_=0;if($.text){if(!this.title)this.title=this.chart.renderer.label($.text,A-3,A-4,null,null,null,null,null,"legend-title").attr({zIndex:1}).css($.style).add(this.group);A=this.title.getBBox();_=A.height;this.offsetWidth=A.width;this.contentGroup.attr({translateY:_})}this.titleHeight=_},setText:function(_){var $=this.options;_.legendItem.attr({text:$.labelFormat?t0($.labelFormat,_):$.labelFormatter.call(_)})},renderItem:function(F){var C=this.chart,E=C.renderer,A=this.options,B=A.layout==="horizontal",$=this.symbolWidth,_=A.symbolPadding,M=this.itemStyle,N=this.itemHiddenStyle,K=this.padding,L=B?Q0(A.itemDistance,20):0,J=!A.rtl,G=A.width,I=A.itemMarginBottom||0,P=this.itemMarginTop,Q=this.initialItemX,H=F.legendItem,D=F.series&&F.series.drawLegendSymbol?F.series:F,O=D.options,O=this.createCheckboxForItem&&O&&O.showCheckbox,R=A.useHTML;if(!H){F.legendGroup=E.g("legend-item").attr({zIndex:1}).add(this.scrollGroup);F.legendItem=H=E.text("",J?$+_:-_,this.baseline||0,R).css(X(F.visible?M:N)).attr({align:J?"left":"right",zIndex:2}).add(F.legendGroup);if(!this.baseline)this.fontMetrics=E.fontMetrics(M.fontSize,H),this.baseline=this.fontMetrics.f+3+P,H.attr("y",this.baseline);D.drawLegendSymbol(this,F);this.setItemEvents&&this.setItemEvents(F,H,R,M,N);this.colorizeItem(F,F.visible);O&&this.createCheckboxForItem(F)}this.setText(F);E=H.getBBox();$=F.checkboxOffset=A.itemWidth||F.legendItemWidth||$+_+E.width+L+(O?20:0);this.itemHeight=_=I0(F.legendItemHeight||E.height);if(B&&this.itemX-Q+$>(G||C.chartWidth-2*K-Q-A.x))this.itemX=Q,this.itemY+=P+this.lastLineHeight+I,this.lastLineHeight=0;this.maxItemWidth=N0(this.maxItemWidth,$);this.lastItemY=P+this.itemY+I;this.lastLineHeight=N0(_,this.lastLineHeight);F._legendItemPos=[this.itemX,this.itemY];B?this.itemX+=$:(this.itemY+=P+_+I,this.lastLineHeight=_);this.offsetWidth=G||N0((B?this.itemX-Q-L:$)+K,this.offsetWidth)},getAllItems:function(){var $=[];G0(this.chart.series,function(_){var A=_.options;if(Q0(A.showInLegend,!P0(A.linkedTo)?W0:!1,!0))$=$.concat(_.legendItems||(A.legendType==="point"?_.data:_))});return $},adjustMargins:function(C,A){var B=this.chart,$=this.options,_=$.align.charAt(0)+$.verticalAlign.charAt(0)+$.layout.charAt(0);this.display&&!$.floating&&G0([/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/],function(D,E){D.test(_)&&!P0(C[E])&&(B[$1[E]]=N0(B[$1[E]],B.legend[(E+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][E]*$[E%2?"x":"y"]+Q0($.margin,12)+A[E]))})},render:function(){var E=this,C=E.chart,D=C.renderer,A=E.group,B,$,_,J,K=E.box,H=E.options,I=E.padding,G=H.borderWidth,F=H.backgroundColor;E.itemX=E.initialItemX;E.itemY=E.initialItemY;E.offsetWidth=0;E.lastItemY=0;if(!A)E.group=A=D.g("legend").attr({zIndex:7}).add(),E.contentGroup=D.g().attr({zIndex:1}).add(A),E.scrollGroup=D.g().add(E.contentGroup);E.renderTitle();B=E.getAllItems();M1(B,function(_,$){return(_.options&&_.options.legendIndex||0)-($.options&&$.options.legendIndex||0)});H.reversed&&B.reverse();E.allItems=B;E.display=$=!!B.length;E.lastLineHeight=0;G0(B,function($){E.renderItem($)});_=(H.width||E.offsetWidth)+I;J=E.lastItemY+E.lastLineHeight+E.titleHeight;J=E.handleOverflow(J);J+=I;if(G||F){if(K){if(_>0&&J>0)K[K.isNew?"attr":"animate"](K.crisp({width:_,height:J})),K.isNew=!1}else E.box=K=D.rect(0,0,_,J,H.borderRadius,G||0).attr({stroke:H.borderColor,"stroke-width":G||0,fill:F||v}).add(A).shadow(H.shadow),K.isNew=!0;K[$?"show":"hide"]()}E.legendWidth=_;E.legendHeight=J;G0(B,function($){E.positionItem($)});$&&A.align(K0({width:_,height:J},H),!0,"spacingBox");C.isResizing||this.positionCheckboxes()},handleOverflow:function(F){var C=this,E=this.chart,A=E.renderer,B=this.options,$=B.y,$=E.spacingBox.height+(B.verticalAlign==="top"?-$:$)-this.padding,_=B.maxHeight,L,M=this.clipRect,J=B.navigation,K=Q0(J.animation,!0),I=J.arrowSize||12,G=this.nav,H=this.pages,N=this.padding,O,P=this.allItems,D=function($){M.attr({height:$});if(C.contentGroup.div)C.contentGroup.div.style.clip="rect("+N+"px,9999px,"+(N+$)+"px,0)"};B.layout==="horizontal"&&($/=2);_&&($=T0($,_));H.length=0;if(F>$){this.clipHeight=L=N0($-20-this.titleHeight-N,0);this.currentPage=Q0(this.currentPage,1);this.fullHeight=F;G0(P,function(C,A){var B=C._legendItemPos[1],$=I0(C.legendItem.getBBox().height),_=H.length;if(!_||B-H[_-1]>L&&(O||B)!==H[_-1])H.push(O||B),_++;A===P.length-1&&B+$-H[_-1]>L&&H.push(B);B!==O&&(O=B)});if(!M)M=C.clipRect=A.clipRect(0,N,9999,0),C.contentGroup.clip(M);D(L);if(!G)this.nav=G=A.g().attr({zIndex:1}).add(this.group),this.up=A.symbol("triangle",0,0,I,I).on("click",function(){C.scroll(-1,K)}).add(G),this.pager=A.text("",15,10).css(J.style).add(G),this.down=A.symbol("triangle-down",0,0,I,I).on("click",function(){C.scroll(1,K)}).add(G);C.scroll(0);F=$}else if(G)D(E.chartHeight),G.hide(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0;return F},scroll:function(E,C){var D=this.pages,A=D.length,B=this.currentPage+E,$=this.clipHeight,_=this.options.navigation,G=_.activeColor,_=_.inactiveColor,H=this.pager,F=this.padding;B>A&&(B=A);if(B>0)C!==W0&&V1(C,this.chart),this.nav.attr({translateX:F,translateY:$+this.padding+7+this.titleHeight,visibility:"visible"}),this.up.attr({fill:B===1?_:G}).css({cursor:B===1?"default":"pointer"}),H.attr({text:B+"/"+A}),this.down.attr({x:18+this.pager.getBBox().width,fill:B===A?_:G}).css({cursor:B===A?"default":"pointer"}),D=-D[B-1]+this.initialItemY,this.scrollGroup.animate({translateY:D}),this.currentPage=B,this.positionCheckboxes(D)}};V=c.LegendSymbolMixin={drawRectangle:function(A,$){var _=A.options.symbolHeight||A.fontMetrics.f;$.legendSymbol=this.chart.renderer.rect(0,A.baseline-_+1,A.symbolWidth,_,A.options.symbolRadius||0).attr({zIndex:3}).add($.legendGroup)},drawLineMarker:function(E){var C=this.options,D=C.marker,A;A=E.symbolWidth;var B=this.chart.renderer,$=this.legendGroup,E=E.baseline-I0(E.fontMetrics.b*0.3),_;if(C.lineWidth){_={"stroke-width":C.lineWidth};if(C.dashStyle)_.dashstyle=C.dashStyle;this.legendLine=B.path(["M",0,E,"L",A,E]).attr(_).add($)}if(D&&D.enabled!==!1)C=D.radius,this.legendSymbol=A=B.symbol(this.symbol,A/2-C,E-C,2*C,2*C).add($),A.isMarker=!0}};(/Trident\/7\.0/.test(w0)||Q1)&&P(z.prototype,"positionItem",function(B,_){var A=this,$=function(){_._legendItemPos&&B.call(A,_)};$();setTimeout($)});Z=c.Chart=function(){this.init.apply(this,arguments)};Z.prototype={callbacks:[],init:function(E,C){var D,A=E.series;E.series=null;D=X(w,E);D.series=E.series=A;this.userOptions=E;A=D.chart;this.margin=this.splashArray("margin",A);this.spacing=this.splashArray("spacing",A);var B=A.events;this.bounds={h:{},v:{}};this.callback=C;this.isResizing=0;this.options=D;this.axes=[];this.series=[];this.hasCartesianSeries=A.showAxes;var $=this,_;$.index=B0.length;B0.push($);i0++;A.reflow!==!1&&l($,"load",function(){$.initReflow()});if(B)for(_ in B)l($,_,B[_]);$.xAxis=[];$.yAxis=[];$.animation=F0?!1:Q0(A.animation,!0);$.pointCount=$.colorCounter=$.symbolCounter=0;$.firstRender()},initSeries:function(_){var $=this.options.chart;($=h[_.type||$.type||$.defaultSeriesType])||r0(17,!0);$=new $;$.init(this,_);return $},isInsidePlot:function(B,_,A){var $=A?_:B,B=A?B:_;return $>=0&&$<=this.plotWidth&&B>=0&&B<=this.plotHeight},redraw:function(E){var C=this.axes,D=this.series,A=this.pointer,B=this.legend,$=this.isDirtyLegend,_,K,L=this.hasCartesianSeries,I=this.isDirtyBox,J=D.length,H=J,F=this.renderer,G=F.isHidden(),M=[];V1(E,this);G&&this.cloneRenderTo();for(this.layOutTitles();H--;)if(E=D[H],E.options.stacking&&(_=!0,E.isDirty)){K=!0;break}if(K)for(H=J;H--;)if(E=D[H],E.options.stacking)E.isDirty=!0;G0(D,function(_){_.isDirty&&_.options.legendType==="point"&&(_.updateTotals&&_.updateTotals(),$=!0)});if($&&B.options.enabled)B.render(),this.isDirtyLegend=!1;_&&this.getStacks();if(L&&!this.isResizing)this.maxTicks=null,G0(C,function($){$.setScale()});this.getMargins();L&&(G0(C,function($){$.isDirty&&(I=!0)}),G0(C,function(A){var $=A.min+","+A.max;if(A.extKey!==$)A.extKey=$,M.push(function(){m(A,"afterSetExtremes",K0(A.eventArgs,A.getExtremes()));delete A.eventArgs});(I||_)&&A.redraw()}));I&&this.drawChartBox();G0(D,function($){$.isDirty&&$.visible&&(!$.isCartesian||$.xAxis)&&$.redraw()});A&&A.reset(!0);F.draw();m(this,"redraw");G&&this.cloneRenderTo(!0);G0(M,function($){$.call()})},get:function(C){var A=this.axes,B=this.series,$,_;for($=0;$<A.length;$++)if(A[$].options.id===C)return A[$];for($=0;$<B.length;$++)if(B[$].options.id===C)return B[$];for($=0;$<B.length;$++){_=B[$].points||[];for(A=0;A<_.length;A++)if(_[A].id===C)return _[A]}return null},getAxes:function(){var A=this,$=this.options,_=$.xAxis=z0($.xAxis||{}),$=$.yAxis=z0($.yAxis||{});G0(_,function(_,$){_.index=$;_.isX=!0});G0($,function(_,$){_.index=$});_=_.concat($);G0(_,function($){new O(A,$)})},getSelectedPoints:function(){var $=[];G0(this.series,function(_){$=$.concat(e0(_.points||[],function($){return $.selected}))});return $},getSelectedSeries:function(){return e0(this.series,function($){return $.selected})},setTitle:function(E,C,D){var _,A=this,B=A.options,$;$=B.title=X(B.title,E);_=B.subtitle=X(B.subtitle,C),B=_;G0([["title",E,$],["subtitle",C,B]],function(C){var _=C[0],B=A[_],$=C[1],C=C[2];B&&$&&(A[_]=B=B.destroy());C&&C.text&&!B&&(A[_]=A.renderer.text(C.text,0,0,C.useHTML).attr({align:C.align,"class":"highcharts-"+_,zIndex:C.zIndex||4}).css(C.style).add())});A.layOutTitles(D)},layOutTitles:function(E){var C=0,D=this.title,A=this.subtitle,B=this.options,$=B.title,B=B.subtitle,_=this.renderer,F=this.spacingBox.width-44;if(D&&(D.css({width:($.width||F)+"px"}).align(K0({y:_.fontMetrics($.style.fontSize,D).b-3},$),!1,"spacingBox"),!$.floating&&!$.verticalAlign))C=D.getBBox().height;A&&(A.css({width:(B.width||F)+"px"}).align(K0({y:C+($.margin-13)+_.fontMetrics(B.style.fontSize,D).b},B),!1,"spacingBox"),!B.floating&&!B.verticalAlign&&(C=d0(C+A.getBBox().height)));D=this.titleOffset!==C;this.titleOffset=C;if(!this.isDirtyBox&&D)this.isDirtyBox=D,this.hasRendered&&Q0(E,!0)&&this.isDirtyBox&&this.redraw()},getChartSize:function(){var A=this.options.chart,$=A.width,A=A.height,_=this.renderToClone||this.renderTo;if(!P0($))this.containerWidth=O1(_,"width");if(!P0(A))this.containerHeight=O1(_,"height");this.chartWidth=N0(0,$||this.containerWidth||600);this.chartHeight=N0(0,Q0(A,this.containerHeight>19?this.containerHeight:400))},cloneRenderTo:function(A){var $=this.renderToClone,_=this.container;A?$&&(this.renderTo.appendChild(_),a0($),delete this.renderToClone):(_&&_.parentNode===this.renderTo&&this.renderTo.removeChild(_),this.renderToClone=$=this.renderTo.cloneNode(0),g($,{position:"absolute",top:"-9999px",display:"block"}),$.style.setProperty&&$.style.setProperty("display","block","important"),e.body.appendChild($),_&&$.appendChild(_))},getContainer:function(){var D,B=this.options,C=B.chart,_,A,$;this.renderTo=D=C.renderTo;$="highcharts-"+G++;if(v0(D))this.renderTo=D=e.getElementById(D);D||r0(13,!0);_=b(n(D,"data-highcharts-chart"));!isNaN(_)&&B0[_]&&B0[_].hasRendered&&B0[_].destroy();n(D,"data-highcharts-chart",this.index);D.innerHTML="";!C.skipClone&&!D.offsetWidth&&this.cloneRenderTo();this.getChartSize();_=this.chartWidth;A=this.chartHeight;this.container=D=K(y0,{className:"highcharts-container"+(C.className?" "+C.className:""),id:$},K0({position:"relative",overflow:"hidden",width:_+"px",height:A+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)"},C.style),this.renderToClone||D);this._cursor=D.style.cursor;this.renderer=new(c[C.renderer]||W1)(D,_,A,C.style,C.forExport,B.exporting&&B.exporting.allowHTML);F0&&this.renderer.create(this,D,_,A);this.renderer.chartIndex=this.index},getMargins:function(B){var _=this.spacing,A=this.margin,$=this.titleOffset;this.resetMargins();if($&&!P0(A[0]))this.plotTop=N0(this.plotTop,$+this.options.title.margin+_[0]);this.legend.adjustMargins(A,_);this.extraBottomMargin&&(this.marginBottom+=this.extraBottomMargin);this.extraTopMargin&&(this.plotTop+=this.extraTopMargin);B||this.getAxisMargins()},getAxisMargins:function(){var A=this,$=A.axisOffset=[0,0,0,0],_=A.margin;A.hasCartesianSeries&&G0(A.axes,function($){$.visible&&$.getOffset()});G0($1,function(B,C){P0(_[C])||(A[B]+=$[C])});A.setChartSize()},reflow:function(D){var B=this,C=B.options.chart,_=B.renderTo,A=C.width||O1(_,"width"),$=C.height||O1(_,"height"),C=D?D.target:f,_=function(){if(B.container)B.setSize(A,$,!1),B.hasUserSize=null};if(!B.hasUserSize&&!B.isPrinting&&A&&$&&(C===f||C===e)){if(A!==B.containerWidth||$!==B.containerHeight)clearTimeout(B.reflowTimeout),D?B.reflowTimeout=setTimeout(_,100):_();B.containerWidth=A;B.containerHeight=$}},initReflow:function(){var _=this,$=function($){_.reflow($)};l(f,"resize",$);l(_,"destroy",function(){A0(f,"resize",$)})},setSize:function(E,C,D){var A=this,B,$,_,F=A.renderer;A.isResizing+=1;_=function(){A&&m(A,"endResize",null,function(){A.isResizing-=1})};V1(D,A);A.oldChartHeight=A.chartHeight;A.oldChartWidth=A.chartWidth;if(P0(E))A.chartWidth=B=N0(0,I0(E)),A.hasUserSize=!!B;if(P0(C))A.chartHeight=$=N0(0,I0(C));E=F.globalAnimation;(E?u0:g)(A.container,{width:B+"px",height:$+"px"},E);A.setChartSize(!0);F.setSize(B,$,D);A.maxTicks=null;G0(A.axes,function($){$.isDirty=!0;$.setScale()});G0(A.series,function($){$.isDirty=!0});A.isDirtyLegend=!0;A.isDirtyBox=!0;A.layOutTitles();A.getMargins();A.redraw(D);A.oldChartHeight=null;m(A,"resize");E=F.globalAnimation;E===!1?_():setTimeout(_,E&&E.duration||500)},setChartSize:function(E){var C=this.inverted,D=this.renderer,A=this.chartWidth,B=this.chartHeight,$=this.options.chart,_=this.spacing,I=this.clipOffset,J,G,H,F;this.plotLeft=J=I0(this.plotLeft);this.plotTop=G=I0(this.plotTop);this.plotWidth=H=N0(0,I0(A-J-this.marginRight));this.plotHeight=F=N0(0,I0(B-G-this.marginBottom));this.plotSizeX=C?F:H;this.plotSizeY=C?H:F;this.plotBorderWidth=$.plotBorderWidth||0;this.spacingBox=D.spacingBox={x:_[3],y:_[0],width:A-_[3]-_[1],height:B-_[0]-_[2]};this.plotBox=D.plotBox={x:J,y:G,width:H,height:F};A=2*r(this.plotBorderWidth/2);C=d0(N0(A,I[3])/2);D=d0(N0(A,I[0])/2);this.clipBox={x:C,y:D,width:r(this.plotSizeX-N0(A,I[1])/2-C),height:N0(0,r(this.plotSizeY-N0(A,I[2])/2-D))};E||G0(this.axes,function($){$.setAxisSize();$.setAxisTranslation()})},resetMargins:function(){var $=this;G0($1,function(_,A){$[_]=Q0($.margin[A],$.spacing[A])});$.axisOffset=[0,0,0,0];$.clipOffset=[0,0,0,0]},drawChartBox:function(){var E=this.options.chart,C=this.renderer,D=this.chartWidth,A=this.chartHeight,B=this.chartBackground,$=this.plotBackground,_=this.plotBorder,L=this.plotBGImage,M=E.borderWidth||0,J=E.backgroundColor,K=E.plotBackgroundColor,I=E.plotBackgroundImage,F=E.plotBorderWidth||0,H,R=this.plotLeft,G=this.plotTop,Q=this.plotWidth,P=this.plotHeight,N=this.plotBox,O=this.clipRect,S=this.clipBox;H=M+(E.shadow?8:0);if(M||J)if(B)B.animate(B.crisp({width:D-H,height:A-H}));else{B={fill:J||v};if(M)B.stroke=E.borderColor,B["stroke-width"]=M;this.chartBackground=C.rect(H/2,H/2,D-H,A-H,E.borderRadius,M).attr(B).addClass("highcharts-background").add().shadow(E.shadow)}if(K)$?$.animate(N):this.plotBackground=C.rect(R,G,Q,P,0).attr({fill:K}).add().shadow(E.plotShadow);if(I)L?L.animate(N):this.plotBGImage=C.image(I,R,G,Q,P).add();O?O.animate({width:S.width,height:S.height}):this.clipRect=C.clipRect(S);if(F)_?_.animate(_.crisp({x:R,y:G,width:Q,height:P,strokeWidth:-F})):this.plotBorder=C.rect(R,G,Q,P,0,-F).attr({stroke:E.plotBorderColor,"stroke-width":F,fill:v,zIndex:1}).add();this.isDirtyBox=!1},propFromSeries:function(){var D=this,B=D.options.chart,C,_=D.options.series,A,$;G0(["inverted","angular","polar"],function(E){C=h[B.type||B.defaultSeriesType];$=D[E]||B[E]||C&&C.prototype[E];for(A=_&&_.length;!$&&A--;)(C=h[_[A].type])&&C.prototype[E]&&($=!0);D[E]=$})},linkSeries:function(){var _=this,$=_.series;G0($,function($){$.linkedSeries.length=0});G0($,function(A){var $=A.options.linkedTo;if(v0($)&&($=$===":previous"?_.series[A.index-1]:_.get($)))$.linkedSeries.push(A),A.linkedParent=$,A.visible=Q0(A.options.visible,$.options.visible,A.visible)})},renderSeries:function(){G0(this.series,function($){$.translate();$.render()})},renderLabels:function(){var _=this,$=_.options.labels;$.items&&G0($.items,function(D){var B=K0($.style,D.style),C=b(B.left)+_.plotLeft,A=b(B.top)+_.plotTop+12;delete B.left;delete B.top;_.renderer.text(D.html,C,A).attr({zIndex:2}).css(B).add()})},render:function(){var E=this.axes,C=this.renderer,D=this.options,A,B,$,_;this.setTitle();this.legend=new z(this,D.legend);this.getStacks&&this.getStacks();this.getMargins(!0);this.setChartSize();A=this.plotWidth;B=this.plotHeight-=13;G0(E,function($){$.setScale()});this.getAxisMargins();$=A/this.plotWidth>1.1;_=B/this.plotHeight>1.1;if($||_)this.maxTicks=null,G0(E,function(A){(A.horiz&&$||!A.horiz&&_)&&A.setTickInterval(!0)}),this.getMargins();this.drawChartBox();this.hasCartesianSeries&&G0(E,function($){$.visible&&$.render()});if(!this.seriesGroup)this.seriesGroup=C.g("series-group").attr({zIndex:3}).add();this.renderSeries();this.renderLabels();this.showCredits(D.credits);this.hasRendered=!0},showCredits:function($){if($.enabled&&!this.credits)this.credits=this.renderer.text($.text,0,0).on("click",function(){if($.href)location.href=$.href}).attr({align:$.position.align,zIndex:8}).css($.style).add().align($.position)},destroy:function(){var D=this,B=D.axes,C=D.series,_=D.container,A,$=_&&_.parentNode;m(D,"destroy");B0[D.index]=W0;i0--;D.renderTo.removeAttribute("data-highcharts-chart");A0(D);for(A=B.length;A--;)B[A]=B[A].destroy();for(A=C.length;A--;)C[A]=C[A].destroy();G0("title,subtitle,chartBackground,plotBackground,plotBGImage,plotBorder,seriesGroup,clipRect,credits,pointer,scroller,rangeSelector,legend,resetZoomButton,tooltip,renderer".split(","),function($){var _=D[$];_&&_.destroy&&(D[$]=_.destroy())});if(_)_.innerHTML="",A0(_),$&&a0(_);for(A in D)delete D[A]},isReadyToRender:function(){var $=this;return!Y0&&f==f.top&&e.readyState!=="complete"||F0&&!f.canvg?(F0?I.push(function(){$.firstRender()},$.options.global.canvasToolsURL):e.attachEvent("onreadystatechange",function(){e.detachEvent("onreadystatechange",$.firstRender);e.readyState==="complete"&&$.firstRender()}),!1):!0},firstRender:function(){var A=this,$=A.options,_=A.callback;if(A.isReadyToRender()){A.getContainer();m(A,"init");A.resetMargins();A.setChartSize();A.propFromSeries();A.getAxes();G0($.series||[],function($){A.initSeries($)});A.linkSeries();m(A,"beforeRender");if(c.Pointer)A.pointer=new J0(A,$);A.render();A.renderer.draw();_&&_.apply(A,[A]);G0(A.callbacks,function($){A.index!==W0&&$.apply(A,[A])});m(A,"load");A.cloneRenderTo(!0)}},splashArray:function(A,$){var _=$[A],_=k0(_)?_:[_,_,_,_];return[Q0($[A+"Top"],_[0]),Q0($[A+"Right"],_[1]),Q0($[A+"Bottom"],_[2]),Q0($[A+"Left"],_[3])]}};var n0=c.CenteredSeriesMixin={getCenter:function(){var E=this.options,C=this.chart,D=2*(E.slicedOffset||0),A=C.plotWidth-2*D,C=C.plotHeight-2*D,B=E.center,B=[Q0(B[0],"50%"),Q0(B[1],"50%"),E.size||"100%",E.innerSize||0],$=T0(A,C),_,F;for(_=0;_<4;++_)F=B[_],E=_<2||_===2&&/%$/.test(F),B[_]=(/%$/.test(F)?[A,C,$,B[2]][_]*parseFloat(F)/100:parseFloat(F))+(E?D:0);B[3]>B[2]&&(B[3]=B[2]);return B}},d=function(){};d.prototype={init:function(A,$,_){this.series=A;this.color=A.color;this.applyOptions($,_);this.pointAttr={};if(A.options.colorByPoint&&($=A.options.colors||A.chart.options.colors,this.color=this.color||$[A.colorCounter++],A.colorCounter===$.length))A.colorCounter=0;A.chart.pointCount++;return this},applyOptions:function(B,_){var A=this.series,$=A.options.pointValKey||A.pointValKey,B=d.prototype.optionsToObject.call(this,B);K0(this,B);this.options=this.options?K0(this.options,B):B;if($)this.y=this[$];if(this.x===W0&&A)this.x=_===W0?A.autoIncrement():_;return this},optionsToObject:function(E){var C={},D=this.series,A=D.options.keys,B=A||D.pointArrayMap||["y"],$=B.length,_=0,F=0;if(typeof E==="number"||E===null)C[B[0]]=E;else if(D0(E)){if(!A&&E.length>$){D=typeof E[0];if(D==="string")C.name=E[0];else if(D==="number")C.x=E[0];_++}for(;F<$;){if(!A||E[_]!==void 0)C[B[F]]=E[_];_++;F++}}else if(typeof E==="object"){C=E;if(E.dataLabels)D._hasPointLabels=!0;if(E.marker)D._hasPointMarkers=!0}return C},destroy:function(){var A=this.series.chart,$=A.hoverPoints,_;A.pointCount--;if($&&(this.setState(),U1($,this),!$.length))A.hoverPoints=null;if(this===A.hoverPoint)this.onMouseOut();if(this.graphic||this.dataLabel)A0(this),this.destroyElements();this.legendItem&&A.legend.destroyItem(this);for(_ in this)this[_]=null},destroyElements:function(){for(var A=["graphic","dataLabel","dataLabelUpper","connector","shadowGroup"],$,_=6;_--;)$=A[_],this[$]&&(this[$]=this[$].destroy())},getLabelConfig:function(){return{x:this.category,y:this.y,color:this.color,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}},tooltipFormatter:function(D){var B=this.series,C=B.tooltipOptions,_=Q0(C.valueDecimals,""),A=C.valuePrefix||"",$=C.valueSuffix||"";G0(B.pointArrayMap||["y"],function(B){B="{point."+B;if(A||$)D=D.replace(B+"}",A+B+"}"+$);D=D.replace(B+"}",B+":,."+_+"f}")});return t0(D,{point:this,series:this.series})},firePointEvent:function(C,A,B){var $=this,_=this.series.options;(_.point.events[C]||$.options&&$.options.events&&$.options.events[C])&&this.importEvents();C==="click"&&_.allowPointSelect&&(B=function(_){$.select&&$.select(null,_.ctrlKey||_.metaKey||_.shiftKey)});m(this,C,A,B)},visible:!0};var y=c.Series=function(){};y.prototype={isCartesian:!0,type:"line",pointClass:d,sorted:!0,requireSorting:!0,pointAttrToOptions:{stroke:"lineColor","stroke-width":"lineWidth",fill:"fillColor",r:"radius"},directTouch:!1,axisTypes:["xAxis","yAxis"],colorCounter:0,parallelArrays:["x","y"],init:function(E,C){var D=this,A,B,$=E.series,_=function(_,$){return Q0(_.options.index,_._i)-Q0($.options.index,$._i)};D.chart=E;D.options=C=D.setOptions(C);D.linkedSeries=[];D.bindAxes();K0(D,{name:C.name,state:"",pointAttr:{},visible:C.visible!==!1,selected:C.selected===!0});if(F0)C.animation=!1;B=C.events;for(A in B)l(D,A,B[A]);if(B&&B.click||C.point&&C.point.events&&C.point.events.click||C.allowPointSelect)E.runTrackerClick=!0;D.getColor();D.getSymbol();G0(D.parallelArrays,function($){D[$+"Data"]=[]});D.setData(C.data,!1);if(D.isCartesian)E.hasCartesianSeries=!0;$.push(D);D._i=$.length-1;M1($,_);this.yAxis&&M1(this.yAxis.series,_);G0($,function(_,$){_.index=$;_.name=_.name||"Series "+($+1)})},bindAxes:function(){var B=this,_=B.options,A=B.chart,$;G0(B.axisTypes||[],function(C){G0(A[C],function(A){$=A.options;if(_[C]===$.index||_[C]!==W0&&_[C]===$.id||_[C]===W0&&$.index===0)A.series.push(B),B[C]=A,A.isDirty=!0});!B[C]&&B.optionalAxis!==C&&r0(18,!0)})},updateParallelArrays:function(B,_){var A=B.series,$=arguments;G0(A.parallelArrays,typeof _==="number"?function(C){var $=C==="y"&&A.toYData?A.toYData(B):B[C];A[C+"Data"][_]=$}:function(B){Array.prototype[_].apply(A[B+"Data"],Array.prototype.slice.call($,2))})},autoIncrement:function(){var B=this.options,_=this.xIncrement,A,$=B.pointIntervalUnit,_=Q0(_,B.pointStart,0);this.pointInterval=A=Q0(this.pointInterval,B.pointInterval,1);if($==="month"||$==="year")B=new I1(_),B=$==="month"?+B[_0](B[b0]()+A):+B[T](B[H1]()+A),A=B-_;this.xIncrement=_+A;return _},getSegments:function(){var C=-1,A=[],B,$=this.points,_=$.length;if(_)if(this.options.connectNulls){for(B=_;B--;)$[B].y===null&&$.splice(B,1);$.length&&(A=[$])}else G0($,function(D,B){D.y===null?(B>C+1&&A.push($.slice(C+1,B)),C=B):B===_-1&&A.push($.slice(C+1,B+1))});this.segments=A},setOptions:function(C){var A=this.chart,B=A.options.plotOptions,A=A.userOptions||{},$=A.plotOptions||{},_=B[this.type];this.userOptions=C;B=X(_,B.series,C);this.tooltipOptions=X(w.tooltip,w.plotOptions[this.type].tooltip,A.tooltip,$.series&&$.series.tooltip,$[this.type]&&$[this.type].tooltip,C.tooltip);_.marker===null&&delete B.marker;this.zoneAxis=B.zoneAxis;C=this.zones=(B.zones||[]).slice();if((B.negativeColor||B.negativeFillColor)&&!B.zones)C.push({value:B[this.zoneAxis+"Threshold"]||B.threshold||0,color:B.negativeColor,fillColor:B.negativeFillColor});C.length&&P0(C[C.length-1].value)&&C.push({color:this.color,fillColor:this.fillColor});return B},getCyclic:function(D,B,C){var _=this.userOptions,A="_"+D+"Index",$=D+"Counter";B||(P0(_[A])?B=_[A]:(_[A]=B=this.chart[$]%C.length,this.chart[$]+=1),B=C[B]);this[D]=B},getColor:function(){this.options.colorByPoint?this.options.color=null:this.getCyclic("color",this.options.color||G1[this.type].color,this.chart.options.colors)},getSymbol:function(){var $=this.options.marker;this.getCyclic("symbol",$.symbol,this.chart.options.symbols);if(/^url/.test(this.symbol))$.radius=0},drawLegendSymbol:V.drawLineMarker,setData:function(E,C,D,A){var B=this,$=B.points,_=$&&$.length||0,K,L=B.options,I=B.chart,J=null,H=B.xAxis,F=H&&!!H.categories,G=L.turboThreshold,M=this.xData,O=this.yData,N=(K=B.pointArrayMap)&&K.length,E=E||[];K=E.length;C=Q0(C,!0);if(A!==!1&&K&&_===K&&!B.cropped&&!B.hasGroupedData&&B.visible)G0(E,function(A,_){$[_].update&&$[_].update(A,!1,null,!1)});else{B.xIncrement=null;B.pointRange=F?1:L.pointRange;B.colorCounter=0;G0(this.parallelArrays,function($){B[$+"Data"].length=0});if(G&&K>G){for(D=0;J===null&&D<K;)J=E[D],D++;if(N1(J)){F=Q0(L.pointStart,0);J=Q0(L.pointInterval,1);for(D=0;D<K;D++)M[D]=F,O[D]=E[D],F+=J;B.xIncrement=F}else if(D0(J)){if(N){for(D=0;D<K;D++)J=E[D],M[D]=J[0],O[D]=J.slice(1,N+1)}else for(D=0;D<K;D++)J=E[D],M[D]=J[0],O[D]=J[1]}else r0(12)}else for(D=0;D<K;D++)if(E[D]!==W0&&(J={series:B},B.pointClass.prototype.applyOptions.apply(J,[E[D]]),B.updateParallelArrays(J,D),F&&P0(J.name)))H.names[J.x]=J.name;v0(O[0])&&r0(14,!0);B.data=[];B.options.data=E;for(D=_;D--;)$[D]&&$[D].destroy&&$[D].destroy();if(H)H.minRange=H.userMinRange;B.isDirty=B.isDirtyData=I.isDirtyBox=!0;D=!1}L.legendType==="point"&&(this.processData(),this.generatePoints());C&&I.redraw(D)},processData:function(E){var C=this.xData,D=this.yData,A=C.length,B;B=0;var $,_,K=this.xAxis,L,I=this.options;L=I.cropThreshold;var J=this.getExtremesFromAll||I.getExtremesFromAll,H=this.isCartesian,F,G;if(H&&!this.isDirty&&!K.isDirty&&!this.yAxis.isDirty&&!E)return!1;if(K)E=K.getExtremes(),F=E.min,G=E.max;if(H&&this.sorted&&!J&&(!L||A>L||this.forceCrop))if(C[A-1]<F||C[0]>G)C=[],D=[];else if(C[0]<F||C[A-1]>G)B=this.cropData(this.xData,this.yData,F,G),C=B.xData,D=B.yData,B=B.start,$=!0;for(L=C.length-1;L>=0;L--)A=C[L]-C[L-1],A>0&&(_===W0||A<_)?_=A:A<0&&this.requireSorting&&r0(15);this.cropped=$;this.cropStart=B;this.processedXData=C;this.processedYData=D;if(I.pointRange===null)this.pointRange=_||1;this.closestPointRange=_},cropData:function(E,C,D,A){var B=E.length,$=0,_=B,F=Q0(this.cropShoulder,1),G;for(G=0;G<B;G++)if(E[G]>=D){$=N0(0,G-F);break}for(;G<B;G++)if(E[G]>A){_=G+F;break}return{xData:E.slice($,_),yData:C.slice($,_),start:$,end:_}},generatePoints:function(){var E=this.options.data,C=this.data,D,A=this.processedXData,B=this.processedYData,$=this.pointClass,_=A.length,J=this.cropStart||0,K,H=this.hasGroupedData,I,G=[],F;if(!C&&!H)C=[],C.length=E.length,C=this.data=C;for(F=0;F<_;F++)K=J+F,H?G[F]=(new $).init(this,[A[F]].concat(z0(B[F]))):(C[K]?I=C[K]:E[K]!==W0&&(C[K]=I=(new $).init(this,E[K],A[F])),G[F]=I),G[F].index=K;if(C&&(_!==(D=C.length)||H))for(F=0;F<D;F++)if(F===J&&!H&&(F+=_),C[F])C[F].destroyElements(),C[F].plotX=W0;this.data=C;this.points=G},getExtremes:function(F){var D=this.yAxis,E=this.processedXData,B,C=[],_=0;B=this.xAxis.getExtremes();var A=B.min,J=B.max,K,H,I,G,F=F||this.stackedYData||this.processedYData;B=F.length;for(G=0;G<B;G++)if(H=E[G],I=F[G],K=I!==null&&I!==W0&&(!D.isLog||I.length||I>0),H=this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||(E[G+1]||H)>=A&&(E[G-1]||H)<=J,K&&H)if(K=I.length){for(;K--;)I[K]!==null&&(C[_++]=I[K])}else C[_++]=I;this.dataMin=U0(C);this.dataMax=$(C)},translate:function(){this.processedXData||this.processData();this.generatePoints();for(var F=this.options,C=F.stacking,E=this.xAxis,A=E.categories,B=this.yAxis,$=this.points,_=$.length,M=!!this.modifyValue,N=F.pointPlacement,K=N==="between"||N1(N),L=F.threshold,J=F.startFromThreshold?L:0,G,I,Q,H,R=Number.MAX_VALUE,F=0;F<_;F++){var D=$[F],P=D.x,S=D.y;I=D.low;var O=C&&B.stacks[(this.negStacks&&S<(J?0:L)?"-":"")+this.stackKey];if(B.isLog&&S!==null&&S<=0)D.y=S=null,r0(10);D.plotX=G=T0(N0(-100000,E.translate(P,0,0,0,1,N,this.type==="flags")),100000);if(C&&this.visible&&O&&O[P])H=this.getStackIndicator(H,P,this.index),O=O[P],S=O.points[H.key],I=S[0],S=S[1],I===J&&(I=Q0(L,B.min)),B.isLog&&I<=0&&(I=null),D.total=D.stackTotal=O.total,D.percentage=O.total&&D.y/O.total*100,D.stackY=S,O.setOffset(this.pointXOffset||0,this.barW||0);D.yBottom=P0(I)?B.translate(I,0,1,0,1):null;M&&(S=this.modifyValue(S,D));D.plotY=I=typeof S==="number"&&S!==Infinity?T0(N0(-100000,B.translate(S,0,1,0,1)),100000):W0;D.isInside=I!==W0&&I>=0&&I<=B.len&&G>=0&&G<=E.len;D.clientX=K?E.translate(P,0,0,0,1):G;D.negative=D.y<(L||0);D.category=A&&A[D.x]!==W0?A[D.x]:D.x;F&&(R=T0(R,i(G-Q)));Q=G}this.closestPointRangePx=R;this.getSegments()},setClip:function(E){var C=this.chart,D=this.options,A=C.renderer,B=C.inverted,$=this.clipBox,_=$||C.clipBox,G=this.sharedClipKey||["_sharedClip",E&&E.duration,E&&E.easing,_.height,D.xAxis,D.yAxis].join(","),H=C[G],F=C[G+"m"];if(!H){if(E)_.width=0,C[G+"m"]=F=A.clipRect(-99,B?-C.plotLeft:-C.plotTop,99,B?C.chartWidth:C.chartHeight);C[G]=H=A.clipRect(_)}E&&(H.count+=1);if(D.clip!==!1)this.group.clip(E||$?H:C.clipRect),this.markerGroup.clip(F),this.sharedClipKey=G;E||(H.count-=1,H.count<=0&&G&&C[G]&&($||(C[G]=C[G].destroy()),C[G+"m"]&&(C[G+"m"]=C[G+"m"].destroy())))},animate:function(B){var _=this.chart,A=this.options.animation,$;if(A&&!k0(A))A=G1[this.type].animation;B?this.setClip(A):($=this.sharedClipKey,(B=_[$])&&B.animate({width:_.plotSizeX},A),_[$+"m"]&&_[$+"m"].animate({width:_.plotSizeX+99},A),this.animate=null)},afterAnimate:function(){this.setClip();m(this,"afterAnimate")},drawPoints:function(){var E,C=this.points,D=this.chart,A,B,$,_,L,M,J,K,I=this.options.marker,F=this.pointAttr[""],H,G,O,N=this.markerGroup,P=Q0(I.enabled,this.xAxis.isRadial,this.closestPointRangePx>2*I.radius);if(I.enabled!==!1||this._hasPointMarkers)for($=C.length;$--;)if(_=C[$],A=r(_.plotX),B=_.plotY,K=_.graphic,H=_.marker||{},G=!!_.marker,E=P&&H.enabled===W0||H.enabled,O=_.isInside,E&&B!==W0&&!isNaN(B)&&_.y!==null){if(E=_.pointAttr[_.selected?"select":""]||F,L=E.r,M=Q0(H.symbol,this.symbol),J=M.indexOf("url")===0,K)K[O?"show":"hide"](!0).animate(K0({x:A-L,y:B-L},K.symbolName?{width:2*L,height:2*L}:{}));else if(O&&(L>0||J))_.graphic=D.renderer.symbol(M,A-L,B-L,2*L,2*L,G?H:I).attr(E).add(N)}else if(K)_.graphic=K.destroy()},convertAttribs:function(E,C,D,A){var B=this.pointAttrToOptions,$,_,F={},E=E||{},C=C||{},D=D||{},A=A||{};for($ in B)_=B[$],F[$]=Q0(E[_],C[$],D[$],A[$]);return F},getAttribs:function(){var F=this,C=F.options,E=G1[F.type].marker?C.marker:C,A=E.states,B=A.hover,$,_=F.color,L=F.options.negativeColor;$={stroke:_,fill:_};var M=F.points||[],J,K,I=[],G=F.pointAttrToOptions;J=F.hasPointSpecificOptions;var H=E.lineColor,N=E.fillColor;K=C.turboThreshold;var P=F.zones,O=F.zoneAxis||"y",D;C.marker?(B.radius=B.radius||E.radius+B.radiusPlus,B.lineWidth=B.lineWidth||E.lineWidth+B.lineWidthPlus):(B.color=B.color||L0(B.color||_).brighten(B.brightness).get(),B.negativeColor=B.negativeColor||L0(B.negativeColor||L).brighten(B.brightness).get());I[""]=F.convertAttribs(E,$);G0(["hover","select"],function($){I[$]=F.convertAttribs(A[$],I[""])});F.pointAttr=I;_=M.length;if(!K||_<K||J)for(;_--;){K=M[_];if((E=K.options&&K.options.marker||K.options)&&E.enabled===!1)E.radius=0;if(P.length){J=0;for($=P[J];K[O]>=$.value;)$=P[++J];K.color=K.fillColor=Q0($.color,F.color)}J=C.colorByPoint||K.color;if(K.options)for(D in G)P0(E[G[D]])&&(J=!0);if(J){E=E||{};J=[];A=E.states||{};$=A.hover=A.hover||{};if(!C.marker||K.negative&&!$.fillColor&&!B.fillColor)$[F.pointAttrToOptions.fill]=$.color||!K.options.color&&B[K.negative&&L?"negativeColor":"color"]||L0(K.color).brighten($.brightness||B.brightness).get();$={color:K.color};if(!N)$.fillColor=K.color;if(!H)$.lineColor=K.color;E.hasOwnProperty("color")&&!E.color&&delete E.color;J[""]=F.convertAttribs(K0($,E),I[""]);J.hover=F.convertAttribs(A.hover,I.hover,J[""]);J.select=F.convertAttribs(A.select,I.select,J[""])}else J=I;K.pointAttr=J}},destroy:function(){var E=this,C=E.chart,D=/AppleWebKit\/533/.test(w0),A,B=E.data||[],$,_,F;m(E,"destroy");A0(E);G0(E.axisTypes||[],function($){if(F=E[$])U1(F.series,E),F.isDirty=F.forceRedraw=!0});E.legendItem&&E.chart.legend.destroyItem(E);for(A=B.length;A--;)($=B[A])&&$.destroy&&$.destroy();E.points=null;clearTimeout(E.animationTimeout);for(_ in E)E[_]instanceof u&&!E[_].survive&&(A=D&&_==="group"?"hide":"destroy",E[_][A]());if(C.hoverSeries===E)C.hoverSeries=null;U1(C.series,E);for(_ in E)delete E[_]},getSegmentPath:function(B){var _=this,A=[],$=_.options.step;G0(B,function(E,C){var D=E.plotX,F=E.plotY,G;_.getPointSpline?A.push.apply(A,_.getPointSpline(B,E,C)):(A.push(C?"L":"M"),$&&C&&(G=B[C-1],$==="right"?A.push(G.plotX,F,"L"):$==="center"?A.push((G.plotX+D)/2,G.plotY,"L",(G.plotX+D)/2,F,"L"):A.push(D,G.plotY,"L")),A.push(E.plotX,E.plotY))});return A},getGraphPath:function(){var B=this,_=[],A,$=[];G0(B.segments,function(C){A=B.getSegmentPath(C);C.length>1?_=_.concat(A):$.push(C[0])});B.singlePoints=$;return B.graphPath=_},drawGraph:function(){var E=this,C=this.options,D=[["graph",C.lineColor||this.color,C.dashStyle]],A=C.lineWidth,B=C.linecap!=="square",$=this.getGraphPath(),_=this.fillGraph&&this.color||v;G0(this.zones,function($,_){D.push(["zoneGraph"+_,$.color||E.color,$.dashStyle||C.dashStyle])});G0(D,function(D,H){var F=D[0],G=E[F];if(G)G.animate({d:$});else if((A||_)&&$.length)G={stroke:D[1],"stroke-width":A,fill:_,zIndex:1},D[2]?G.dashstyle=D[2]:B&&(G["stroke-linecap"]=G["stroke-linejoin"]="round"),E[F]=E.chart.renderer.path($).attr(G).add(E.group).shadow(H<2&&C.shadow)})},applyZones:function(){var E=this,C=this.chart,D=C.renderer,A=this.zones,B,$,_=this.clips||[],K,L=this.graph,I=this.area,J=N0(C.chartWidth,C.chartHeight),H=this[(this.zoneAxis||"y")+"Axis"],F,G=H.reversed,N=C.inverted,P=H.horiz,Q,O,M,R=!1;if(A.length&&(L||I)&&H.min!==W0)L&&L.hide(),I&&I.hide(),F=H.getExtremes(),G0(A,function(A,S){B=G?P?C.plotWidth:0:P?0:H.toPixels(F.min);B=T0(N0(Q0($,B),0),J);$=T0(N0(I0(H.toPixels(Q0(A.value,F.max),!0)),0),J);R&&(B=$=H.toPixels(F.max));Q=Math.abs(B-$);O=T0(B,$);M=N0(B,$);if(H.isXAxis){if(K={x:N?M:O,y:0,width:Q,height:J},!P)K.x=C.plotHeight-K.x}else if(K={x:0,y:N?M:O,width:J,height:Q},P)K.y=C.plotWidth-K.y;C.inverted&&D.isVML&&(K=H.isXAxis?{x:0,y:G?O:M,height:K.width,width:C.chartWidth}:{x:K.y-C.plotLeft-C.spacingBox.x,y:0,width:K.height,height:C.chartHeight});_[S]?_[S].animate(K):(_[S]=D.clipRect(K),L&&E["zoneGraph"+S].clip(_[S]),I&&E["zoneArea"+S].clip(_[S]));R=A.value>F.max}),this.clips=_},invertGroups:function(){function A(){var _={width:$.yAxis.len,height:$.xAxis.len};G0(["group","markerGroup"],function(A){$[A]&&$[A].attr(_).invert()})}var $=this,_=$.chart;if($.xAxis)l(_,"resize",A),l($,"destroy",function(){A0(_,"resize",A)}),A(),$.invertGroups=A},plotGroup:function(E,C,D,A,B){var $=this[E],_=!$;_&&(this[E]=$=this.chart.renderer.g(C).attr({visibility:D,zIndex:A||0.1}).add(B),$.addClass("highcharts-series-"+this.index));$[_?"attr":"animate"](this.getPlotBox());return $},getPlotBox:function(){var A=this.chart,$=this.xAxis,_=this.yAxis;if(A.inverted)$=_,_=this.xAxis;return{translateX:$?$.left:A.plotLeft,translateY:_?_.top:A.plotTop,scaleX:1,scaleY:1}},render:function(){var E=this,C=E.chart,D,A=E.options,B=(D=A.animation)&&!!E.animate&&C.renderer.isSVG&&Q0(D.duration,500)||0,$=E.visible?"visible":"hidden",_=A.zIndex,F=E.hasRendered,G=C.seriesGroup;D=E.plotGroup("group","series",$,_,G);E.markerGroup=E.plotGroup("markerGroup","markers",$,_,G);B&&E.animate(!0);E.getAttribs();D.inverted=E.isCartesian?C.inverted:!1;E.drawGraph&&(E.drawGraph(),E.applyZones());G0(E.points,function($){$.redraw&&$.redraw()});E.drawDataLabels&&E.drawDataLabels();E.visible&&E.drawPoints();E.drawTracker&&E.options.enableMouseTracking!==!1&&E.drawTracker();C.inverted&&E.invertGroups();A.clip!==!1&&!E.sharedClipKey&&!F&&D.clip(C.clipRect);B&&E.animate();if(!F)B?E.animationTimeout=setTimeout(function(){E.afterAnimate()},B):E.afterAnimate();E.isDirty=E.isDirtyData=!1;E.hasRendered=!0},redraw:function(){var D=this.chart,B=this.isDirtyData,C=this.isDirty,_=this.group,A=this.xAxis,$=this.yAxis;_&&(D.inverted&&_.attr({width:D.plotWidth,height:D.plotHeight}),_.animate({translateX:Q0(A&&A.left,D.plotLeft),translateY:Q0($&&$.top,D.plotTop)}));this.translate();this.render();B&&m(this,"updatedData");(C||B)&&delete this.kdTree},kdDimensions:1,kdAxisArray:["clientX","plotY"],searchPoint:function(C,A){var B=this.xAxis,$=this.yAxis,_=this.chart.inverted;return this.searchKDTree({clientX:_?B.len-C.chartY+B.pos:C.chartX-B.pos,plotY:_?$.len-C.chartX+$.pos:C.chartY-$.pos},A)},buildKDTree:function(){function B(C,_,$){var D,E;if(E=C&&C.length)return D=A.kdAxisArray[_%$],C.sort(function(_,$){return _[D]-$[D]}),E=Math.floor(E/2),{point:C[E],left:B(C.slice(0,E),_+1,$),right:B(C.slice(E+1),_+1,$)}}function _(){var _=e0(A.points||[],function($){return $.y!==null});A.kdTree=B(_,$,$)}var A=this,$=A.kdDimensions;delete A.kdTree;A.options.kdSync?_():setTimeout(_)},searchKDTree:function(E,C){function D(F,C,K,L){var J=C.point,G=A.kdAxisArray[K%L],I,E,H=J;E=P0(F[B])&&P0(J[B])?Math.pow(F[B]-J[B],2):null;I=P0(F[$])&&P0(J[$])?Math.pow(F[$]-J[$],2):null;I=(E||0)+(I||0);J.dist=P0(I)?Math.sqrt(I):Number.MAX_VALUE;J.distX=P0(E)?Math.sqrt(E):Number.MAX_VALUE;G=F[G]-J[G];I=G<0?"left":"right";E=G<0?"right":"left";C[I]&&(I=D(F,C[I],K+1,L),H=I[_]<H[_]?I:J);C[E]&&Math.sqrt(G*G)<H[_]&&(F=D(F,C[E],K+1,L),H=F[_]<H[_]?F:H);return H}var A=this,B=this.kdAxisArray[0],$=this.kdAxisArray[1],_=C?"distX":"dist";this.kdTree||this.buildKDTree();if(this.kdTree)return D(E,this.kdTree,this.kdDimensions,this.kdDimensions)}};f0.prototype={destroy:function(){l0(this,this.axis)},render:function(A){var $=this.options,_=$.format,_=_?t0(_,this):$.formatter.call(this);this.label?this.label.attr({text:_,visibility:"hidden"}):this.label=this.axis.chart.renderer.text(_,null,null,$.useHTML).css($.style).attr({align:this.textAlign,rotation:$.rotation,visibility:"hidden"}).add(A)},setOffset:function(E,C){var D=this.axis,A=D.chart,B=A.inverted,$=D.reversed,$=this.isNegative&&!$||!this.isNegative&&$,_=D.translate(D.usePercentage?100:this.total,0,0,0,1),D=D.translate(0),D=i(_-D),F=A.xAxis[0].translate(this.x)+E,G=A.plotHeight,$={x:B?$?_:_-D:F,y:B?G-F-C:$?G-_-D:G-_,width:B?D:C,height:B?C:D};if(B=this.label)B.align(this.alignOptions,null,$),$=B.alignAttr,B[this.options.crop===!1||A.isInsidePlot($.x,$.y)?"show":"hide"](!0)}};Z.prototype.getStacks=function(){var $=this;G0($.yAxis,function($){if($.stacks&&$.hasVisibleSeries)$.oldStacks=$.stacks});G0($.series,function(_){if(_.options.stacking&&(_.visible===!0||$.options.chart.ignoreHiddenSeries===!1))_.stackKey=_.type+Q0(_.options.stack,"")})};O.prototype.buildStacks=function(){var A=this.series,$=Q0(this.options.reversedStacks,!0),_=A.length;if(!this.isXAxis){for(this.usePercentage=!1;_--;)A[$?_:A.length-_-1].setStackedPoints();if(this.usePercentage)for(_=0;_<A.length;_++)A[_].setPercentStacks()}};O.prototype.renderStackTotals=function(){var D=this.chart,B=D.renderer,C=this.stacks,_,A,$=this.stackTotalGroup;if(!$)this.stackTotalGroup=$=B.g("stack-labels").attr({visibility:"visible",zIndex:6}).add();$.translate(D.plotLeft,D.plotTop);for(_ in C)for(A in D=C[_],D)D[A].render($)};O.prototype.resetStacks=function(){var A=this.stacks,$,_;if(!this.isXAxis)for($ in A)for(_ in A[$])A[$][_].touched<this.stacksTouched?(A[$][_].destroy(),delete A[$][_]):(A[$][_].total=null,A[$][_].cum=0)};O.prototype.cleanStacks=function(){var A,$,_;if(!this.isXAxis){if(this.oldStacks)A=this.stacks=this.oldStacks;for($ in A)for(_ in A[$])A[$][_].cum=A[$][_].total}};y.prototype.setStackedPoints=function(){if(this.options.stacking&&!(this.visible!==!0&&this.chart.options.chart.ignoreHiddenSeries!==!1)){var E=this.processedXData,C=this.processedYData,D=[],A=C.length,B=this.options,$=B.threshold,_=B.startFromThreshold?$:0,L=B.stack,B=B.stacking,M=this.stackKey,J="-"+M,K=this.negStacks,I=this.yAxis,F=I.stacks,H=I.oldStacks,G,Q,R,P,O,N,S;I.stacksTouched+=1;for(O=0;O<A;O++){N=E[O];S=C[O];G=this.getStackIndicator(G,N,this.index);P=G.key;R=(Q=K&&S<(_?0:$))?J:M;F[R]||(F[R]={});if(!F[R][N])H[R]&&H[R][N]?(F[R][N]=H[R][N],F[R][N].total=null):F[R][N]=new f0(I,I.options.stackLabels,Q,N,L);R=F[R][N];R.points[P]=[Q0(R.cum,_)];R.touched=I.stacksTouched;B==="percent"?(Q=Q?M:J,K&&F[Q]&&F[Q][N]?(Q=F[Q][N],R.total=Q.total=N0(Q.total,R.total)+i(S)||0):R.total=j(R.total+(i(S)||0))):R.total=j(R.total+(S||0));R.cum=Q0(R.cum,_)+(S||0);R.points[P].push(R.cum);D[O]=R.cum}if(B==="percent")I.usePercentage=!0;this.stackedYData=D;I.oldStacks={}}};y.prototype.setPercentStacks=function(){var C=this,A=C.stackKey,B=C.yAxis.stacks,$=C.processedXData,_;G0([A,"-"+A],function(E){var A;for(var D=$.length,F,G;D--;)if(F=$[D],_=C.getStackIndicator(_,F,C.index),A=(G=B[E]&&B[E][F])&&G.points[_.key],F=A)G=G.total?100/G.total:0,F[0]=j(F[0]*G),F[1]=j(F[1]*G),C.stackedYData[D]=F[1]})};y.prototype.getStackIndicator=function(A,$,_){!P0(A)||A.x!==$?A={x:$,index:0}:A.index++;A.key=[_,$,A.index].join(",");return A};K0(Z.prototype,{addSeries:function(C,A,B){var $,_=this;C&&(A=Q0(A,!0),m(_,"addSeries",{options:C},function(){$=_.initSeries(C);_.isDirtyLegend=!0;_.linkSeries();A&&_.redraw(B)}));return $},addAxis:function(D,B,C,_){var A=B?"xAxis":"yAxis",$=this.options;new O(this,X(D,{index:this[A].length,isX:B}));$[A]=z0($[A]||{});$[A].push(D);Q0(C,!0)&&this.redraw(_)},showLoading:function(D){var B=this,C=B.options,_=B.loadingDiv,A=C.loading,$=function(){_&&g(_,{left:B.plotLeft+"px",top:B.plotTop+"px",width:B.plotWidth+"px",height:B.plotHeight+"px"})};if(!_)B.loadingDiv=_=K(y0,{className:"highcharts-loading"},K0(A.style,{zIndex:10,display:v}),B.container),B.loadingSpan=K("span",null,A.labelStyle,_),l(B,"redraw",$);B.loadingSpan.innerHTML=D||C.lang.loading;if(!B.loadingShown)g(_,{opacity:0,display:""}),u0(_,{opacity:A.style.opacity},{duration:A.showDuration||0}),B.loadingShown=!0;$()},hideLoading:function(){var _=this.options,$=this.loadingDiv;$&&u0($,{opacity:0},{duration:_.loading.hideDuration||100,complete:function(){g($,{display:v})}});this.loadingShown=!1}});K0(d.prototype,{update:function(E,C,D,A){function B(){$.applyOptions(E);if($.y===null&&I)$.graphic=I.destroy();if(k0(E)&&!D0(E))$.redraw=function(){if(I&&I.element&&E&&E.marker&&E.marker.symbol)$.graphic=I.destroy();if(E&&E.dataLabels&&$.dataLabel)$.dataLabel=$.dataLabel.destroy();$.redraw=null};J=$.index;_.updateParallelArrays($,J);if(F&&$.name)F[$.x]=$.name;H.data[J]=$.options;_.isDirty=_.isDirtyData=!0;if(!_.fixedBox&&_.hasCartesianSeries)G.isDirtyBox=!0;if(H.legendType==="point")G.isDirtyLegend=!0;C&&G.redraw(D)}var $=this,_=$.series,I=$.graphic,J,G=_.chart,H=_.options,F=_.xAxis&&_.xAxis.names,C=Q0(C,!0);A===!1?B():$.firePointEvent("update",{options:E},B)},remove:function(_,$){this.series.removePoint(J(this,this.series.data),_,$)}});K0(y.prototype,{addPoint:function(E,C,D,A){var B=this,$=B.options,_=B.data,K=B.graph,L=B.area,I=B.chart,J=B.xAxis&&B.xAxis.names,H=K&&K.shift||0,F=["graph","area"],K=$.data,G,M=B.xData;V1(A,I);if(D){for(A=B.zones.length;A--;)F.push("zoneGraph"+A,"zoneArea"+A);G0(F,function(_){if(B[_])B[_].shift=H+($.step?2:1)})}if(L)L.isArea=!0;C=Q0(C,!0);L={series:B};B.pointClass.prototype.applyOptions.apply(L,[E]);F=L.x;A=M.length;if(B.requireSorting&&F<M[A-1])for(G=!0;A&&M[A-1]>F;)A--;B.updateParallelArrays(L,"splice",A,0,0);B.updateParallelArrays(L,A);if(J&&L.name)J[F]=L.name;K.splice(A,0,E);G&&(B.data.splice(A,0,null),B.processData());$.legendType==="point"&&B.generatePoints();D&&(_[0]&&_[0].remove?_[0].remove(!1):(_.shift(),B.updateParallelArrays(L,"shift"),K.shift()));B.isDirty=!0;B.isDirtyData=!0;C&&(B.getAttribs(),I.redraw())},removePoint:function(E,C,D){var A=this,B=A.data,$=B[E],_=A.points,F=A.chart,G=function(){B.length===_.length&&_.splice(E,1);B.splice(E,1);A.options.data.splice(E,1);A.updateParallelArrays($||{series:A},"splice",E,1);$&&$.destroy();A.isDirty=!0;A.isDirtyData=!0;C&&F.redraw()};V1(D,F);C=Q0(C,!0);$?$.firePointEvent("remove",null,G):G()},remove:function(B,_){var A=this,$=A.chart,B=Q0(B,!0);if(!A.isRemoving)A.isRemoving=!0,m(A,"remove",null,function(){A.destroy();$.isDirtyLegend=$.isDirtyBox=!0;$.linkSeries();B&&$.redraw(_)});A.isRemoving=!1},update:function(E,C){var D=this,A=this.chart,B=this.userOptions,$=this.type,_=h[$].prototype,F=["group","markerGroup","dataLabelsGroup"],G;if(E.type&&E.type!==$||E.zIndex!==void 0)F.length=0;G0(F,function($){F[$]=D[$];delete D[$]});E=X(B,{animation:!1,index:this.index,pointStart:this.xData[0]},{data:this.options.data},E);this.remove(!1);for(G in _)this[G]=W0;K0(this,h[E.type||$].prototype);G0(F,function($){D[$]=F[$]});this.init(A,E);A.linkSeries();Q0(C,!0)&&A.redraw(!1)}});K0(O.prototype,{update:function(A,$){var _=this.chart,A=_.options[this.coll][this.options.index]=X(this.userOptions,A);this.destroy(!0);this._addedPlotLB=this.chart._labelPanes=W0;this.init(_,K0(A,{events:W0}));_.isDirtyBox=!0;Q0($,!0)&&_.redraw()},remove:function(C){for(var A=this.chart,B=this.coll,$=this.series,_=$.length;_--;)$[_]&&$[_].remove(!1);U1(A.axes,this);U1(A[B],this);A.options[B].splice(this.options.index,1);G0(A[B],function(_,$){_.options.index=$});this.destroy();A.isDirtyBox=!0;Q0(C,!0)&&A.redraw()},setTitle:function(_,$){this.update({title:_},$)},setCategories:function(_,$){this.update({categories:_},$)}});var H=g0(y);h.line=H;G1.area=X(o,{softThreshold:!1,threshold:0});var R=g0(y,{type:"area",getSegments:function(){var E=this,C=[],D=[],A=[],B=this.xAxis,$=this.yAxis,_=$.stacks[this.stackKey],K={},L,I,J=this.points,H=this.options.connectNulls,F,G,M;if(this.options.stacking&&!this.cropped){for(G=0;G<J.length;G++)K[J[G].x]=J[G];for(M in _)_[M].total!==null&&A.push(+M);A.sort(function(_,$){return _-$});G0(A,function(C){var A=null,J;if(!H||K[C]&&K[C].y!==null)if(K[C])D.push(K[C]);else{for(G=E.index;G<=$.series.length;G++)if(F=E.getStackIndicator(null,C,G),J=_[C].points[F.key]){A=J[1];break}L=B.translate(C);I=$.getThreshold(A);D.push({y:null,plotX:L,clientX:L,plotY:I,yBottom:I,onMouseOver:S0})}});D.length&&C.push(D)}else y.prototype.getSegments.call(this),C=this.segments;this.segments=C},getSegmentPath:function(E){var C=y.prototype.getSegmentPath.call(this,E),D=[].concat(C),A,B=this.options;A=C.length;var $=this.yAxis.getThreshold(B.threshold),_;A===3&&D.push("L",C[1],C[2]);if(B.stacking&&!this.closedStacks){for(A=E.length-1;A>=0;A--)_=Q0(E[A].yBottom,$),A<E.length-1&&B.step&&D.push(E[A+1].plotX,_),D.push(E[A].plotX,_)}else this.closeSegment(D,E,$);this.areaPath=this.areaPath.concat(D);return C},closeSegment:function(A,$,_){A.push("L",$[$.length-1].plotX,_,"L",$[0].plotX,_)},drawGraph:function(){this.areaPath=[];y.prototype.drawGraph.apply(this);var B=this,_=this.areaPath,A=this.options,$=[["area",this.color,A.fillColor]];G0(this.zones,function(C,_){$.push(["zoneArea"+_,C.color||B.color,C.fillColor||A.fillColor])});G0($,function(D){var $=D[0],C=B[$];C?C.animate({d:_}):B[$]=B.chart.renderer.path(_).attr({fill:Q0(D[2],L0(D[1]).setOpacity(Q0(A.fillOpacity,0.75)).get()),zIndex:0}).add(B.group)})},drawLegendSymbol:V.drawRectangle});h.area=R;G1.spline=X(o);H=g0(y,{type:"spline",getPointSpline:function(E,C,D){var A=C.plotX,B=C.plotY,$=E[D-1],_=E[D+1],I,J,G,H;if($&&_){E=$.plotY;G=_.plotX;var _=_.plotY,F;I=(1.5*A+$.plotX)/2.5;J=(1.5*B+E)/2.5;G=(1.5*A+G)/2.5;H=(1.5*B+_)/2.5;F=(H-J)*(G-A)/(G-I)+B-H;J+=F;H+=F;J>E&&J>B?(J=N0(E,B),H=2*B-J):J<E&&J<B&&(J=T0(E,B),H=2*B-J);H>_&&H>B?(H=N0(_,B),J=2*B-H):H<_&&H<B&&(H=T0(_,B),J=2*B-H);C.rightContX=G;C.rightContY=H}D?(C=["C",$.rightContX||$.plotX,$.rightContY||$.plotY,I||A,J||B,A,B],$.rightContX=$.rightContY=null):C=["M",A,B];return C}});h.spline=H;G1.areaspline=X(G1.area);R=R.prototype;H=g0(H,{type:"areaspline",closedStacks:!0,getSegmentPath:R.getSegmentPath,closeSegment:R.closeSegment,drawGraph:R.drawGraph,drawLegendSymbol:V.drawRectangle});h.areaspline=H;G1.column=X(o,{borderColor:"#FFFFFF",borderRadius:0,groupPadding:0.2,marker:null,pointPadding:0.1,minPointLength:0,cropThreshold:50,pointRange:null,states:{hover:{brightness:0.1,shadow:!1,halo:!1},select:{color:"#C0C0C0",borderColor:"#000000",shadow:!1}},dataLabels:{align:null,verticalAlign:null,y:null},softThreshold:!1,startFromThreshold:!0,stickyTracking:!1,tooltip:{distance:6},threshold:0});H=g0(y,{type:"column",pointAttrToOptions:{stroke:"borderColor",fill:"color",r:"borderRadius"},cropShoulder:0,directTouch:!0,trackerGroups:["group","dataLabelsGroup"],negStacks:!0,init:function(){y.prototype.init.apply(this,arguments);var _=this,$=_.chart;$.hasRendered&&G0($.series,function($){if($.type===_.type)$.isDirty=!0})},getColumnMetrics:function(){var E=this,C=E.options,D=E.xAxis,A=E.yAxis,B=D.reversed,$,_={},I,J=0;C.grouping===!1?J=1:G0(E.chart.series,function(C){var D=C.options,B=C.yAxis;if(C.type===E.type&&C.visible&&A.len===B.len&&A.pos===B.pos)D.stacking?($=C.stackKey,_[$]===W0&&(_[$]=J++),I=_[$]):D.grouping!==!1&&(I=J++),C.columnIndex=I});var G=T0(i(D.transA)*(D.ordinalSlope||C.pointRange||D.closestPointRange||D.tickInterval||1),D.len),H=G*C.groupPadding,F=(G-2*H)/J,C=T0(C.maxPointWidth||D.len,Q0(C.pointWidth,F*(1-2*C.pointPadding)));return E.columnMetrics={width:C,offset:(F-C)/2+(H+((B?J-(E.columnIndex||0):E.columnIndex)||0)*F-G/2)*(B?-1:1)}},crispCol:function(E,C,D,A){var B=this.chart,$=this.borderWidth,_=-($%2?0.5:0),$=$%2?0.5:1;B.inverted&&B.renderer.isVML&&($+=1);D=Math.round(E+D)+_;E=Math.round(E)+_;D-=E;_=i(C)<=0.5;A=Math.round(C+A)+$;C=Math.round(C)+$;A-=C;_&&(C-=1,A+=1);return{x:E,y:C,width:D,height:A}},translate:function(){var E=this,C=E.chart,D=E.options,A=E.borderWidth=Q0(D.borderWidth,E.closestPointRange*E.xAxis.transA<2?0:1),B=E.yAxis,$=E.translatedThreshold=B.getThreshold(D.threshold),_=Q0(D.minPointLength,5),H=E.getColumnMetrics(),I=H.width,F=E.barW=N0(I,1+2*A),G=E.pointXOffset=H.offset;C.inverted&&($-=0.5);D.pointPadding&&(F=d0(F));y.prototype.translate.apply(E);G0(E.points,function(K){var H=T0(Q0(K.yBottom,$),90000),N=999+i(H),N=T0(N0(-N,K.plotY),B.len+N),M=K.plotX+G,L=F,J=T0(N,H),A,D=N0(N,H)-J;i(D)<_&&_&&(D=_,A=!B.reversed&&!K.negative||B.reversed&&K.negative,J=i(J-$)>_?H-_:$-(A?_:0));K.barX=M;K.pointWidth=I;K.tooltipPos=C.inverted?[B.len+B.pos-C.plotLeft-N,E.xAxis.len-M-L/2,D]:[M+L/2,N+B.pos-C.plotTop,D];K.shapeType="rect";K.shapeArgs=E.crispCol(M,J,L,D)})},getSymbol:S0,drawLegendSymbol:V.drawRectangle,drawGraph:S0,drawPoints:function(){var E=this,C=this.chart,D=E.options,A=C.renderer,B=D.animationLimit||250,$,_;G0(E.points,function(G){var H=G.plotY,F=G.graphic;if(H!==W0&&!isNaN(H)&&G.y!==null)$=G.shapeArgs,H=P0(E.borderWidth)?{"stroke-width":E.borderWidth}:{},_=G.pointAttr[G.selected?"select":""]||E.pointAttr[""],F?(X0(F),F.attr(H)[C.pointCount<B?"animate":"attr"](X($))):G.graphic=A[G.shapeType]($).attr(H).attr(_).add(G.group||E.group).shadow(D.shadow,null,D.stacking&&!D.borderRadius);else if(F)G.graphic=F.destroy()})},animate:function(C){var A=this.yAxis,B=this.options,$=this.chart.inverted,_={};if(Y0)C?(_.scaleY=0.001,C=T0(A.pos+A.len,N0(A.pos,A.toPixels(B.threshold))),$?_.translateX=C-A.len:_.translateY=C,this.group.attr(_)):(_.scaleY=1,_[$?"translateX":"translateY"]=A.pos,this.group.animate(_,this.options.animation),this.animate=null)},remove:function(){var _=this,$=_.chart;$.hasRendered&&G0($.series,function($){if($.type===_.type)$.isDirty=!0});y.prototype.remove.apply(_,arguments)}});h.column=H;G1.bar=X(G1.column);R=g0(H,{type:"bar",inverted:!0});h.bar=R;G1.scatter=X(o,{lineWidth:0,marker:{enabled:!0},tooltip:{headerFormat:"<span style=\"color:{point.color}\">\u25cf</span> <span style=\"font-size: 10px;\"> {series.name}</span><br/>",pointFormat:"x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>"}});R=g0(y,{type:"scatter",sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"],takeOrdinalPosition:!1,kdDimensions:2,drawGraph:function(){this.options.lineWidth&&y.prototype.drawGraph.call(this)}});h.scatter=R;G1.pie=X(o,{borderColor:"#FFFFFF",borderWidth:1,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{distance:30,enabled:!0,formatter:function(){return this.y===null?void 0:this.point.name},x:0},ignoreHiddenPoint:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,states:{hover:{brightness:0.1,shadow:!1}},stickyTracking:!1,tooltip:{followPointer:!0}});o={type:"pie",isCartesian:!1,pointClass:g0(d,{init:function(){d.prototype.init.apply(this,arguments);var _=this,$;_.name=Q0(_.name,"Slice");$=function($){_.slice($.type==="select")};l(_,"select",$);l(_,"unselect",$);return _},setVisible:function(D,B){var C=this,_=C.series,A=_.chart,$=_.options.ignoreHiddenPoint,B=Q0(B,$);if(D!==C.visible){C.visible=C.options.visible=D=D===W0?!C.visible:D;_.options.data[J(C,_.data)]=C.options;G0(["graphic","dataLabel","connector","shadowGroup"],function($){if(C[$])C[$][D?"show":"hide"](!0)});C.legendItem&&A.legend.colorizeItem(C,D);!D&&C.state==="hover"&&C.setState("");if($)_.isDirty=!0;B&&A.redraw()}},slice:function(B,_,A){var $=this.series;V1(A,$.chart);Q0(_,!0);this.sliced=this.options.sliced=B=P0(B)?B:!this.sliced;$.options.data[J(this,$.data)]=this.options;B=B?this.slicedTranslation:{translateX:0,translateY:0};this.graphic.animate(B);this.shadowGroup&&this.shadowGroup.animate(B)},haloPath:function(A){var $=this.shapeArgs,_=this.series.chart;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(_.plotLeft+$.x,_.plotTop+$.y,$.r+A,$.r+A,{innerR:this.shapeArgs.r,start:$.start,end:$.end})}}),requireSorting:!1,directTouch:!0,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],axisTypes:[],pointAttrToOptions:{stroke:"borderColor","stroke-width":"borderWidth",fill:"color"},animate:function(B){var _=this,A=_.points,$=_.startAngleRad;if(!B)G0(A,function(C){var B=C.graphic,A=C.shapeArgs;B&&(B.attr({r:C.startR||_.center[3]/2,start:$,end:$}),B.animate({r:A.r,start:A.start,end:A.end},_.options.animation))}),_.animate=null},updateTotals:function(){var D,B=0,C=this.points,_=C.length,A,$=this.options.ignoreHiddenPoint;for(D=0;D<_;D++)A=C[D],B+=$&&!A.visible?0:A.y;this.total=B;for(D=0;D<_;D++)A=C[D],A.percentage=B>0&&(A.visible||!$)?A.y/B*100:0,A.total=B},generatePoints:function(){y.prototype.generatePoints.call(this);this.updateTotals()},translate:function(E){this.generatePoints();var C=0,D=this.options,A=D.slicedOffset,B=A+D.borderWidth,$,_,L,M=D.startAngle||0,J=this.startAngleRad=x/180*(M-90),M=(this.endAngleRad=x/180*(Q0(D.endAngle,M+360)-90))-J,K=this.points,I=D.dataLabels.distance,D=D.ignoreHiddenPoint,F,H=K.length,G;if(!E)this.center=E=this.getCenter();this.getX=function($,_){L=t.asin(T0(($-E[1])/(E[2]/2+I),1));return E[0]+(_?-1:1)*s(L)*(E[2]/2+I)};for(F=0;F<H;F++){G=K[F];$=J+C*M;if(!D||G.visible)C+=G.percentage/100;_=J+C*M;G.shapeType="arc";G.shapeArgs={x:E[0],y:E[1],r:E[2]/2,innerR:E[3]/2,start:I0($*1000)/1000,end:I0(_*1000)/1000};L=(_+$)/2;L>1.5*x?L-=2*x:L<-x/2&&(L+=2*x);G.slicedTranslation={translateX:I0(s(L)*A),translateY:I0(S1(L)*A)};$=s(L)*E[2]/2;_=S1(L)*E[2]/2;G.tooltipPos=[E[0]+$*0.7,E[1]+_*0.7];G.half=L<-x/2||L>x/2?1:0;G.angle=L;B=T0(B,I/2);G.labelPos=[E[0]+$+s(L)*I,E[1]+_+S1(L)*I,E[0]+$+s(L)*B,E[1]+_+S1(L)*B,E[0]+$,E[1]+_,I<0?"center":G.half?"right":"left",L]}},drawGraph:null,drawPoints:function(){var E=this,C=E.chart.renderer,D,A,B=E.options.shadow,$,_,F;if(B&&!E.shadowGroup)E.shadowGroup=C.g("shadow").add(E.group);G0(E.points,function(G){if(G.y!==null){A=G.graphic;_=G.shapeArgs;$=G.shadowGroup;if(B&&!$)$=G.shadowGroup=C.g("shadow").add(E.shadowGroup);D=G.sliced?G.slicedTranslation:{translateX:0,translateY:0};$&&$.attr(D);if(A)A.setRadialReference(E.center).animate(K0(_,D));else{F={"stroke-linejoin":"round"};if(!G.visible)F.visibility="hidden";G.graphic=A=C[G.shapeType](_).setRadialReference(E.center).attr(G.pointAttr[G.selected?"select":""]).attr(F).attr(D).add(E.group).shadow(B,$)}}})},searchPoint:S0,sortByAngle:function(_,$){_.sort(function(A,_){return A.angle!==void 0&&(_.angle-A.angle)*$})},drawLegendSymbol:V.drawRectangle,getCenter:n0.getCenter,getSymbol:S0};o=g0(y,o);h.pie=o;y.prototype.drawDataLabels=function(){var E=this,C=E.options,D=C.cursor,A=C.dataLabels,B=E.points,$,_,H=E.hasRendered||0,I,F,G=E.chart.renderer;if(A.enabled||E._hasPointLabels)E.dlProcessOptions&&E.dlProcessOptions(A),F=E.plotGroup("dataLabelsGroup","data-labels",A.defer?"hidden":"visible",A.zIndex||6),Q0(A.defer,!0)&&(F.attr({opacity:+H}),H||l(E,"afterAnimate",function(){E.visible&&F.show();F[C.animation?"animate":"attr"]({opacity:1},{duration:200})})),_=A,G0(B,function(J){var P,N=J.dataLabel,M,L,K=J.connector,B=!0,H,O={};$=J.dlOptions||J.options&&J.options.dataLabels;P=Q0($&&$.enabled,_.enabled);if(N&&!P)J.dataLabel=N.destroy();else if(P){A=X(_,$);H=A.style;P=A.rotation;M=J.getLabelConfig();I=A.format?t0(A.format,M):A.formatter.call(M,A);H.color=Q0(A.color,H.color,E.color,"black");if(N){if(P0(I))N.attr({text:I}),B=!1;else if(J.dataLabel=N=N.destroy(),K)J.connector=K.destroy()}else if(P0(I)){N={fill:A.backgroundColor,stroke:A.borderColor,"stroke-width":A.borderWidth,r:A.borderRadius||0,rotation:P,padding:A.padding,zIndex:1};if(H.color==="contrast")O.color=A.inside||A.distance<0||C.stacking?G.getContrast(J.color||E.color):"#000000";if(D)O.cursor=D;for(L in N)N[L]===W0&&delete N[L];N=J.dataLabel=G[P?"text":"label"](I,0,-999,A.shape,null,null,A.useHTML).attr(N).css(K0(H,O)).add(F).shadow(A.shadow)}N&&E.alignDataLabel(J,N,A,null,B)}})};y.prototype.alignDataLabel=function(E,C,D,A,B){var $=this.chart,_=$.inverted,I=Q0(E.plotX,-999),J=Q0(E.plotY,-999),G=C.getBBox(),H=$.renderer.fontMetrics(D.style.fontSize).b,F=this.visible&&(E.series.forceDL||$.isInsidePlot(I,I0(J),_)||A&&$.isInsidePlot(I,_?A.x+1:A.y+A.height-1,_));if(F)A=K0({x:_?$.plotWidth-J:I,y:I0(_?$.plotHeight-I:J),width:0,height:0},A),K0(D,{width:G.width,height:G.height}),D.rotation?(E=$.renderer.rotCorr(H,D.rotation),C[B?"attr":"animate"]({x:A.x+D.x+A.width/2+E.x,y:A.y+D.y+A.height/2}).attr({align:D.align})):(C.align(D,null,A),_=C.alignAttr,Q0(D.overflow,"justify")==="justify"?this.justifyDataLabel(C,D,_,G,A,B):Q0(D.crop,!0)&&(F=$.isInsidePlot(_.x,_.y)&&$.isInsidePlot(_.x+G.width,_.y+G.height)),D.shape&&C.attr({anchorX:E.plotX,anchorY:E.plotY}));if(!F)X0(C),C.attr({y:-999}),C.placed=!1};y.prototype.justifyDataLabel=function(E,C,D,A,B,$){var _=this.chart,I=C.align,J=C.verticalAlign,G,H,F=E.box?0:E.padding||0;G=D.x+F;if(G<0)I==="right"?C.align="left":C.x=-G,H=!0;G=D.x+A.width-F;if(G>_.plotWidth)I==="left"?C.align="right":C.x=_.plotWidth-G,H=!0;G=D.y+F;if(G<0)J==="bottom"?C.verticalAlign="top":C.y=-G,H=!0;G=D.y+A.height-F;if(G>_.plotHeight)J==="top"?C.verticalAlign="bottom":C.y=_.plotHeight-G,H=!0;if(H)E.placed=!$,E.align(C,null,B)};if(h.pie)h.pie.prototype.drawDataLabels=function(){var U=this,S=U.data,T,Q=U.chart,R=U.options.dataLabels,O=Q0(R.connectorPadding,10),P=Q0(R.connectorWidth,1),a=Q.plotWidth,b=Q.plotHeight,Y,Z,X=Q0(R.softConnector,!0),V=R.distance,W=U.center,f=W[2]/2,e=W[1],d=V>0,h,c,g,_=[[],[]],E,D,A,C,I,B=[0,0,0,0],G=function(_,$){return $.y-_.y};if(U.visible&&(R.enabled||U._hasPointLabels)){y.prototype.drawDataLabels.apply(U);G0(S,function($){$.dataLabel&&$.visible&&_[$.half].push($)});for(C=2;C--;){var K=[],H=[],J=_[C],F=J.length,L;if(F){U.sortByAngle(J,C-0.5);for(I=S=0;!S&&J[I];)S=J[I]&&J[I].dataLabel&&(J[I].dataLabel.getBBox().height||21),I++;if(V>0){c=T0(e+f+V,Q.plotHeight);for(I=N0(0,e-f-V);I<=c;I+=S)K.push(I);c=K.length;if(F>c){T=[].concat(J);T.sort(G);for(I=F;I--;)T[I].rank=I;for(I=F;I--;)J[I].rank>=c&&J.splice(I,1);F=J.length}for(I=0;I<F;I++){T=J[I];g=T.labelPos;T=9999;var M,N;for(N=0;N<c;N++)M=i(K[N]-g[1]),M<T&&(T=M,L=N);if(L<I&&K[I]!==null)L=I;else for(c<F-I+L&&K[I]!==null&&(L=c-F+I);K[L]===null;)L++;H.push({i:L,y:K[L]});K[L]=null}H.sort(G)}for(I=0;I<F;I++){T=J[I];g=T.labelPos;h=T.dataLabel;A=T.visible===!1?"hidden":"inherit";T=g[1];if(V>0){if(c=H.pop(),L=c.i,D=c.y,T>D&&K[L+1]!==null||T<D&&K[L-1]!==null)D=T0(N0(0,T),Q.plotHeight)}else D=T;E=R.justify?W[0]+(C?-1:1)*(f+V):U.getX(D===e-f-V||D===e+f+V?T:D,C);h._attr={visibility:A,align:g[6]};h._pos={x:E+R.x+({left:O,right:-O}[g[6]]||0),y:D+R.y-10};h.connX=E;h.connY=D;if(this.options.size===null)c=h.width,E-c<O?B[3]=N0(I0(c-E+O),B[3]):E+c>a-O&&(B[1]=N0(I0(E+c-a+O),B[1])),D-S/2<0?B[0]=N0(I0(-D+S/2),B[0]):D+S/2>b&&(B[2]=N0(I0(D+S/2-b),B[2]))}}}if($(B)===0||this.verifyDataLabelOverflow(B))this.placeDataLabels(),d&&P&&G0(this.points,function($){Y=$.connector;g=$.labelPos;if((h=$.dataLabel)&&h._pos&&$.visible)A=h._attr.visibility,E=h.connX,D=h.connY,Z=X?["M",E+(g[6]==="left"?5:-5),D,"C",E,D,2*g[2]-g[4],2*g[3]-g[5],g[2],g[3],"L",g[4],g[5]]:["M",E+(g[6]==="left"?5:-5),D,"L",g[2],g[3],"L",g[4],g[5]],Y?(Y.animate({d:Z}),Y.attr("visibility",A)):$.connector=Y=U.chart.renderer.path(Z).attr({"stroke-width":P,stroke:R.connectorColor||$.color||"#606060",visibility:A}).add(U.dataLabelsGroup);else if(Y)$.connector=Y.destroy()})}},h.pie.prototype.placeDataLabels=function(){G0(this.points,function(_){var $=_.dataLabel;if($&&_.visible)(_=$._pos)?($.attr($._attr),$[$.moved?"animate":"attr"](_),$.moved=!0):$&&$.attr({y:-999})})},h.pie.prototype.alignDataLabel=S0,h.pie.prototype.verifyDataLabelOverflow=function(E){var C=this.center,D=this.options,A=D.center,B=D.minSize||80,$=B,_;A[0]!==null?$=N0(C[2]-N0(E[1],E[3]),B):($=N0(C[2]-E[1]-E[3],B),C[0]+=(E[3]-E[1])/2);A[1]!==null?$=N0(T0($,C[2]-N0(E[0],E[2])),B):($=N0(T0($,C[2]-E[0]-E[2]),B),C[1]+=(E[0]-E[2])/2);$<C[2]?(C[2]=$,C[3]=Math.min(/%$/.test(D.innerSize||0)?$*parseFloat(D.innerSize||0)/100:parseFloat(D.innerSize||0),$),this.translate(C),G0(this.points,function($){if($.dataLabel)$.dataLabel._pos=null}),this.drawDataLabels&&this.drawDataLabels()):_=!0;return _};if(h.column)h.column.prototype.alignDataLabel=function(E,C,D,A,B){var $=this.chart.inverted,_=E.series,G=E.dlBox||E.shapeArgs,H=Q0(E.below,E.plotY>Q0(this.translatedThreshold,_.yAxis.len)),F=Q0(D.inside,!!this.options.stacking);if(G&&(A=X(G),$&&(A={x:_.yAxis.len-A.y-A.height,y:_.xAxis.len-A.x-A.width,width:A.height,height:A.width}),!F))$?(A.x+=H?0:A.width,A.width=0):(A.y+=H?A.height:0,A.height=0);D.align=Q0(D.align,!$||F?"center":H?"right":"left");D.verticalAlign=Q0(D.verticalAlign,$||F?"middle":H?"top":"bottom");y.prototype.alignDataLabel.call(this,E,C,D,A,B)};(function(C){var A=C.Chart,B=C.each,$=C.pick,_=HighchartsAdapter.addEvent;A.prototype.callbacks.push(function(C){function A(){var _=[];B(C.series,function(D){var C=D.options.dataLabels,A=D.dataLabelCollections||["dataLabel"];(C.enabled||D._hasPointLabels)&&!C.allowOverlap&&D.visible&&B(A,function(A){B(D.points,function(B){if(B[A])B[A].labelrank=$(B.labelrank,B.shapeArgs&&B.shapeArgs.height),_.push(B[A])})})});C.hideOverlappingLabels(_)}A();_(C,"redraw",A)});A.prototype.hideOverlappingLabels=function(C){var A=C.length,$,_,G,H,F,D,E;for(_=0;_<A;_++)if($=C[_])$.oldOpacity=$.opacity,$.newOpacity=1;C.sort(function(_,$){return($.labelrank||0)-(_.labelrank||0)});for(_=0;_<A;_++){G=C[_];for($=_+1;$<A;++$)if(H=C[$],G&&H&&G.placed&&H.placed&&G.newOpacity!==0&&H.newOpacity!==0&&(F=G.alignAttr,D=H.alignAttr,E=2*(G.box?0:G.padding),F=!(D.x>F.x+(G.width-E)||D.x+(H.width-E)<F.x||D.y>F.y+(G.height-E)||D.y+(H.height-E)<F.y)))(G.labelrank<H.labelrank?G:H).newOpacity=0}B(C,function(A){var $,_;if(A){_=A.newOpacity;if(A.oldOpacity!==_&&A.placed)_?A.show(!0):$=function(){A.hide()},A.alignAttr.opacity=_,A[A.isOld?"animate":"attr"](A.alignAttr,null,$);A.isOld=!0}})}})(c);o=c.TrackerMixin={drawTrackerPoint:function(){var D=this,B=D.chart,C=B.pointer,_=D.options.cursor,A=_&&{cursor:_},$=function(A){for(var _=A.target,$;_&&!$;)$=_.point,_=_.parentNode;if($!==W0&&$!==B.hoverPoint)$.onMouseOver(A)};G0(D.points,function($){if($.graphic)$.graphic.element.point=$;if($.dataLabel)$.dataLabel.element.point=$});if(!D._hasTracking)G0(D.trackerGroups,function(_){if(D[_]&&(D[_].addClass("highcharts-tracker").on("mouseover",$).on("mouseout",function($){C.onTrackerMouseOut($)}).css(A),T1))D[_].on("touchstart",$)}),D._hasTracking=!0},drawTrackerGraph:function(){var E=this,C=E.options,D=C.trackByArea,A=[].concat(D?E.areaPath:E.graphPath),B=A.length,$=E.chart,_=$.pointer,K=$.renderer,L=$.options.tooltip.snap,I=E.tracker,J=C.cursor,H=J&&{cursor:J},J=E.singlePoints,F,G=function(){if($.hoverSeries!==E)E.onMouseOver()},M="rgba(192,192,192,"+(Y0?0.0001:0.002)+")";if(B&&!D)for(F=B+1;F--;)A[F]==="M"&&A.splice(F+1,0,A[F+1]-L,A[F+2],"L"),(F&&A[F]==="M"||F===B)&&A.splice(F,0,"L",A[F-2]+L,A[F-1]);for(F=0;F<J.length;F++)B=J[F],A.push("M",B.plotX-L,B.plotY,"L",B.plotX+L,B.plotY);I?I.attr({d:A}):(E.tracker=K.path(A).attr({"stroke-linejoin":"round",visibility:E.visible?"visible":"hidden",stroke:M,fill:D?M:v,"stroke-width":C.lineWidth+(D?0:2*L),zIndex:2}).add(E.group),G0([E.tracker,E.markerGroup],function($){$.addClass("highcharts-tracker").on("mouseover",G).on("mouseout",function($){_.onTrackerMouseOut($)}).css(H);if(T1)$.on("touchstart",G)}))}};if(h.column)H.prototype.drawTracker=o.drawTrackerPoint;if(h.pie)h.pie.prototype.drawTracker=o.drawTrackerPoint;if(h.scatter)R.prototype.drawTracker=o.drawTrackerPoint;K0(z.prototype,{setItemEvents:function(D,B,C,_,A){var $=this;(C?B:D.legendGroup).on("mouseover",function(){D.setState("hover");B.css($.options.itemHoverStyle)}).on("mouseout",function(){B.css(D.visible?_:A);D.setState()}).on("click",function($){var _=function(){D.setVisible&&D.setVisible()},$={browserEvent:$};D.firePointEvent?D.firePointEvent("legendItemClick",$,_):m(D,"legendItemClick",$,_)})},createCheckboxForItem:function($){$.checkbox=K("input",{type:"checkbox",checked:$.selected,defaultChecked:$.selected},this.options.itemCheckboxStyle,this.chart.container);l($.checkbox,"click",function(_){m($.series||$,"checkboxClick",{checked:_.target.checked,item:$},function(){$.select()})})}});w.legend.itemStyle.cursor="pointer";K0(Z.prototype,{showResetZoom:function(){var D=this,B=w.lang,C=D.options.chart.resetZoomButton,_=C.theme,A=_.states,$=C.relativeTo==="chart"?null:"plotBox";this.resetZoomButton=D.renderer.button(B.resetZoom,null,null,function(){D.zoomOut()},_,A&&A.hover).attr({align:C.position.align,title:B.resetZoomTitle}).add().align(C.position,!1,$)},zoomOut:function(){var $=this;m($,"selection",{resetSelection:!0},function(){$.zoom()})},zoom:function(C){var A,B=this.pointer,$=!1,_;!C||C.resetSelection?G0(this.axes,function($){A=$.zoom()}):G0(C.xAxis.concat(C.yAxis),function(C){var _=C.axis,D=_.isXAxis;if(B[D?"zoomX":"zoomY"]||B[D?"pinchX":"pinchY"])A=_.zoom(C.min,C.max),_.displayBtn&&($=!0)});_=this.resetZoomButton;if($&&!_)this.showResetZoom();else if(!$&&k0(_))this.resetZoomButton=_.destroy();A&&this.redraw(Q0(this.options.chart.animation,C&&C.animation,this.pointCount<100))},pan:function(C,A){var B=this,$=B.hoverPoints,_;$&&G0($,function($){$.setState()});G0(A==="xy"?[1,0]:[1],function(A){var $=C[A?"chartX":"chartY"],G=B[A?"xAxis":"yAxis"][0],H=B[A?"mouseDownX":"mouseDownY"],E=(G.pointRange||0)/2,F=G.getExtremes(),D=G.toValue(H-$,!0)+E,E=G.toValue(H+B[A?"plotWidth":"plotHeight"]-$,!0)-E,H=H>$;if(G.series.length&&(H||D>T0(F.dataMin,F.min))&&(!H||E<N0(F.dataMax,F.max)))G.setExtremes(D,E,!1,!1,{trigger:"pan"}),_=!0;B[A?"mouseDownX":"mouseDownY"]=$});_&&B.redraw(!1);g(B.container,{cursor:"move"})}});K0(d.prototype,{select:function(C,A){var B=this,$=B.series,_=$.chart,C=Q0(C,!B.selected);B.firePointEvent(C?"select":"unselect",{accumulate:A},function(){B.selected=B.options.selected=C;$.options.data[J(B,$.data)]=B.options;B.setState(C&&"select");A||G0(_.getSelectedPoints(),function(_){if(_.selected&&_!==B)_.selected=_.options.selected=!1,$.options.data[J(_,$.data)]=_.options,_.setState(""),_.firePointEvent("unselect")})})},onMouseOver:function(D,B){var C=this.series,_=C.chart,A=_.tooltip,$=_.hoverPoint;if(_.hoverSeries!==C)C.onMouseOver();if($&&$!==this)$.onMouseOut();if(this.series&&(this.firePointEvent("mouseOver"),A&&(!A.shared||C.noSharedTooltip)&&A.refresh(this,D),this.setState("hover"),!B))_.hoverPoint=this},onMouseOut:function(){var _=this.series.chart,$=_.hoverPoints;this.firePointEvent("mouseOut");if(!$||J(this,$)===-1)this.setState(),_.hoverPoint=null},importEvents:function(){if(!this.hasImportedEvents){var _=X(this.series.options.point,this.options).events,$;this.events=_;for($ in _)l(this,$,_[$]);this.hasImportedEvents=!0}},setState:function(E,C){var D=r(this.plotX),A=this.plotY,B=this.series,$=B.options.states,_=G1[B.type].marker&&B.options.marker,L=_&&!_.enabled,M=_&&_.states[E],J=M&&M.enabled===!1,K=B.stateMarkerGraphic,I=this.marker||{},F=B.chart,H=B.halo,G,E=E||"";G=this.pointAttr[E]||B.pointAttr[E];if(!(E===this.state&&!C||this.selected&&E!=="select"||$[E]&&$[E].enabled===!1||E&&(J||L&&M.enabled===!1)||E&&I.states&&I.states[E]&&I.states[E].enabled===!1)){if(this.graphic)_=_&&this.graphic.symbolName&&G.r,this.graphic.attr(X(G,_?{x:D-_,y:A-_,width:2*_,height:2*_}:{})),K&&K.hide();else{if(E&&M)if(_=M.radius,I=I.symbol||B.symbol,K&&K.currentSymbol!==I&&(K=K.destroy()),K)K[C?"animate":"attr"]({x:D-_,y:A-_});else if(I)B.stateMarkerGraphic=K=F.renderer.symbol(I,D-_,A-_,2*_,2*_).attr(G).add(B.markerGroup),K.currentSymbol=I;if(K)K[E&&F.isInsidePlot(D,A,F.inverted)?"show":"hide"](),K.element.point=this}if((D=$[E]&&$[E].halo)&&D.size){if(!H)B.halo=H=F.renderer.path().add(F.seriesGroup);H.attr(K0({fill:L0(this.color||B.color).setOpacity(D.opacity).get()},D.attributes))[C?"animate":"attr"]({d:this.haloPath(D.size)})}else H&&H.attr({d:[]});this.state=E}},haloPath:function(C){var A=this.series,B=A.chart,$=A.getPlotBox(),_=B.inverted;return B.renderer.symbols.circle($.translateX+(_?A.yAxis.len-this.plotY:this.plotX)-C,$.translateY+(_?A.xAxis.len-this.plotX:this.plotY)-C,C*2,C*2)}});K0(y.prototype,{onMouseOver:function(){var _=this.chart,$=_.hoverSeries;if($&&$!==this)$.onMouseOut();this.options.events.mouseOver&&m(this,"mouseOver");this.setState("hover");_.hoverSeries=this},onMouseOut:function(){var B=this.options,_=this.chart,A=_.tooltip,$=_.hoverPoint;_.hoverSeries=null;if($)$.onMouseOut();this&&B.events.mouseOut&&m(this,"mouseOut");A&&!B.stickyTracking&&(!A.shared||this.noSharedTooltip)&&A.hide();this.setState()},setState:function(C){var A=this.options,B=this.graph,$=A.states,_=A.lineWidth,A=0,C=C||"";if(this.state!==C&&(this.state=C,!($[C]&&$[C].enabled===!1)&&(C&&(_=$[C].lineWidth||_+($[C].lineWidthPlus||0)),B&&!B.dashstyle))){C={"stroke-width":_};for(B.attr(C);this["zoneGraph"+A];)this["zoneGraph"+A].attr(C),A+=1}},setVisible:function(E,C){var D=this,A=D.chart,B=D.legendItem,$,_=A.options.chart.ignoreHiddenSeries,F=D.visible;$=(D.visible=E=D.userOptions.visible=E===W0?!F:E)?"show":"hide";G0(["group","dataLabelsGroup","markerGroup","tracker"],function(_){if(D[_])D[_][$]()});if(A.hoverSeries===D||(A.hoverPoint&&A.hoverPoint.series)===D)D.onMouseOut();B&&A.legend.colorizeItem(D,E);D.isDirty=!0;D.options.stacking&&G0(A.series,function($){if($.options.stacking&&$.visible)$.isDirty=!0});G0(D.linkedSeries,function($){$.setVisible(E,!1)});if(_)A.isDirtyBox=!0;C!==!1&&A.redraw();m(D,$)},show:function(){this.setVisible(!0)},hide:function(){this.setVisible(!1)},select:function($){this.selected=$=$===W0?!this.selected:$;if(this.checkbox)this.checkbox.checked=$;m(this,$?"select":"unselect")},drawTracker:o.drawTrackerGraph});K0(c,{Color:L0,Point:d,Tick:C1,Renderer:W1,SVGElement:u,SVGRenderer:A1,arrayMin:U0,arrayMax:$,charts:B0,dateFormat:C0,error:r0,format:t0,pathAnim:J1,getOptions:function(){return w},hasBidiBug:$0,isTouchDevice:E1,setOptions:function($){w=X(!0,w,$);K1();return w},addEvent:l,removeEvent:A0,createElement:K,discardElement:a0,css:g,each:G0,map:D,merge:X,splat:z0,extendClass:g0,pInt:b,svg:Y0,canvas:F0,vml:!Y0&&!F0,product:"Highcharts",version:"4.1.9"})})()