(function(){function e(n,t){var i;n||(n={});for(i in t)n[i]=t[i];return n}function o(){for(var r=arguments.length,t={},i=function(n,t){var r,u;typeof n!="object"&&(n={});for(u in t)t.hasOwnProperty(u)&&(r=t[u],n[u]=r&&typeof r=="object"&&Object.prototype.toString.call(r)!=="[object Array]"&&typeof r.nodeType!="number"?i(n[u]||{},r):t[u]);return n},n=0;n<r;n++)t=i(t,arguments[n]);return t}function h(n,t){return parseInt(n,t||10)}function yt(n){return typeof n=="string"}function ft(n){return typeof n=="object"}function ir(n){return Object.prototype.toString.call(n)==="[object Array]"}function oi(n){return typeof n=="number"}function ti(n){return it.log(n)/it.LN10}function pt(n){return it.pow(10,n)}function wt(n,t){for(var i=n.length;i--;)if(n[i]===t){n.splice(i,1);break}}function r(n){return n!==f&&n!==null}function s(n,t,i){var u,f;if(yt(t))r(i)?n.setAttribute(t,i):n&&n.getAttribute&&(f=n.getAttribute(t));else if(r(t)&&ft(t))for(u in t)n.setAttribute(u,t[u]);return f}function gt(n){return ir(n)?n:[n]}function n(){for(var i=arguments,t,r=i.length,n=0;n<r;n++)if(t=i[n],typeof t!="undefined"&&t!==null)return t}function y(n,t){ai&&t&&t.opacity!==f&&(t.filter="alpha(opacity="+t.opacity*100+")"),e(n.style,t)}function et(n,t,i,r,u){return n=c.createElement(n),t&&e(n,t),u&&y(n,{padding:0,border:rt,margin:0}),i&&y(n,i),r&&r.appendChild(n),n}function bt(n,t){var i=function(){};return i.prototype=new n,e(i.prototype,t),i}function pi(n,t,i,r){var u=tt.lang,n=+n||0,f=t===-1?(n.toString().split(".")[1]||"").length:isNaN(t=w(t))?2:t,t=i===void 0?u.decimalPoint:i,r=r===void 0?u.thousandsSep:r,u=n<0?"-":"",i=String(h(n=w(n).toFixed(f))),e=i.length>3?i.length%3:0;return u+(e?i.substr(0,e)+r:"")+i.substr(e).replace(/(\d{3})(?=\d)/g,"$1"+r)+(f?t+w(n-i).toFixed(f).slice(2):"")}function wi(n,t){return Array((t||2)+1-String(n).length).join(0)+n}function su(n,t,i){var r=n[t];n[t]=function(){var n=Array.prototype.slice.call(arguments);return n.unshift(r),i.apply(this,n)}}function bi(n,t){for(var e="{",s=!1,i,r,o,u,f,h=[];(e=n.indexOf(e))!==-1;){if(i=n.slice(0,e),s){for(r=i.split(":"),o=r.shift().split("."),f=o.length,i=t,u=0;u<f;u++)i=i[o[u]];r.length&&(r=r.join(":"),o=/\.([0-9])/,u=tt.lang,f=void 0,/f$/.test(r)?(f=(f=r.match(o))?f[1]:-1,i=pi(i,f,u.decimalPoint,r.indexOf(",")>-1?u.thousandsSep:"")):i=tu(r,i))}h.push(i),n=n.slice(e+1),e=(s=!s)?"}":"{"}return h.push(n),h.join("")}function hu(n){return it.pow(10,nt(it.log(n)/it.LN10))}function cu(t,i,r,u){var f,r=n(r,1);for(f=t/r,i||(i=[1,2,2.5,5,10],u&&u.allowDecimals===!1&&(r===1?i=[1,2,5,10]:r<=.1&&(i=[1/r]))),u=0;u<i.length;u++)if(t=i[u],f<=(i[u]+(i[u+1]||i[u]))/2)break;return t*r}function uf(n,t){for(var r=t||[[yf,[1,2,5,10,20,25,50,100,200,500]],[bu,[1,2,5,10,15,30]],[iu,[1,2,5,10,15,30]],[lr,[1,2,3,4,6,8,12]],[yi,[1,2]],[ru,[1,2]],[ar,[1,2,3,4,6]],[nr,null]],u=r[r.length-1],f=v[u[0]],o=u[1],e=0;e<r.length;e++)if(u=r[e],f=v[u[0]],o=u[1],r[e+1]&&n<=(f*o[o.length-1]+v[r[e+1][0]])/2)break;return f===v[nr]&&n<5*f&&(o=[1,2,5]),r=cu(n/f,o,u[0]===nr?i(hu(n/f),1):1),{unitRange:f,count:r,unitName:u[0]}}function ff(i,u,f,o){var a=[],y={},p=tt.global.useUTC,l,s=new Date(u),h=i.unitRange,c=i.count;if(r(u)){h>=v[bu]&&(s.setMilliseconds(0),s.setSeconds(h>=v[iu]?0:c*nt(s.getSeconds()/c))),h>=v[iu]&&s[wf](h>=v[lr]?0:c*nt(s[ku]()/c)),h>=v[lr]&&s[bf](h>=v[yi]?0:c*nt(s[du]()/c)),h>=v[yi]&&s[nf](h>=v[ar]?1:c*nt(s[vr]()/c)),h>=v[ar]&&(s[kf](h>=v[nr]?0:c*nt(s[fu]()/c)),l=s[eu]()),h>=v[nr]&&(l-=l%c,s[df](l)),h===v[ru]&&s[nf](s[vr]()-s[gu]()+n(o,1)),u=1,l=s[eu]();for(var o=s.getTime(),w=s[fu](),b=s[vr](),k=p?0:(864e5+s.getTimezoneOffset()*6e4)%864e5;o<f;)a.push(o),h===v[nr]?o=uu(l+u*c,0):h===v[ar]?o=uu(l,w+u*c):!p&&(h===v[yi]||h===v[ru])?o=uu(l,w,b+u*c*(h===v[yi]?1:7)):o+=h*c,u++;a.push(o),t(tf(a,function(n){return h<=v[lr]&&n%v[yi]===k}),function(n){y[n]=yi})}return a.info=e(i,{higherRanks:y,totalRange:h*c}),a}function ef(){this.symbol=this.color=0}function of(n,t){for(var u=n.length,r,i=0;i<u;i++)n[i].ss_i=i;for(n.sort(function(n,i){return r=t(n,i),r===0?n.ss_i-i.ss_i:r}),i=0;i<u;i++)delete n[i].ss_i}function rr(n){for(var t=n.length,i=n[0];t--;)n[t]<i&&(i=n[t]);return i}function si(n){for(var t=n.length,i=n[0];t--;)n[t]>i&&(i=n[t]);return i}function ur(n,t){for(var i in n)n[i]&&n[i]!==t&&n[i].destroy&&n[i].destroy(),delete n[i]}function sr(n){nu||(nu=et(gi)),n&&nu.appendChild(n),nu.innerHTML=""}function ni(n,t){var i="Highcharts error #"+n+": www.highcharts.com/errors/"+n;if(t)throw i;else d.console&&console.log(i)}function kt(n){return parseFloat(n.toPrecision(14))}function fr(t,i){ki=n(t,i.animation)}function sf(){var r=tt.global.useUTC,t=r?"getUTC":"get",i=r?"setUTC":"set";uu=r?Date.UTC:function(t,i,r,u,f,e){return new Date(t,i,n(r,1),n(u,0),n(f,0),n(e,0)).getTime()},ku=t+"Minutes",du=t+"Hours",gu=t+"Day",vr=t+"Date",fu=t+"Month",eu=t+"FullYear",wf=i+"Minutes",bf=i+"Hours",nf=i+"Date",kf=i+"Month",df=i+"FullYear"}function hi(){}function er(n,t,i,r){this.axis=n,this.pos=t,this.type=i||"",this.isNew=!0,i||r||this.addLabel()}function lu(n,t){this.axis=n,t&&(this.options=t,this.id=t.id)}function hf(t,i,r,u,f,e){var o=t.chart.inverted;this.axis=t,this.isNegative=r,this.options=i,this.x=u,this.total=null,this.points={},this.stack=f,this.percent=e==="percent",this.alignOptions={align:i.align||(o?r?"left":"right":"center"),verticalAlign:i.verticalAlign||(o?"middle":r?"bottom":"top"),y:n(i.y,o?4:r?14:-6),x:n(i.x,o?r?-6:6:0)},this.textAlign=i.textAlign||(o?r?"right":"left":"center")}function pr(){this.init.apply(this,arguments)}function au(){this.init.apply(this,arguments)}function vu(n,t){this.init(n,t)}function wr(n,t){this.init(n,t)}function yu(){this.init.apply(this,arguments)}var f,c=document,d=window,it=Math,u=it.round,nt=it.floor,ci=it.ceil,i=it.max,a=it.min,w=it.abs,st=it.cos,at=it.sin,li=it.PI,hr=li/180,ii=navigator.userAgent,cf=d.opera,ai=/msie/i.test(ii)&&!cf,br=c.documentMode===8,kr=/AppleWebKit/.test(ii),dr=/Firefox/.test(ii),lf=/(Mobile|Android|Windows Phone)/.test(ii),vi="http://www.w3.org/2000/svg",ht=!!c.createElementNS&&!!c.createElementNS(vi,"svg").createSVGRect,ne=dr&&parseInt(ii.split("Firefox/")[1],10)<4,vt=!ht&&!ai&&!!c.createElement("canvas").getContext,cr,gr=c.documentElement.ontouchstart!==f,af={},pu=0,nu,tt,tu,ki,wu,v,ri=function(){},di=[],gi="div",rt="none",vf="rgba(192,192,192,"+(ht?.0001:.002)+")",yf="millisecond",bu="second",iu="minute",lr="hour",yi="day",ru="week",ar="month",nr="year",pf="stroke-width",uu,ku,du,gu,vr,fu,eu,wf,bf,nf,kf,df,ct={},p,ot,ut,ei,k,dt,gf,tr,g;d.Highcharts=d.Highcharts?ni(16,!0):{},tu=function(t,i,f){if(!r(i)||isNaN(i))return"Invalid date";var t=n(t,"%Y-%m-%d %H:%M:%S"),o=new Date(i),s,h=o[du](),a=o[gu](),v=o[vr](),c=o[fu](),y=o[eu](),l=tt.lang,p=l.weekdays,o=e({a:p[a].substr(0,3),A:p[a],d:wi(v),e:v,b:l.shortMonths[c],B:l.months[c],m:wi(c+1),y:y.toString().substr(2,2),Y:y,H:wi(h),I:wi(h%12||12),l:h%12||12,M:wi(o[ku]()),p:h<12?"AM":"PM",P:h<12?"am":"pm",S:wi(o.getSeconds()),L:wi(u(i%1e3),3)},Highcharts.dateFormats);for(s in o)for(;t.indexOf("%"+s)!==-1;)t=t.replace("%"+s,typeof o[s]=="function"?o[s](i):o[s]);return f?t.substr(0,1).toUpperCase()+t.substr(1):t},ef.prototype={wrapColor:function(n){this.color>=n&&(this.color=0)},wrapSymbol:function(n){this.symbol>=n&&(this.symbol=0)}},v=function(){for(var n=0,t=arguments,r=t.length,i={};n<r;n++)i[t[n++]]=t[n];return i}(yf,1,bu,1e3,iu,6e4,lr,36e5,yi,864e5,ru,6048e5,ar,26784e5,nr,31556952e3),wu={init:function(n,t,i){var t=t||"",r=n.shift,e=t.indexOf("C")>-1,u=e?7:3,f,t=t.split(" "),i=[].concat(i),o,s,h=function(n){for(f=n.length;f--;)n[f]==="M"&&n.splice(f+1,0,n[f+1],n[f+2],n[f+1],n[f+2])};if(e&&(h(t),h(i)),n.isArea&&(o=t.splice(t.length-6,6),s=i.splice(i.length-6,6)),r<=i.length/u&&t.length===i.length)for(;r--;)i=[].concat(i).splice(0,u).concat(i);if(n.shift=0,t.length)for(n=i.length;t.length<n;)r=[].concat(t).splice(t.length-u,u),e&&(r[u-6]=r[u-2],r[u-5]=r[u-1]),t=t.concat(r);return o&&(t=t.concat(o),i=i.concat(s)),[t,i]},step:function(n,t,i,r){var f=[],u=n.length;if(i===1)f=r;else if(u===t.length&&i<1)for(;u--;)r=parseFloat(n[u]),f[u]=isNaN(r)?n[u]:i*parseFloat(t[u]-r)+r;else f=t;return f}},function(n){d.HighchartsAdapter=d.HighchartsAdapter||n&&{init:function(t){var u=n.fx,e=u.step,i,r=n.Tween,o=r&&r.propHooks;i=n.cssHooks.opacity,n.extend(n.easing,{easeOutQuad:function(n,t,i,r,u){return-r*(t/=u)*(t-2)+i}}),n.each(["cur","_default","width","height","opacity"],function(n,t){var i=e,h,s;t==="cur"?i=u.prototype:t==="_default"&&r&&(i=o[t],t="set"),(h=i[t])&&(i[t]=function(i){return i=n?i:this,i.prop!=="align"?(s=i.elem,s.attr?s.attr(i.prop,t==="cur"?f:i.now):h.apply(this,arguments)):void 0})}),su(i,"get",function(n,t,i){return t.attr?t.opacity||0:n.call(this,t,i)}),i=function(n){var i=n.elem,r;n.started||(r=t.init(i,i.d,i.toD),n.start=r[0],n.end=r[1],n.started=!0),i.attr("d",t.step(n.start,n.end,n.pos,i.toD))},r?o.d={set:i}:e.d=i,this.each=Array.prototype.forEach?function(n,t){return Array.prototype.forEach.call(n,t)}:function(n,t){for(var i=0,r=n.length;i<r;i++)if(t.call(n[i],n[i],i,n)===!1)return i},n.fn.highcharts=function(){var r="Chart",t=arguments,n,i;return yt(t[0])&&(r=t[0],t=Array.prototype.slice.call(t,1)),n=t[0],n!==f&&(n.chart=n.chart||{},n.chart.renderTo=this[0],new Highcharts[r](n,t[1]),i=this),n===f&&(i=di[s(this[0],"data-highcharts-chart")]),i}},getScript:n.getScript,inArray:n.inArray,adapterRun:function(t,i){return n(t)[i]()},grep:n.grep,map:function(n,t){for(var r=[],i=0,u=n.length;i<u;i++)r[i]=t.call(n[i],n[i],i,n);return r},offset:function(t){return n(t).offset()},addEvent:function(t,i,r){n(t).bind(i,r)},removeEvent:function(t,i,r){var u=c.removeEventListener?"removeEventListener":"detachEvent";c[u]&&t&&!t[u]&&(t[u]=function(){}),n(t).unbind(i,r)},fireEvent:function(t,i,r,u){var f=n.Event(i),o="detached"+i,s;!ai&&r&&(delete r.layerX,delete r.layerY),e(f,r),t[i]&&(t[o]=t[i],t[i]=null),n.each(["preventDefault","stopPropagation"],function(n,t){var i=f[t];f[t]=function(){try{i.call(f)}catch(n){t==="preventDefault"&&(s=!0)}}}),n(t).trigger(f),t[o]&&(t[i]=t[o],t[o]=null),!u||f.isDefaultPrevented()||s||u(f)},washMouseEvent:function(n){var t=n.originalEvent||n;return t.pageX===f&&(t.pageX=n.pageX,t.pageY=n.pageY),t},animate:function(t,i,r){var u=n(t);t.style||(t.style={}),i.d&&(t.toD=i.d,i.d=1),u.stop(),i.opacity!==f&&t.attr&&(i.opacity+="px"),u.animate(i,r)},stop:function(t){n(t).stop()}}}(d.jQuery),ut=d.HighchartsAdapter,p=ut||{},ut&&ut.init.call(ut,wu);var ou=p.adapterRun,te=p.getScript,ui=p.inArray,t=p.each,tf=p.grep,ie=p.offset,or=p.map,b=p.addEvent,lt=p.removeEvent,l=p.fireEvent,re=p.washMouseEvent,rf=p.animate,yr=p.stop,p={enabled:!0,x:0,y:15,style:{color:"#666",cursor:"default",fontSize:"11px",lineHeight:"14px"}};tt={colors:"#2f7ed8,#0d233a,#8bbc21,#910000,#1aadce,#492970,#f28f43,#77a1e5,#c42525,#a6c96a".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/3.0.7/modules/canvas-tools.js",VMLRadialGradientURL:"http://code.highcharts.com/3.0.7/gfx/vml-radial-gradient.png"},chart:{borderColor:"#4572A7",borderRadius:5,defaultSeriesType:"line",ignoreHiddenSeries:!0,spacing:[10,10,15,10],style:{fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Verdana, Arial, Helvetica, sans-serif',fontSize:"12px"},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:"#274b6d",fontSize:"16px"}},subtitle:{text:"",align:"center",style:{color:"#4d759e"}},plotOptions:{line:{allowPointSelect:!1,showCheckbox:!1,animation:{duration:1e3},events:{},lineWidth:2,marker:{enabled:!0,lineWidth:0,radius:4,lineColor:"#FFFFFF",states:{hover:{enabled:!0},select:{fillColor:"#FFFFFF",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:o(p,{align:"center",enabled:!1,formatter:function(){return this.y===null?"":pi(this.y,-1)},verticalAlign:"bottom",y:0}),cropThreshold:300,pointRange:0,states:{hover:{marker:{}},select:{marker:{}}},stickyTracking:!0}},labels:{style:{position:"absolute",color:"#3E576F"}},legend:{enabled:!0,align:"center",layout:"horizontal",labelFormatter:function(){return this.name},borderWidth:1,borderColor:"#909090",borderRadius:5,navigation:{activeColor:"#274b6d",inactiveColor:"#CCC"},shadow:!1,itemStyle:{cursor:"pointer",color:"#274b6d",fontSize:"12px"},itemHoverStyle:{color:"#000"},itemHiddenStyle:{color:"#CCC"},itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},symbolWidth:16,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"1em"},style:{position:"absolute",backgroundColor:"white",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:ht,backgroundColor:"rgba(255, 255, 255, .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"},headerFormat:'<span style="font-size: 10px">{point.key}<\/span><br/>',pointFormat:'<span style="color:{series.color}">{series.name}<\/span>: <b>{point.y}<\/b><br/>',shadow:!0,snap:lf?25:10,style:{color:"#333333",cursor:"default",fontSize:"12px",padding:"8px",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"}}},ot=tt.plotOptions,ut=ot.line,sf();var ue=/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*\)/,fe=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/,ee=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,fi=function(n){var i=[],r,u;return function(n){n&&n.stops?u=or(n.stops,function(n){return fi(n[1])}):(r=ue.exec(n))?i=[h(r[1]),h(r[2]),h(r[3]),parseFloat(r[4],10)]:(r=fe.exec(n))?i=[h(r[1],16),h(r[2],16),h(r[3],16),1]:(r=ee.exec(n))&&(i=[h(r[1]),h(r[2]),h(r[3]),1])}(n),{get:function(r){var f;return u?(f=o(n),f.stops=[].concat(f.stops),t(u,function(n,t){f.stops[t]=[f.stops[t][0],n.get(r)]})):f=i&&!isNaN(i[0])?r==="rgb"?"rgb("+i[0]+","+i[1]+","+i[2]+")":r==="a"?i[3]:"rgba("+i.join(",")+")":n,f},brighten:function(n){if(u)t(u,function(t){t.brighten(n)});else if(oi(n)&&n!==0)for(var r=0;r<3;r++)i[r]+=h(n*255),i[r]<0&&(i[r]=0),i[r]>255&&(i[r]=255);return this},rgba:i,setOpacity:function(n){return i[3]=n,this}}};hi.prototype={init:function(n,t){this.element=t==="span"?et(t):c.createElementNS(vi,t),this.renderer=n,this.attrSetters={}},opacity:1,animate:function(t,i,r){i=n(i,ki,!0),yr(this),i?(i=o(i),r&&(i.complete=r),rf(this,t,i)):(this.attr(t),r&&r())},attr:function(t,u){var e,o,l,b,a=this.element,y=a.nodeName.toLowerCase(),k=this.renderer,v,g=this.attrSetters,p=this.shadows,nt,d,w=this;if(yt(t)&&r(u)&&(e=t,t={},t[e]=u),yt(t))e=t,y==="circle"?e={x:"cx",y:"cy"}[e]||e:e==="strokeWidth"&&(e="stroke-width"),w=s(a,e)||this[e]||0,e!=="d"&&e!=="visibility"&&e!=="fill"&&(w=parseFloat(w));else{for(e in t)if(v=!1,o=t[e],l=g[e]&&g[e].call(this,o,e),l!==!1){if(l!==f&&(o=l),e==="d")o&&o.join&&(o=o.join(" ")),/(NaN| {2}|^$)/.test(o)&&(o="M 0 0");else if(e==="x"&&y==="text")for(l=0;l<a.childNodes.length;l++)b=a.childNodes[l],s(b,"x")===s(a,"x")&&s(b,"x",o);else if(this.rotation&&(e==="x"||e==="y"))d=!0;else if(e==="fill")o=k.color(o,a,e);else if(y==="circle"&&(e==="x"||e==="y"))e={x:"cx",y:"cy"}[e]||e;else if(y==="rect"&&e==="r")s(a,{rx:o,ry:o}),v=!0;else if(e==="translateX"||e==="translateY"||e==="rotation"||e==="verticalAlign"||e==="scaleX"||e==="scaleY")v=d=!0;else if(e==="stroke")o=k.color(o,a,e);else if(e==="dashstyle"){if(e="stroke-dasharray",o=o&&o.toLowerCase(),o==="solid")o=rt;else if(o){for(o=o.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(","),l=o.length;l--;)o[l]=h(o[l])*n(t["stroke-width"],this["stroke-width"]);o=o.join(",")}}else e==="width"?o=h(o):e==="align"?(e="text-anchor",o={left:"start",center:"middle",right:"end"}[o]):e==="title"&&(l=a.getElementsByTagName("title")[0],l||(l=c.createElementNS(vi,"title"),a.appendChild(l)),l.textContent=o);if(e==="strokeWidth"&&(e="stroke-width"),(e==="stroke-width"||e==="stroke")&&(this[e]=o,this.stroke&&this["stroke-width"]?(s(a,"stroke",this.stroke),s(a,"stroke-width",this["stroke-width"]),this.hasStroke=!0):e==="stroke-width"&&o===0&&this.hasStroke&&(a.removeAttribute("stroke"),this.hasStroke=!1),v=!0),this.symbolName&&/^(x|y|width|height|r|start|end|innerR|anchorX|anchorY)/.test(e)&&(nt||(this.symbolAttr(t),nt=!0),v=!0),p&&/^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(e))for(l=p.length;l--;)s(p[l],e,e==="height"?i(o-(p[l].cutHeight||0),0):o);(e==="width"||e==="height")&&y==="rect"&&o<0&&(o=0),this[e]=o,e==="text"?(o!==this.textStr&&delete this.bBox,this.textStr=o,this.added&&k.buildText(this)):v||s(a,e,o)}d&&this.updateTransform()}return w},addClass:function(n){var t=this.element,i=s(t,"class")||"";return i.indexOf(n)===-1&&s(t,"class",i+" "+n),this},symbolAttr:function(i){var r=this;t("x,y,r,start,end,width,height,innerR,anchorX,anchorY".split(","),function(t){r[t]=n(i[t],r[t])}),r.attr({d:r.renderer.symbols[r.symbolName](r.x,r.y,r.width,r.height,r)})},clip:function(n){return this.attr("clip-path",n?"url("+this.renderer.url+"#"+n.id+")":rt)},crisp:function(n,t,i,r,f){var o,h={},e={},s,n=n||this.strokeWidth||this.attr&&this.attr("stroke-width")||0;s=u(n)%2/2,e.x=nt(t||this.x||0)+s,e.y=nt(i||this.y||0)+s,e.width=nt((r||this.width||0)-2*s),e.height=nt((f||this.height||0)-2*s),e.strokeWidth=n;for(o in e)this[o]!==e[o]&&(this[o]=h[o]=e[o]);return h},css:function(n){var i=this.element,r=this.textWidth=n&&n.width&&i.nodeName.toLowerCase()==="text"&&h(n.width),t,u="",f=function(n,t){return"-"+t.toLowerCase()};if(n&&n.color&&(n.fill=n.color),this.styles=n=e(this.styles,n),r&&delete n.width,ai&&!ht)y(this.element,n);else{for(t in n)u+=t.replace(/([A-Z])/g,f)+":"+n[t]+";";s(i,"style",u)}return r&&this.added&&this.renderer.buildText(this),this},on:function(n,t){var r=this,i=r.element;return gr&&n==="click"?(i.ontouchstart=function(n){r.touchEventFired=Date.now(),n.preventDefault(),t.call(i,n)},i.onclick=function(n){(ii.indexOf("Android")===-1||Date.now()-(r.touchEventFired||0)>1100)&&t.call(i,n)}):i["on"+n]=t,this},setRadialReference:function(n){return this.element.radialReference=n,this},translate:function(n,t){return this.attr({translateX:n,translateY:t})},invert:function(){return this.inverted=!0,this.updateTransform(),this},htmlCss:function(n){var t=this.element;return(t=n&&t.tagName==="SPAN"&&n.width)&&(delete n.width,this.textWidth=t,this.updateTransform()),this.styles=e(this.styles,n),y(this.element,n),this},htmlGetBBox:function(){var n=this.element,t=this.bBox;return t||(n.nodeName==="text"&&(n.style.position="absolute"),t=this.bBox={x:n.offsetLeft,y:n.offsetTop,width:n.offsetWidth,height:n.offsetHeight}),t},htmlUpdateTransform:function(){var f,p,u,e,o,s,w;if(this.added){var b=this.renderer,i=this.element,k=this.translateX||0,d=this.translateY||0,nt=this.x||0,tt=this.y||0,l=this.textAlign||"left",c={left:0,center:.5,right:1}[l],it=l&&l!=="left",u=this.shadows;if(y(i,{marginLeft:k,marginTop:d}),u&&t(u,function(n){y(n,{marginLeft:k+1,marginTop:d+1})}),this.inverted&&t(i.childNodes,function(n){b.invertChild(n,i)}),i.tagName==="SPAN"){u=this.rotation,f=0,o=1,s=0,e=h(this.textWidth);var a=this.xCorr||0,v=this.yCorr||0,g=[u,l,i.innerHTML,this.textWidth].join(",");g!==this.cTT&&(r(u)&&(f=u*hr,o=st(f),s=at(f),this.setSpanRotation(u,s,o)),f=n(this.elemWidth,i.offsetWidth),p=n(this.elemHeight,i.offsetHeight),f>e&&/[ \-]/.test(i.textContent||i.innerText)&&(y(i,{width:e+"px",display:"block",whiteSpace:"normal"}),f=e),e=b.fontMetrics(i.style.fontSize).b,a=o<0&&-f,v=s<0&&-p,w=o*s<0,a+=s*e*(w?1-c:c),v-=o*e*(u?w?c:1-c:1),it&&(a-=f*c*(o<0?-1:1),u&&(v-=p*c*(s<0?-1:1)),y(i,{textAlign:l})),this.xCorr=a,this.yCorr=v),y(i,{left:nt+a+"px",top:tt+v+"px"}),kr&&(p=i.offsetHeight),this.cTT=g}}else this.alignOnAdd=!0},setSpanRotation:function(n){var t={};t[ai?"-ms-transform":kr?"-webkit-transform":dr?"MozTransform":cf?"-o-transform":""]=t.transform="rotate("+n+"deg)",y(this.element,t)},updateTransform:function(){var t=this.translateX||0,i=this.translateY||0,u=this.scaleX,f=this.scaleY,e=this.inverted,o=this.rotation;e&&(t+=this.attr("width"),i+=this.attr("height")),t=["translate("+t+","+i+")"],e?t.push("rotate(90) scale(-1,1)"):o&&t.push("rotate("+o+" "+(this.x||0)+" "+(this.y||0)+")"),(r(u)||r(f))&&t.push("scale("+n(u,1)+" "+n(f,1)+")"),t.length&&s(this.element,"transform",t.join(" "))},toFront:function(){var n=this.element;return n.parentNode.appendChild(n),this},align:function(t,i,r){var e,f,o,h,s={};return f=this.renderer,o=f.alignedObjects,t?(this.alignOptions=t,this.alignByTranslate=i,!r||yt(r))&&(this.alignTo=e=r||"renderer",wt(o,this),o.push(this),r=null):(t=this.alignOptions,i=this.alignByTranslate,e=this.alignTo),r=n(r,f[e],f),e=t.align,f=t.verticalAlign,o=(r.x||0)+(t.x||0),h=(r.y||0)+(t.y||0),(e==="right"||e==="center")&&(o+=(r.width-(t.width||0))/{right:1,center:2}[e]),s[i?"translateX":"x"]=u(o),(f==="bottom"||f==="middle")&&(h+=(r.height-(t.height||0))/({bottom:1,middle:2}[f]||1)),s[i?"translateY":"y"]=u(h),this[this.placed?"animate":"attr"](s),this.placed=!0,this.alignAttr=s,this},getBBox:function(){var n=this.bBox,i=this.renderer,t,f=this.rotation,u,r;if(t=this.element,u=this.styles,r=f*hr,!n){if(t.namespaceURI===vi||i.forExport){try{n=t.getBBox?e({},t.getBBox()):{width:t.offsetWidth,height:t.offsetHeight}}catch(o){}(!n||n.width<0)&&(n={width:0,height:0})}else n=this.htmlGetBBox();i.isSVG&&(i=n.width,t=n.height,ai&&u&&u.fontSize==="11px"&&t.toPrecision(3)==="22.7"&&(n.height=t=14),f&&(n.width=w(t*at(r))+w(i*st(r)),n.height=w(t*st(r))+w(i*at(r)))),this.bBox=n}return n},show:function(){return this.attr({visibility:"visible"})},hide:function(){return this.attr({visibility:"hidden"})},fadeOut:function(n){var t=this;t.animate({opacity:0},{duration:n||150,complete:function(){t.hide()}})},add:function(n){var i=this.renderer,t=n||i,e=t.element||i.box,o=e.childNodes,f=this.element,u=s(f,"zIndex"),c;if(n&&(this.parentGroup=n),this.parentInverted=n&&n.inverted,this.textStr!==void 0&&i.buildText(this),u&&(t.handleZ=!0,u=h(u)),t.handleZ)for(t=0;t<o.length;t++)if(n=o[t],i=s(n,"zIndex"),n!==f&&(h(i)>u||!r(u)&&r(i))){e.insertBefore(f,n),c=!0;break}return c||e.appendChild(f),this.added=!0,l(this,"add"),this},safeRemoveChild:function(n){var t=n.parentNode;t&&t.removeChild(n)},destroy:function(){var n=this,i=n.element||{},f=n.shadows,r=n.renderer.isSVG&&i.nodeName==="SPAN"&&n.parentGroup,e,u;if(i.onclick=i.onmouseout=i.onmouseover=i.onmousemove=i.point=null,yr(n),n.clipPath&&(n.clipPath=n.clipPath.destroy()),n.stops){for(u=0;u<n.stops.length;u++)n.stops[u]=n.stops[u].destroy();n.stops=null}for(n.safeRemoveChild(i),f&&t(f,function(t){n.safeRemoveChild(t)});r&&r.div.childNodes.length===0;)i=r.parentGroup,n.safeRemoveChild(r.div),delete r.div,r=i;n.alignTo&&wt(n.renderer.alignedObjects,n);for(e in n)delete n[e];return null},shadow:function(t,r,u){var l=[],e,f,c=this.element,o,h,a,v;if(t){for(h=n(t.width,3),a=(t.opacity||.15)/h,v=this.parentInverted?"(-1,-1)":"("+n(t.offsetX,1)+", "+n(t.offsetY,1)+")",e=1;e<=h;e++)f=c.cloneNode(0),o=h*2+1-2*e,s(f,{isShadow:"true",stroke:t.color||"black","stroke-opacity":a*e,"stroke-width":o,transform:"translate"+v,fill:rt}),u&&(s(f,"height",i(s(f,"height")-o,0)),f.cutHeight=o),r?r.element.appendChild(f):c.parentNode.insertBefore(f,c),l.push(f);this.shadows=l}return this}},ei=function(){this.init.apply(this,arguments)},ei.prototype={Element:hi,init:function(n,t,i,r){var o=location,e,f,u;e=this.createElement("svg").attr({version:"1.1"}),f=e.element,n.appendChild(f),n.innerHTML.indexOf("xmlns")===-1&&s(f,"xmlns",vi),this.isSVG=!0,this.box=f,this.boxWrapper=e,this.alignedObjects=[],this.url=(dr||kr)&&c.getElementsByTagName("base").length?o.href.replace(/#.*?$/,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"",this.createElement("desc").add().element.appendChild(c.createTextNode("Created with Highcharts 3.0.7")),this.defs=this.createElement("defs").add(),this.forExport=r,this.gradients={},this.setSize(t,i,!1),dr&&n.getBoundingClientRect&&(this.subPixelFix=t=function(){y(n,{left:0,top:0}),u=n.getBoundingClientRect(),y(n,{left:ci(u.left)-u.left+"px",top:ci(u.top)-u.top+"px"})},t(),b(d,"resize",t))},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var n=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),ur(this.gradients||{}),this.gradients=null,n&&(this.defs=n.destroy()),this.subPixelFix&&lt(d,"resize",this.subPixelFix),this.alignedObjects=null},createElement:function(n){var t=new this.Element;return t.init(this,n),t},draw:function(){},buildText:function(i){for(var r=i.element,f=this,l=f.forExport,e=n(i.textStr,"").toString().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),a=r.childNodes,v=/style="([^"]+)"/,p=/href="(http[^"]+)"/,w=s(r,"x"),o=i.styles,u=i.textWidth,b=o&&o.lineHeight,k=a.length;k--;)r.removeChild(a[k]);u&&!i.added&&this.box.appendChild(r),e[e.length-1]===""&&e.pop(),t(e,function(n,e){var a,k=0,n=n.replace(/<span/g,"|||<span").replace(/<\/span>/g,"<\/span>|||");a=n.split("|||"),t(a,function(n){var d,t,nt;if((n!==""||a.length===1)&&(d={},t=c.createElementNS(vi,"tspan"),v.test(n)&&(nt=n.match(v)[1].replace(/(;| |^)color([ :])/,"$1fill$2"),s(t,"style",nt)),p.test(n)&&!l&&(s(t,"onclick",'location.href="'+n.match(p)[1]+'"'),y(t,{cursor:"pointer"})),n=(n.replace(/<(.|\n)*?>/g,"")||" ").replace(/&lt;/g,"<").replace(/&gt;/g,">"),n!==" "&&(t.appendChild(c.createTextNode(n)),k?d.dx=0:d.x=w,s(t,d),!k&&e&&(!ht&&l&&y(t,{display:"block"}),s(t,"dy",b||f.fontMetrics(/px$/.test(t.style.fontSize)?t.style.fontSize:o.fontSize).h,kr&&t.offsetHeight)),r.appendChild(t),k++,u)))for(var n=n.replace(/([^\^])-/g,"$1- ").split(" "),tt,g,d=i._clipHeight,it=[],rt=h(b||16),ut=1;n.length||it.length;)delete i.bBox,tt=i.getBBox(),g=tt.width,!ht&&f.forExport&&(g=f.measureSpanWidth(t.firstChild.data,i.styles)),tt=g>u,!tt||n.length===1?(n=it,it=[],n.length&&(ut++,d&&ut*rt>d?(n=["..."],i.attr("title",i.textStr)):(t=c.createElementNS(vi,"tspan"),s(t,{dy:rt,x:w}),nt&&s(t,"style",nt),r.appendChild(t),g>u&&(u=g)))):(t.removeChild(t.firstChild),it.unshift(n.pop())),n.length&&t.appendChild(c.createTextNode(n.join(" ").replace(/- /g,"-")))})})},button:function(n,t,i,r,u,f,s,h,c){var l=this.label(n,t,i,c,null,null,null,null,"button"),a=0,w,k,v,y,p,d,n={x1:0,y1:0,x2:0,y2:1},u=o({"stroke-width":1,stroke:"#CCCCCC",fill:{linearGradient:n,stops:[[0,"#FEFEFE"],[1,"#F6F6F6"]]},r:2,padding:5,style:{color:"black"}},u);return v=u.style,delete u.style,f=o(u,{stroke:"#68A",fill:{linearGradient:n,stops:[[0,"#FFF"],[1,"#ACF"]]}},f),y=f.style,delete f.style,s=o(u,{stroke:"#68A",fill:{linearGradient:n,stops:[[0,"#9BD"],[1,"#CDF"]]}},s),p=s.style,delete s.style,h=o(u,{style:{color:"#CCC"}},h),d=h.style,delete h.style,b(l.element,ai?"mouseover":"mouseenter",function(){a!==3&&l.attr(f).css(y)}),b(l.element,ai?"mouseout":"mouseleave",function(){a!==3&&(w=[u,f,s][a],k=[v,y,p][a],l.attr(w).css(k))}),l.setState=function(n){(l.state=a=n)?n===2?l.attr(s).css(p):n===3&&l.attr(h).css(d):l.attr(u).css(v)},l.on("click",function(){a!==3&&r.call(l)}).attr(u).css(e({cursor:"default"},v))},crispLine:function(n,t){return n[1]===n[4]&&(n[1]=n[4]=u(n[1])-t%2/2),n[2]===n[5]&&(n[2]=n[5]=u(n[2])+t%2/2),n},path:function(n){var t={fill:rt};return ir(n)?t.d=n:ft(n)&&e(t,n),this.createElement("path").attr(t)},circle:function(n,t,i){return n=ft(n)?n:{x:n,y:t,r:i},this.createElement("circle").attr(n)},arc:function(n,t,i,r,u,f){return ft(n)&&(t=n.y,i=n.r,r=n.innerR,u=n.start,f=n.end,n=n.x),n=this.symbol("arc",n||0,t||0,i||0,i||0,{innerR:r||0,start:u||0,end:f||0}),n.r=i,n},rect:function(n,t,r,u,f,e){return f=ft(n)?n.r:f,f=this.createElement("rect").attr({rx:f,ry:f,fill:rt}),f.attr(ft(n)?n:f.crisp(e,n,t,i(r,0),i(u,0)))},setSize:function(t,i,r){var u=this.alignedObjects,f=u.length;for(this.width=t,this.height=i,this.boxWrapper[n(r,!0)?"animate":"attr"]({width:t,height:i});f--;)u[f].align()},g:function(n){var t=this.createElement("g");return r(n)?t.attr({"class":"highcharts-"+n}):t},image:function(n,t,i,r,u){var f={preserveAspectRatio:rt};return arguments.length>1&&e(f,{x:t,y:i,width:r,height:u}),f=this.createElement("image").attr(f),f.element.setAttributeNS?f.element.setAttributeNS("http://www.w3.org/1999/xlink","href",n):f.element.setAttribute("hc-svg-href",n),f},symbol:function(n,t,i,r,f,o){var s,h=this.symbols[n],h=h&&h(u(t),u(i),r,f,o),a=/^url\((.*?)\)$/,c,l;return h?(s=this.path(h),e(s,{symbolName:n,x:t,y:i,width:r,height:f}),o&&e(s,o)):a.test(n)&&(l=function(n,t){n.element&&(n.attr({width:t[0],height:t[1]}),n.alignByTranslate||n.translate(u((r-t[0])/2),u((f-t[1])/2)))},c=n.match(a)[1],n=af[c],s=this.image(c).attr({x:t,y:i}),s.isImg=!0,n?l(s,n):(s.attr({width:0,height:0}),et("img",{onload:function(){l(s,af[c]=[this.width,this.height])},src:c}))),s},symbols:{circle:function(n,t,i,r){var u=.166*i;return["M",n+i/2,t,"C",n+i+u,t,n+i+u,t+r,n+i/2,t+r,"C",n-u,t+r,n-u,t,n+i/2,t,"Z"]},square:function(n,t,i,r){return["M",n,t,"L",n+i,t,n+i,t+r,n,t+r,"Z"]},triangle:function(n,t,i,r){return["M",n+i/2,t,"L",n+i,t+r,n,t+r,"Z"]},"triangle-down":function(n,t,i,r){return["M",n,t,"L",n+i,t,n+i/2,t+r,"Z"]},diamond:function(n,t,i,r){return["M",n+i/2,t,"L",n+i,t+r/2,n+i/2,t+r,n,t+r/2,"Z"]},arc:function(n,t,i,r,u){var e=u.start,i=u.r||i||r,f=u.end-.001,r=u.innerR,o=u.open,s=st(e),h=at(e),c=st(f),f=at(f),u=u.end-e<li?0:1;return["M",n+i*s,t+i*h,"A",i,i,0,u,1,n+i*c,t+i*f,o?"M":"L",n+r*c,t+r*f,"A",r,r,0,u,0,n+r*s,t+r*h,o?"":"Z"]}},clipRect:function(n,t,i,r){var u="highcharts-"+pu++,f=this.createElement("clipPath").attr({id:u}).add(this.defs),n=this.rect(n,t,i,r,0).add(f);return n.id=u,n.clipPath=f,n},color:function(n,i,u){var l=this,h,b=/^rgba/,f,a,v,y,p,w,c,e=[];if(n&&n.linearGradient?f="linearGradient":n&&n.radialGradient&&(f="radialGradient"),f){u=n[f],a=l.gradients,y=n.stops,i=i.radialReference,ir(u)&&(n[f]=u={x1:u[0],y1:u[1],x2:u[2],y2:u[3],gradientUnits:"userSpaceOnUse"}),f==="radialGradient"&&i&&!r(u.gradientUnits)&&(u=o(u,{cx:i[0]-i[2]/2+u.cx*i[2],cy:i[1]-i[2]/2+u.cy*i[2],r:u.r*i[2],gradientUnits:"userSpaceOnUse"}));for(c in u)c!=="id"&&e.push(c,u[c]);for(c in y)e.push(y[c]);return e=e.join(","),a[e]?n=a[e].id:(u.id=n="highcharts-"+pu++,a[e]=v=l.createElement(f).attr(u).add(l.defs),v.stops=[],t(y,function(n){b.test(n[1])?(h=fi(n[1]),p=h.get("rgb"),w=h.get("a")):(p=n[1],w=1),n=l.createElement("stop").attr({offset:n[0],"stop-color":p,"stop-opacity":w}).add(v),v.stops.push(n)})),"url("+l.url+"#"+n+")"}return b.test(n)?(h=fi(n),s(i,u+"-opacity",h.get("a")),h.get("rgb")):(i.removeAttribute(u+"-opacity"),n)},text:function(t,i,r,f){var e=tt.chart.style,o=vt||!ht&&this.forExport;return f&&!this.forExport?this.html(t,i,r):(i=u(n(i,0)),r=u(n(r,0)),t=this.createElement("text").attr({x:i,y:r,text:t}).css({fontFamily:e.fontFamily,fontSize:e.fontSize}),o&&t.css({position:"absolute"}),t.x=i,t.y=r,t)},html:function(n,i,r){var c=tt.chart.style,f=this.createElement("span"),o=f.attrSetters,h=f.element,l=f.renderer;return o.text=function(n){return n!==h.innerHTML&&delete this.bBox,h.innerHTML=n,!1},o.x=o.y=o.align=function(n,t){return t==="align"&&(t="textAlign"),f[t]=n,f.htmlUpdateTransform(),!1},f.attr({text:n,x:u(i),y:u(r)}).css({position:"absolute",whiteSpace:"nowrap",fontFamily:c.fontFamily,fontSize:c.fontSize}),f.css=f.htmlCss,l.isSVG&&(f.add=function(n){var i,r=l.box.parentNode,u=[];if(this.parentGroup=n){if(i=n.div,!i){for(;n;)u.push(n),n=n.parentGroup;t(u.reverse(),function(n){var t;i=n.div=n.div||et(gi,{className:s(n.element,"class")},{position:"absolute",left:(n.translateX||0)+"px",top:(n.translateY||0)+"px"},i||r),t=i.style,e(n.attrSetters,{translateX:function(n){t.left=n+"px"},translateY:function(n){t.top=n+"px"},visibility:function(n,i){t[i]=n}})})}}else i=r;return i.appendChild(h),f.added=!0,f.alignOnAdd&&f.htmlUpdateTransform(),f}),f},fontMetrics:function(n){var n=h(n||11),n=n<24?n+4:u(n*1.2),t=u(n*.8);return{h:n,b:t}},label:function(n,i,s,h,c,l,a,v,y){function yt(){var n,t;n=w.element.style,g=(tt===void 0||st===void 0||p.styles.textAlign)&&w.getBBox(),p.width=(tt||g.width||0)+2*d+et,p.height=(st||g.height||0)+2*d,at=d+nt.fontMetrics(n&&n.fontSize).b,vt&&(k||(n=u(-ft*d),t=v?-at:0,p.box=k=h?nt.symbol(h,n,t,p.width,p.height,rt):nt.rect(n,t,p.width,p.height,0,rt[pf]),k.add(p)),k.isImg||k.attr(o({width:p.width,height:p.height},rt)),rt=null)}function ut(){var n=p.styles,n=n&&n.textAlign,t=et+d*(1-ft),i;i=v?0:at,r(tt)&&(n==="center"||n==="right")&&(t+={center:.5,right:1}[n]*(tt-g.width)),(t!==w.x||i!==w.y)&&w.attr({x:t,y:i}),w.x=t,w.y=i}function it(n,t){k?k.attr(n,t):rt[n]=t}function ot(){w.add(p),p.attr({text:n,x:i,y:s}),k&&r(c)&&p.attr({anchorX:c,anchorY:l})}var nt=this,p=nt.g(y),w=nt.text("",0,0,a).attr({zIndex:1}),k,g,ft=0,d=3,et=0,tt,st,ht,ct,pt=0,rt={},at,a=p.attrSetters,vt,wt;return b(p,"add",ot),a.width=function(n){return tt=n,!1},a.height=function(n){return st=n,!1},a.padding=function(n){return r(n)&&n!==d&&(d=n,ut()),!1},a.paddingLeft=function(n){return r(n)&&n!==et&&(et=n,ut()),!1},a.align=function(n){return ft={left:0,center:.5,right:1}[n],!1},a.text=function(n,t){return w.attr(t,n),yt(),ut(),!1},a[pf]=function(n,t){return vt=!0,pt=n%2/2,it(t,n),!1},a.stroke=a.fill=a.r=function(n,t){return t==="fill"&&(vt=!0),it(t,n),!1},a.anchorX=function(n,t){return c=n,it(t,n+pt-ht),!1},a.anchorY=function(n,t){return l=n,it(t,n-ct),!1},a.x=function(n){return p.x=n,n-=ft*((tt||g.width)+d),ht=u(n),p.attr("translateX",ht),!1},a.y=function(n){return ct=p.y=u(n),p.attr("translateY",ct),!1},wt=p.css,e(p,{css:function(n){if(n){var i={},n=o(n);t("fontSize,fontWeight,fontFamily,color,lineHeight,width,textDecoration,textShadow".split(","),function(t){n[t]!==f&&(i[t]=n[t],delete n[t])}),w.css(i)}return wt.call(p,n)},getBBox:function(){return{width:g.width+2*d,height:g.height+2*d,x:g.x-d,y:g.y-d}},shadow:function(n){return k&&k.shadow(n),p},destroy:function(){lt(p,"add",ot),lt(p.element,"mouseenter"),lt(p.element,"mouseleave"),w&&(w=w.destroy()),k&&(k=k.destroy()),hi.prototype.destroy.call(p),p=nt=yt=ut=it=ot=null}})}},cr=ei,ht||vt||(Highcharts.VMLElement=k={init:function(n,t){var i=["<",t,' filled="f" stroked="f"'],r=["position: ","absolute",";"],u=t===gi;(t==="shape"||u)&&r.push("left:0;top:0;width:1px;height:1px;"),r.push("visibility: ",u?"hidden":"visible"),i.push(' style="',r.join(""),'"/>'),t&&(i=u||t==="span"||t==="img"?i.join(""):n.prepVML(i),this.element=et(i)),this.renderer=n,this.attrSetters={}},add:function(n){var i=this.renderer,r=this.element,t=i.box,t=n?n.element||n:t;return n&&n.inverted&&i.invertChild(r,t),t.appendChild(r),this.added=!0,this.alignOnAdd&&!this.deferUpdateTransform&&this.updateTransform(),l(this,"add"),this},updateTransform:hi.prototype.htmlUpdateTransform,setSpanRotation:function(n,t,i){y(this.element,{filter:n?["progid:DXImageTransform.Microsoft.Matrix(M11=",i,", M12=",-t,", M21=",t,", M22=",i,", sizingMethod='auto expand')"].join(""):rt})},pathToVML:function(n){for(var t=n.length,i=[],r;t--;)oi(n[t])?i[t]=u(n[t]*10)-5:n[t]==="Z"?i[t]="x":(i[t]=n[t],n.isArc&&(n[t]==="wa"||n[t]==="at"))&&(r=n[t]==="wa"?1:-1,i[t+5]===i[t+7]&&(i[t+7]-=r),i[t+6]===i[t+8]&&(i[t+8]-=r));return i.join(" ")||"x"},attr:function(n,t){var e,o,c,h=this.element||{},v=h.style,y=h.nodeName,p=this.renderer,d=this.symbolName,w,a=this.shadows,l,b=this.attrSetters,k=this;if(yt(n)&&r(t)&&(e=n,n={},n[e]=t),yt(n))e=n,k=e==="strokeWidth"||e==="stroke-width"?this.strokeweight:this[e];else for(e in n)if(o=n[e],l=!1,c=b[e]&&b[e].call(this,o,e),c!==!1&&o!==null){if(c!==f&&(o=c),d&&/^(x|y|r|start|end|width|height|innerR|anchorX|anchorY)/.test(e))w||(this.symbolAttr(n),w=!0),l=!0;else if(e==="d"){if(o=o||[],this.d=o.join(" "),h.path=o=this.pathToVML(o),a)for(c=a.length;c--;)a[c].path=a[c].cutOff?this.cutOffPath(o,a[c].cutOff):o;l=!0}else if(e==="visibility"){if(a)for(c=a.length;c--;)a[c].style[e]=o;y==="DIV"&&(o=o==="hidden"?"-999em":0,br||(v[e]=o?"visible":"hidden"),e="top"),v[e]=o,l=!0}else e==="zIndex"?(o&&(v[e]=o),l=!0):ui(e,["x","y","width","height"])!==-1?(this[e]=o,e==="x"||e==="y"?e={x:"left",y:"top"}[e]:o=i(0,o),this.updateClipping?(this[e]=o,this.updateClipping()):v[e]=o,l=!0):e==="class"&&y==="DIV"?h.className=o:e==="stroke"?(o=p.color(o,h,e),e="strokecolor"):e==="stroke-width"||e==="strokeWidth"?(h.stroked=o?!0:!1,e="strokeweight",this[e]=o,oi(o)&&(o+="px")):e==="dashstyle"?((h.getElementsByTagName("stroke")[0]||et(p.prepVML(["<stroke/>"]),null,null,h))[e]=o||"solid",this.dashstyle=o,l=!0):e==="fill"?y==="SPAN"?v.color=o:y!=="IMG"&&(h.filled=o!==rt?!0:!1,o=p.color(o,h,e,this),e="fillcolor"):e==="opacity"?l=!0:y==="shape"&&e==="rotation"?(this[e]=h.style[e]=o,h.style.left=-u(at(o*hr)+1)+"px",h.style.top=u(st(o*hr))+"px"):e==="translateX"||e==="translateY"||e==="rotation"?(this[e]=o,this.updateTransform(),l=!0):e==="text"&&(this.bBox=null,h.innerHTML=o,l=!0);l||(br?h[e]=o:s(h,e,o))}return k},clip:function(n){var t=this,i;return n?(i=n.members,wt(i,t),i.push(t),t.destroyClip=function(){wt(i,t)},n=n.getCSS(t)):(t.destroyClip&&t.destroyClip(),n={clip:br?"inherit":"rect(auto)"}),t.css(n)},css:hi.prototype.htmlCss,safeRemoveChild:function(n){n.parentNode&&sr(n)},destroy:function(){return this.destroyClip&&this.destroyClip(),hi.prototype.destroy.apply(this)},on:function(n,t){return this.element["on"+n]=function(){var n=d.event;n.target=n.srcElement,t(n)},this},cutOffPath:function(n,t){var i,n=n.split(/[ ,]/);return i=n.length,(i===9||i===11)&&(n[i-4]=n[i-2]=h(n[i-2])-10*t),n.join(" ")},shadow:function(t,i,r){var v=[],f,e=this.element,y=this.renderer,u,p=e.style,s,o=e.path,c,l,a,w;if(o&&typeof o.value!="string"&&(o="x"),l=o,t){for(a=n(t.width,3),w=(t.opacity||.15)/a,f=1;f<=3;f++)c=a*2+1-2*f,r&&(l=this.cutOffPath(o.value,c+.5)),s=['<shape isShadow="true" strokeweight="',c,'" filled="false" path="',l,'" coordsize="10 10" style="',e.style.cssText,'" />'],u=et(y.prepVML(s),null,{left:h(p.left)+n(t.offsetX,1),top:h(p.top)+n(t.offsetY,1)}),r&&(u.cutOff=c+1),s=['<stroke color="',t.color||"black",'" opacity="',w*f,'"/>'],et(y.prepVML(s),null,null,u),i?i.element.appendChild(u):e.parentNode.insertBefore(u,e),v.push(u);this.shadows=v}return this}},k=bt(hi,k),dt={Element:k,isIE8:ii.indexOf("MSIE 8.0")>-1,init:function(n,t,i){var r,u;if(this.alignedObjects=[],r=this.createElement(gi),u=r.element,u.style.position="relative",n.appendChild(r.element),this.isVML=!0,this.box=u,this.boxWrapper=r,this.setSize(t,i,!1),!c.namespaces.hcv){c.namespaces.add("hcv","urn:schemas-microsoft-com:vml");try{c.createStyleSheet().cssText="hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } "}catch(f){c.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(n,i,r,f){var s=this.createElement(),o=ft(n);return e(s,{members:[],left:(o?n.x:n)+1,top:(o?n.y:i)+1,width:(o?n.width:r)-1,height:(o?n.height:f)-1,getCSS:function(n){var t=n.element,o=t.nodeName,n=n.inverted,i=this.top-(o==="shape"?t.offsetTop:0),r=this.left,t=r+this.width,f=i+this.height,i={clip:"rect("+u(n?r:i)+"px,"+u(n?f:t)+"px,"+u(n?t:f)+"px,"+u(n?i:r)+"px)"};return!n&&br&&o==="DIV"&&e(i,{width:t+"px",height:f+"px"}),i},updateClipping:function(){t(s.members,function(n){n.css(s.getCSS(n))})}})},color:function(n,i,r,u){var at=this,s,k=/^rgba/,v,c,f=rt;if(n&&n.linearGradient?c="gradient":n&&n.radialGradient&&(c="pattern"),c){var h,y,e=n.linearGradient||n.radialGradient,l,d,g,nt,ut,p="",n=n.stops,w,ft=[],ot=function(){v=['<fill colors="'+ft.join(",")+'" opacity="',g,'" o:opacity2="',d,'" type="',c,'" ',p,'focus="100%" method="any" />'],et(at.prepVML(v),null,null,i)};if(l=n[0],w=n[n.length-1],l[0]>0&&n.unshift([0,l[1]]),w[0]<1&&n.push([1,w[1]]),t(n,function(n,t){k.test(n[1])?(s=fi(n[1]),h=s.get("rgb"),y=s.get("a")):(h=n[1],y=1),ft.push(n[0]*100+"% "+h),t?(g=y,nt=h):(d=y,ut=h)}),r==="fill")if(c==="gradient")r=e.x1||e[0]||0,n=e.y1||e[1]||0,l=e.x2||e[2]||0,e=e.y2||e[3]||0,p='angle="'+(90-it.atan((e-n)/(l-r))*180/li)+'"',ot();else{var f=e.r,st=f*2,ht=f*2,ct=e.cx,lt=e.cy,a=i.radialReference,o,f=function(){a&&(o=u.getBBox(),ct+=(a[0]-o.x)/o.width-.5,lt+=(a[1]-o.y)/o.height-.5,st*=a[2]/o.width,ht*=a[2]/o.height),p='src="'+tt.global.VMLRadialGradientURL+'" size="'+st+","+ht+'" origin="0.5,0.5" position="'+ct+","+lt+'" color2="'+ut+'" ',ot()};u.added?f():b(u,"add",f),f=nt}else f=h}else k.test(n)&&i.tagName!=="IMG"?(s=fi(n),v=["<",r,' opacity="',s.get("a"),'"/>'],et(this.prepVML(v),null,null,i),f=s.get("rgb")):(f=i.getElementsByTagName(r),f.length&&(f[0].opacity=1,f[0].type="solid"),f=n);return f},prepVML:function(n){var t=this.isIE8,n=n.join("");return t?(n=n.replace("/>",' xmlns="urn:schemas-microsoft-com:vml" />'),n=n.indexOf('style="')===-1?n.replace("/>",' style="display:inline-block;behavior:url(#default#VML);" />'):n.replace('style="','style="display:inline-block;behavior:url(#default#VML);')):n=n.replace("<","<hcv:"),n},text:ei.prototype.html,path:function(n){var t={coordsize:"10 10"};return ir(n)?t.d=n:ft(n)&&e(t,n),this.createElement("shape").attr(t)},circle:function(n,t,i){var r=this.symbol("circle");return ft(n)&&(i=n.r,t=n.y,n=n.x),r.isCircle=!0,r.r=i,r.attr({x:n,y:t})},g:function(n){var t;return n&&(t={className:"highcharts-"+n,"class":"highcharts-"+n}),this.createElement(gi).attr(t)},image:function(n,t,i,r,u){var f=this.createElement("img").attr({src:n});return arguments.length>1&&f.attr({x:t,y:i,width:r,height:u}),f},rect:function(n,t,r,u,f,e){var o=this.symbol("rect");return o.r=ft(n)?n.r:f,o.attr(ft(n)?n:o.crisp(e,n,t,i(r,0),i(u,0)))},invertChild:function(n,t){var i=t.style;y(n,{flip:"x",left:h(i.width)-1,top:h(i.height)-1,rotation:-90})},symbols:{arc:function(n,t,i,r,u){var f=u.start,o=u.end,e=u.r||i||r,i=u.innerR,r=st(f),s=at(f),h=st(o),c=at(o);return o-f==0?["x"]:(f=["wa",n-e,t-e,n+e,t+e,n+e*r,t+e*s,n+e*h,t+e*c],u.open&&!i&&f.push("e","M",n,t),f.push("at",n-i,t-i,n+i,t+i,n+i*h,t+i*c,n+i*r,t+i*s,"x","e"),f.isArc=!0,f)},circle:function(n,t,i,r,u){return u&&(i=r=2*u.r),u&&u.isCircle&&(n-=i/2,t-=r/2),["wa",n,t,n+i,t+r,n+i,t+r/2,n+i,t+r/2,"e"]},rect:function(n,t,i,u,f){var o=n+i,s=t+u,e;return!r(f)||!f.r?o=ei.prototype.symbols.square.apply(0,arguments):(e=a(f.r,i,u),o=["M",n+e,t,"L",o-e,t,"wa",o-2*e,t,o,t+2*e,o-e,t,o,t+e,"L",o,s-e,"wa",o-2*e,s-2*e,o,s,o,s-e,o-e,s,"L",n+e,s,"wa",n,s-2*e,n+2*e,s,n+e,s,n,s-e,"L",n,t+e,"wa",n,t,n+2*e,t+2*e,n,t+e,n+e,t,"x","e"]),o}}},Highcharts.VMLRenderer=k=function(){this.init.apply(this,arguments)},k.prototype=o(ei.prototype,dt),cr=k),ei.prototype.measureSpanWidth=function(n,t){var i=c.createElement("span"),r=c.createTextNode(n);return i.appendChild(r),y(i,t),this.box.appendChild(i),i.offsetWidth},vt&&(Highcharts.CanVGRenderer=k=function(){vi="http://www.w3.org/1999/xhtml"},k.prototype.symbols={},gf=function(){function t(){for(var i=n.length,t=0;t<i;t++)n[t]();n=[]}var n=[];return{push:function(i,r){n.length===0&&te(r,t),n.push(i)}}}(),cr=k),er.prototype={addLabel:function(){var t=this.axis,h=t.options,v=t.chart,c=t.horiz,s=t.categories,y=t.names,f=this.pos,o=h.labels,l=t.tickPositions,c=c&&s&&!o.step&&!o.staggerLines&&!o.rotation&&v.plotWidth/l.length||!c&&(v.margin[3]||v.chartWidth*.33),w=f===l[0],b=f===l[l.length-1],a,y=s?n(s[f],y[f],f):f,s=this.label,p=l.info;t.isDatetimeAxis&&p&&(a=h.dateTimeLabelFormats[p.higherRanks[f]||p.unitName]),this.isFirst=w,this.isLast=b,h=t.labelFormatter.call({axis:t,chart:v,isFirst:w,isLast:b,dateTimeLabelFormat:a,value:t.isLog?kt(pt(y)):y}),f=c&&{width:i(1,u(c-2*(o.padding||10)))+"px"},f=e(f,o.style),r(s)?s&&s.attr({text:h}).css(f):(a={align:t.labelAlign},oi(o.rotation)&&(a.rotation=o.rotation),c&&o.ellipsis&&(a._clipHeight=t.len/l.length),this.label=r(h)&&o.enabled?v.renderer.text(h,0,0,o.useHTML).attr(a).css(f).add(t.labelGroup):null)},getLabelSize:function(){var n=this.label,t=this.axis;return n?(this.labelBBox=n.getBBox())[t.horiz?"height":"width"]:0},getLabelSides:function(){var n=this.axis,t=this.labelBBox.width,n=t*{left:0,center:.5,right:1}[n.labelAlign]-n.options.labels.x;return[-n,t-n]},handleOverflow:function(n,t){var s=!0,i=this.axis,f=i.chart,e=this.isFirst,c=this.isLast,r=t.x,l=i.reversed,o=i.tickPositions;if(e||c){var u=this.getLabelSides(),h=u[0],u=u[1],f=f.plotLeft,a=f+i.len,o=(i=i.ticks[o[n+(e?1:-1)]])&&i.label.xy&&i.label.xy.x+i.getLabelSides()[e?0:1];e&&!l||c&&l?r+h<f&&(r=f-h,i&&r+u>o&&(s=!1)):r+u>a&&(r=a-u,i&&r+h<o&&(s=!1)),t.x=r}return s},getPosition:function(n,t,i,r){var u=this.axis,f=u.chart,e=r&&f.oldChartHeight||f.chartHeight;return{x:n?u.translate(t+i,null,null,r)+u.transB:u.left+u.offset+(u.opposite?(r&&f.oldChartWidth||f.chartWidth)-u.right-u.left:0),y:n?e-u.bottom+u.offset-(u.opposite?u.height:0):e-u.translate(t+i,null,null,r)-u.transB}},getLabelPosition:function(n,t,i,u,f,e,o,s){var h=this.axis,v=h.transA,y=h.reversed,c=h.staggerLines,l=h.chart.renderer.fontMetrics(f.style.fontSize).b,a=f.rotation,n=n+f.x-(e&&u?e*v*(y?-1:1):0),t=t+f.y-(e&&!u?e*v*(y?1:-1):0);return a&&h.side===2&&(t-=l-l*st(a*hr)),r(f.y)||a||(t+=l-i.getBBox().height/2),c&&(t+=o/(s||1)%c*(h.labelOffset/c)),{x:n,y:t}},getMarkPath:function(n,t,i,r,u,f){return f.crispLine(["M",n,t,"L",n+(u?0:-i),t+(u?i:0)],r)},render:function(t,i,r){var u=this.axis,o=u.options,d=u.chart.renderer,l=u.horiz,y=this.type,p=this.label,a=this.pos,g=o.labels,s=this.gridLine,h=y?y+"Grid":"grid",c=y?y+"Tick":"tick",w=o[h+"LineWidth"],ut=o[h+"LineColor"],it=o[h+"LineDashStyle"],v=o[c+"Length"],h=o[c+"Width"]||0,ft=o[c+"Color"],et=o[c+"Position"],c=this.mark,nt=g.step,b=!0,tt=u.tickmarkOffset,e=this.getPosition(l,a,tt,i),k=e.x,e=e.y,rt=l&&k===u.pos+u.len||!l&&e===u.pos?-1:1,ot=u.staggerLines;this.isActive=!0,w&&(a=u.getPlotLinePath(a+tt,w*rt,i,!0),s===f&&(s={stroke:ut,"stroke-width":w},it&&(s.dashstyle=it),y||(s.zIndex=1),i&&(s.opacity=0),this.gridLine=s=w?d.path(a).attr(s).add(u.gridGroup):null),!i&&s&&a&&s[this.isNew?"attr":"animate"]({d:a,opacity:r})),h&&v&&(et==="inside"&&(v=-v),u.opposite&&(v=-v),i=this.getMarkPath(k,e,v,h*rt,l,d),c?c.animate({d:i,opacity:r}):this.mark=d.path(i).attr({stroke:ft,"stroke-width":h,opacity:r}).add(u.axisGroup)),p&&!isNaN(k)&&(p.xy=e=this.getLabelPosition(k,e,p,l,g,tt,t,nt),this.isFirst&&!this.isLast&&!n(o.showFirstLabel,1)||this.isLast&&!this.isFirst&&!n(o.showLastLabel,1)?b=!1:!ot&&l&&g.overflow==="justify"&&!this.handleOverflow(t,e)&&(b=!1),nt&&t%nt&&(b=!1),b&&!isNaN(e.y)?(e.opacity=r,p[this.isNew?"attr":"animate"](e),this.isNew=!1):p.attr("y",-9999))},destroy:function(){ur(this,this.axis)}},lu.prototype={render:function(){var h=this,f=h.axis,v=f.horiz,c=(f.pointRange||0)/2,u=h.options,e=u.label,l=h.label,b=u.width,p=u.to,w=u.from,s=r(w)&&r(p),k=u.value,nt=u.dashStyle,y=h.svgElem,t=[],tt,it=u.color,d=u.zIndex,g=u.events,rt=f.chart.renderer;if(f.isLog&&(w=ti(w),p=ti(p),k=ti(k)),b)(t=f.getPlotLinePath(k,b),c={stroke:it,"stroke-width":b},nt)&&(c.dashstyle=nt);else if(s)(w=i(w,f.min-c),p=a(p,f.max+c),t=f.getPlotBandPath(w,p,u),c={fill:it},u.borderWidth)&&(c.stroke=u.borderColor,c["stroke-width"]=u.borderWidth);else return;if(r(d)&&(c.zIndex=d),y)t?y.animate({d:t},null,y.onGetPath):(y.hide(),y.onGetPath=function(){y.show()},l)&&(h.label=l=l.destroy());else if(t&&t.length&&(h.svgElem=y=rt.path(t).attr(c).add(),g))for(tt in u=function(n){y.on(n,function(t){g[n].apply(h,[t])})},g)u(tt);return e&&r(e.text)&&t&&t.length&&f.width>0&&f.height>0?(e=o({align:v&&s&&"center",x:v?!s&&4:10,verticalAlign:!v&&s&&"middle",y:v?s?16:10:s?6:-4,rotation:v&&!s&&90},e),l||(h.label=l=rt.text(e.text,0,0,e.useHTML).attr({align:e.textAlign||e.align,rotation:e.rotation,zIndex:d}).css(e.style).add()),f=[t[1],t[4],n(t[6],t[1])],t=[t[2],t[5],n(t[7],t[2])],v=rr(f),s=rr(t),l.align(e,!1,{x:v,y:s,width:si(f)-v,height:si(t)-s}),l.show()):l&&l.hide(),h},destroy:function(){wt(this.axis.plotLinesAndBands,this),delete this.axis,ur(this)}},hf.prototype={destroy:function(){ur(this,this.axis)},render:function(n){var t=this.options,i=t.format,i=i?bi(i,this):t.formatter.call(this);this.label?this.label.attr({text:i,visibility:"hidden"}):this.label=this.axis.chart.renderer.text(i,0,0,t.useHTML).css(t.style).attr({align:this.textAlign,rotation:t.rotation,visibility:"hidden"}).add(n)},setOffset:function(n,t){var i=this.axis,e=i.chart,r=e.inverted,u=this.isNegative,f=i.translate(this.percent?100:this.total,0,0,0,1),i=i.translate(0),i=w(f-i),s=e.xAxis[0].translate(this.x)+n,o=e.plotHeight,u={x:r?u?f:f-i:s,y:r?o-s-t:u?o-f-i:o-f,width:r?i:t,height:r?t:i};(r=this.label)&&(r.align(this.alignOptions,null,u),u=r.alignAttr,r.attr({visibility:this.options.crop===!1||e.isInsidePlot(u.x,u.y)?ht?"inherit":"visible":"hidden"}))}},pr.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:"#C0C0C0",labels:p,lineColor:"#C0D0E0",lineWidth:1,minPadding:.01,maxPadding:.01,minorGridLineColor:"#E0E0E0",minorGridLineWidth:1,minorTickColor:"#A0A0A0",minorTickLength:2,minorTickPosition:"outside",startOfWeek:1,startOnTick:!1,tickColor:"#C0D0E0",tickLength:5,tickmarkPlacement:"between",tickPixelInterval:100,tickPosition:"outside",tickWidth:1,title:{align:"middle",style:{color:"#4d759e",fontWeight:"bold"}},type:"linear"},defaultYAxisOptions:{endOnTick:!0,gridLineWidth:1,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8,y:3},lineWidth:0,maxPadding:.05,minPadding:.05,startOnTick:!0,tickWidth:0,title:{rotation:270,text:"Values"},stackLabels:{enabled:!1,formatter:function(){return pi(this.total,-1)},style:p.style}},defaultLeftAxisOptions:{labels:{x:-8,y:null},title:{rotation:270}},defaultRightAxisOptions:{labels:{x:8,y:null},title:{rotation:90}},defaultBottomAxisOptions:{labels:{x:0,y:14},title:{rotation:0}},defaultTopAxisOptions:{labels:{x:0,y:-5},title:{rotation:0}},init:function(n,t){var u=t.isX,e,o,i;this.horiz=n.inverted?!u:u,this.xOrY=(this.isXAxis=u)?"x":"y",this.opposite=t.opposite,this.side=this.horiz?this.opposite?0:2:this.opposite?1:3,this.setOptions(t),i=this.options,e=i.type,this.labelFormatter=i.labels.formatter||this.defaultLabelFormatter,this.userOptions=t,this.minPixelPadding=0,this.chart=n,this.reversed=i.reversed,this.zoomEnabled=i.zoomEnabled!==!1,this.categories=i.categories||e==="category",this.names=[],this.isLog=e==="logarithmic",this.isDatetimeAxis=e==="datetime",this.isLinked=r(i.linkedTo),this.tickmarkOffset=this.categories&&i.tickmarkPlacement==="between"?.5:0,this.ticks={},this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=i.minRange||i.maxZoom,this.range=i.range,this.offset=i.offset||0,this.stacks={},this.oldStacks={},this.stackExtremes={},this.min=this.max=null,i=this.options.events,ui(this,n.axes)===-1&&(n.axes.push(this),n[u?"xAxis":"yAxis"].push(this)),this.series=this.series||[],n.inverted&&u&&this.reversed===f&&(this.reversed=!0),this.removePlotLine=this.removePlotBand=this.removePlotBandOrLine;for(o in i)b(this,o,i[o]);this.isLog&&(this.val2lin=ti,this.lin2val=pt)},setOptions:function(n){this.options=o(this.defaultOptions,this.isXAxis?{}:this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],o(tt[this.isXAxis?"xAxis":"yAxis"],n))},update:function(t,i){var r=this.chart,t=r.options[this.xOrY+"Axis"][this.options.index]=o(this.userOptions,t);this.destroy(!0),this._addedPlotLB=this.userMin=this.userMax=f,this.init(r,e(t,{events:f})),r.isDirtyBox=!0,n(i,!0)&&r.redraw()},remove:function(i){var r=this.chart,u=this.xOrY+"Axis";t(this.series,function(n){n.remove(!1)}),wt(r.axes,this),wt(r[u],this),r.options[u].splice(this.options.index,1),t(r[u],function(n,t){n.options.index=t}),this.destroy(),r.isDirtyBox=!0,n(i,!0)&&r.redraw()},defaultLabelFormatter:function(){var t=this.axis,i=this.value,u=t.categories,o=this.dateTimeLabelFormat,e=tt.lang.numericSymbols,r=e&&e.length,n,s=t.options.labels.format,t=t.isLog?i:t.tickInterval;if(s)n=bi(s,this);else if(u)n=i;else if(o)n=tu(o,i);else if(r&&t>=1e3)for(;r--&&n===f;)u=Math.pow(1e3,r+1),t>=u&&e[r]!==null&&(n=pi(i/u,-1)+e[r]);return n===f&&(n=i>=1e3?pi(i,0):pi(i,-1)),n},getSeriesExtremes:function(){var u=this,f=u.chart;u.hasVisibleSeries=!1,u.dataMin=u.dataMax=null,u.stackExtremes={},u.buildStacks(),t(u.series,function(t){var e,o;(t.visible||!f.options.chart.ignoreHiddenSeries)&&(e=t.options.threshold,u.hasVisibleSeries=!0,u.isLog&&e<=0&&(e=null),u.isXAxis?(e=t.xData,e.length)&&(u.dataMin=a(n(u.dataMin,e[0]),rr(e)),u.dataMax=i(n(u.dataMax,e[0]),si(e))):(t.getExtremes(),o=t.dataMax,t=t.dataMin,r(t)&&r(o)&&(u.dataMin=a(n(u.dataMin,t),t),u.dataMax=i(n(u.dataMax,o),o)),r(e)&&(u.dataMin>=e?(u.dataMin=e,u.ignoreMinPadding=!0):u.dataMax<e&&(u.dataMax=e,u.ignoreMaxPadding=!0))))})},translate:function(n,t,i,r,u,f){var h=this.len,e=1,s=0,o=r?this.oldTransA:this.transA,r=r?this.oldMin:this.min,c=this.minPixelPadding,u=(this.options.ordinal||this.isLog&&u)&&this.lin2val;return o||(o=this.transA),i&&(e*=-1,s=h),this.reversed&&(e*=-1,s-=e*h),t?(n=n*e+s,n-=c,n=n/o+r,u&&(n=this.lin2val(n))):(u&&(n=this.val2lin(n)),f==="between"&&(f=.5),n=e*(n-r)*o+s+e*c+(oi(f)?o*f*this.pointRange:0)),n},toPixels:function(n,t){return this.translate(n,!1,!this.horiz,null,!0)+(t?0:this.pos)},toValue:function(n,t){return this.translate(n-(t?0:this.pos),!0,!this.horiz,null,!0)},getPlotLinePath:function(n,t,i,r){var e=this.chart,s=this.left,h=this.top,f,c,l,n=this.translate(n,null,null,i),a=i&&e.oldChartHeight||e.chartHeight,v=i&&e.oldChartWidth||e.chartWidth,o;return f=this.transB,i=c=u(n+f),f=l=u(a-n-f),isNaN(n)?o=!0:this.horiz?(f=h,l=a-this.bottom,i<s||i>s+this.width)&&(o=!0):(i=s,c=v-this.right,f<h||f>h+this.height)&&(o=!0),o&&!r?null:e.renderer.crispLine(["M",i,f,"L",c,l],t||0)},getPlotBandPath:function(n,t){var i=this.getPlotLinePath(t),r=this.getPlotLinePath(n);return r&&i?r.push(i[4],i[5],i[1],i[2]):r=null,r},getLinearTickPositions:function(n,t,i){for(var r,t=kt(nt(t/n)*n),i=kt(ci(i/n)*n),u=[];t<=i;){if(u.push(t),t=kt(t+n),t===r)break;r=t}return u},getLogTickPositions:function(t,i,r,f){var o=this.options,e=this.len,s=[],h,v,l,c,a;if(f||(this._minorAutoInterval=null),t>=.5)t=u(t),s=this.getLinearTickPositions(t,i,r);else if(t>=.08)for(e=nt(i),o=t>.3?[1,2,4]:t>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9];e<r+1&&!a;e++)for(v=o.length,h=0;h<v&&!a;h++)l=ti(pt(e)*o[h]),l>i&&(!f||c<=r)&&s.push(c),c>r&&(a=!0),c=l;else(i=pt(i),r=pt(r),t=o[f?"minorTickInterval":"tickInterval"],t=n(t==="auto"?null:t,this._minorAutoInterval,(r-i)*(o.tickPixelInterval/(f?5:1))/((f?e/this.tickPositions.length:e)||1)),t=cu(t,null,hu(t)),s=or(this.getLinearTickPositions(t,i,r),ti),f)||(this._minorAutoInterval=t/5);return f||(this.tickInterval=t),s},getMinorTickPositions:function(){var i=this.options,n=this.tickPositions,r=this.minorTickInterval,t=[],u;if(this.isLog)for(u=n.length,i=1;i<u;i++)t=t.concat(this.getLogTickPositions(r,n[i-1],n[i],!0));else if(this.isDatetimeAxis&&i.minorTickInterval==="auto")t=t.concat(ff(uf(r),this.min,this.max,i.startOfWeek)),t[0]<this.min&&t.shift();else for(n=this.min+(n[0]-this.min)%r;n<=this.max;n+=r)t.push(n);return t},adjustForMinRange:function(){var s=this.options,i=this.min,u=this.max,e,y=this.dataMax-this.dataMin>=this.minRange,c,h,v,l,p,o;this.isXAxis&&this.minRange===f&&!this.isLog&&(r(s.min)||r(s.max)?this.minRange=null:(t(this.series,function(n){for(l=n.xData,h=p=n.xIncrement?1:l.length-1;h>0;h--)(v=l[h]-l[h-1],c===f||v<c)&&(c=v)}),this.minRange=a(c*5,this.dataMax-this.dataMin))),u-i<this.minRange&&(o=this.minRange,e=(o-u+i)/2,e=[i-e,n(s.min,i-e)],y&&(e[2]=this.dataMin),i=si(e),u=[i+o,n(s.max,i+o)],y&&(u[2]=this.dataMax),u=rr(u),u-i<o&&(e[0]=u-o,e[1]=n(s.min,u-o),i=si(e))),this.min=i,this.max=u},setAxisTranslation:function(n){var s=this.max-this.min,h=0,u,e=0,o=0,f=this.linkedParent,c=this.transA;this.isXAxis&&(f?(e=f.minPointOffset,o=f.pointRangePadding):t(this.series,function(n){var t=n.pointRange,c=n.options.pointPlacement,f=n.closestPointRange;t>s&&(t=0),h=i(h,t),e=i(e,yt(c)?0:t/2),o=i(o,c==="on"?0:t),!n.noSharedTooltip&&r(f)&&(u=r(u)?a(u,f):f)}),f=this.ordinalSlope&&u?this.ordinalSlope/u:1,this.minPointOffset=e*=f,this.pointRangePadding=o*=f,this.pointRange=a(h,s),this.closestPointRange=u),n&&(this.oldTransA=c),this.translationSlope=this.transA=c=this.len/(s+o||1),this.transB=this.horiz?this.left:this.bottom,this.minPixelPadding=c*e},setTickPositions:function(u){var f=this,o=f.chart,e=f.options,h=f.isLog,c=f.isDatetimeAxis,y=f.isXAxis,s=f.isLinked,p=f.options.tickPositioner,w=e.maxPadding,b=e.minPadding,l=e.tickInterval,k=e.minTickInterval,v=e.tickPixelInterval,d,g=f.categories;s?(f.linkedParent=o[y?"xAxis":"yAxis"][e.linkedTo],o=f.linkedParent.getExtremes(),f.min=n(o.min,o.dataMin),f.max=n(o.max,o.dataMax),e.type!==f.linkedParent.options.type&&ni(11,1)):(f.min=n(f.userMin,e.min,f.dataMin),f.max=n(f.userMax,e.max,f.dataMax)),h&&(!u&&a(f.min,n(f.dataMin,f.min))<=0&&ni(10,1),f.min=kt(ti(f.min)),f.max=kt(ti(f.max))),f.range&&(f.userMin=f.min=i(f.min,f.max-f.range),f.userMax=f.max,u)&&(f.range=null),f.beforePadding&&f.beforePadding(),f.adjustForMinRange(),!g&&!f.usePercentage&&!s&&r(f.min)&&r(f.max)&&(o=f.max-f.min)&&(!r(e.min)&&!r(f.userMin)&&b&&(f.dataMin<0||!f.ignoreMinPadding)&&(f.min-=o*b),!r(e.max)&&!r(f.userMax)&&w&&(f.dataMax>0||!f.ignoreMaxPadding)&&(f.max+=o*w)),f.min===f.max||f.min===void 0||f.max===void 0?f.tickInterval=1:s&&!l&&v===f.linkedParent.options.tickPixelInterval?f.tickInterval=f.linkedParent.tickInterval:(f.tickInterval=n(l,g?1:(f.max-f.min)*v/i(f.len,v)),!r(l)&&f.len<v&&!this.isRadial&&(d=!0,f.tickInterval/=4)),y&&!u&&t(f.series,function(n){n.processData(f.min!==f.oldMin||f.max!==f.oldMax)}),f.setAxisTranslation(!0),f.beforeSetTickPositions&&f.beforeSetTickPositions(),f.postProcessTickInterval&&(f.tickInterval=f.postProcessTickInterval(f.tickInterval)),f.pointRange&&(f.tickInterval=i(f.pointRange,f.tickInterval)),!l&&f.tickInterval<k&&(f.tickInterval=k),c||h||l||(f.tickInterval=cu(f.tickInterval,null,hu(f.tickInterval),e)),f.minorTickInterval=e.minorTickInterval==="auto"&&f.tickInterval?f.tickInterval/5:e.minorTickInterval,f.tickPositions=u=e.tickPositions?[].concat(e.tickPositions):p&&p.apply(f,[f.min,f.max]),u||(!f.ordinalPositions&&(f.max-f.min)/f.tickInterval>i(2*f.len,200)&&ni(19,!0),u=c?(f.getNonLinearTimeTicks||ff)(uf(f.tickInterval,e.units),f.min,f.max,e.startOfWeek,f.ordinalPositions,f.closestPointRange,!0):h?f.getLogTickPositions(f.tickInterval,f.min,f.max):f.getLinearTickPositions(f.tickInterval,f.min,f.max),d&&u.splice(1,u.length-2),f.tickPositions=u),s||(h=u[0],c=u[u.length-1],s=f.minPointOffset||0,e.startOnTick?f.min=h:f.min-s>h&&u.shift(),e.endOnTick?f.max=c:f.max+s<c&&u.pop(),u.length===1&&(f.min-=.001,f.max+=.001))},setMaxTicks:function(){var i=this.chart,n=i.maxTicks||{},t=this.tickPositions,r=this._maxTicksKey=[this.xOrY,this.pos,this.len].join("-");!this.isLinked&&!this.isDatetimeAxis&&t&&t.length>(n[r]||0)&&this.options.alignTicks!==!1&&(n[r]=t.length),i.maxTicks=n},adjustTickAmount:function(){var n=this._maxTicksKey,t=this.tickPositions,i=this.chart.maxTicks,u,f;if(i&&i[n]&&!this.isDatetimeAxis&&!this.categories&&!this.isLinked&&this.options.alignTicks!==!1){if(u=this.tickAmount,f=t.length,this.tickAmount=n=i[n],f<n){for(;t.length<n;)t.push(kt(t[t.length-1]+this.tickInterval));this.transA*=(f-1)/(n-1),this.max=t[t.length-1]}r(u)&&n!==u&&(this.isDirty=!0)}},setScale:function(){var n=this.stacks,i,r,f,u;if(this.oldMin=this.min,this.oldMax=this.max,this.oldAxisLength=this.len,this.setAxisSize(),u=this.len!==this.oldAxisLength,t(this.series,function(n){(n.isDirtyData||n.isDirty||n.xAxis.isDirty)&&(f=!0)}),u||f||this.isLinked||this.forceRedraw||this.userMin!==this.oldUserMin||this.userMax!==this.oldUserMax){if(!this.isXAxis)for(i in n)for(r in n[i])n[i][r].total=null,n[i][r].cum=0;this.forceRedraw=!1,this.getSeriesExtremes(),this.setTickPositions(),this.oldUserMin=this.userMin,this.oldUserMax=this.userMax,this.isDirty||(this.isDirty=u||this.min!==this.oldMin||this.max!==this.oldMax)}else if(!this.isXAxis){this.oldStacks&&(n=this.stacks=this.oldStacks);for(i in n)for(r in n[i])n[i][r].cum=n[i][r].total}this.setMaxTicks()},setExtremes:function(t,i,r,u,f){var o=this,s=o.chart,r=n(r,!0),f=e(f,{min:t,max:i});l(o,"setExtremes",f,function(){o.userMin=t,o.userMax=i,o.eventArgs=f,o.isDirtyExtremes=!0,r&&s.redraw(u)})},zoom:function(n,t){return this.allowZoomOutside||(r(this.dataMin)&&n<=this.dataMin&&(n=f),r(this.dataMax)&&t>=this.dataMax&&(t=f)),this.displayBtn=n!==f||t!==f,this.setExtremes(n,t,!1,f,{trigger:"zoom"}),!0},setAxisSize:function(){var r=this.chart,t=this.options,u=t.offsetLeft||0,s=t.offsetRight||0,o=this.horiz,f,e;this.left=e=n(t.left,r.plotLeft+u),this.top=f=n(t.top,r.plotTop),this.width=u=n(t.width,r.plotWidth-u+s),this.height=t=n(t.height,r.plotHeight),this.bottom=r.chartHeight-t-f,this.right=r.chartWidth-u-e,this.len=i(o?u:t,0),this.pos=o?e:f},getExtremes:function(){var n=this.isLog;return{min:n?kt(pt(this.min)):this.min,max:n?kt(pt(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(n){var t=this.isLog,i=t?pt(this.min):this.min,t=t?pt(this.max):this.max;return i>n||n===null?n=i:t<n&&(n=t),this.translate(n,0,1,0,1)},addPlotBand:function(n){this.addPlotBandOrLine(n,"plotBands")},addPlotLine:function(n){this.addPlotBandOrLine(n,"plotLines")},addPlotBandOrLine:function(n,t){var i=new lu(this,n).render(),r=this.userOptions;return i&&(t&&(r[t]=r[t]||[],r[t].push(n)),this.plotLinesAndBands.push(i)),i},autoLabelAlign:function(t){return t=(n(t,0)-this.side*90+720)%360,t>15&&t<165?"right":t>195&&t<345?"left":"center"},getOffset:function(){var u=this,l=u.chart,d=l.renderer,c=u.options,w=u.tickPositions,h=u.ticks,tt=u.horiz,s=u.side,ft=l.inverted?[1,0,3,2][s]:s,a,et=0,ot,st=0,e=c.title,o=c.labels,y=0,it=l.axisOffset,ht=l.clipOffset,rt=[-1,1,1,-1][s],p,b=1,ct=n(o.maxStaggerLines,5),ut,v,k,g;if(u.hasData=a=u.hasVisibleSeries||r(u.min)&&r(u.max)&&!!w,u.showAxis=l=a||n(c.showEmpty,!0),u.staggerLines=u.horiz&&o.staggerLines,u.axisGroup||(u.gridGroup=d.g("grid").attr({zIndex:c.gridZIndex||1}).add(),u.axisGroup=d.g("axis").attr({zIndex:c.zIndex||2}).add(),u.labelGroup=d.g("axis-labels").attr({zIndex:o.zIndex||7}).add()),a||u.isLinked){if(u.labelAlign=n(o.align||u.autoLabelAlign(o.rotation)),t(w,function(n){h[n]?h[n].addLabel():h[n]=new er(u,n)}),u.horiz&&!u.staggerLines&&ct&&!o.rotation){for(p=u.reversed?[].concat(w).reverse():w;b<ct;){for(a=[],ut=!1,o=0;o<p.length;o++)v=p[o],k=(k=h[v].label&&h[v].label.getBBox())?k.width:0,g=o%b,k&&(v=u.translate(v),a[g]!==f&&v<a[g]&&(ut=!0),a[g]=v+k);if(ut)b++;else break}b>1&&(u.staggerLines=b)}t(w,function(n){(s===0||s===2||{1:"left",3:"right"}[s]===u.labelAlign)&&(y=i(h[n].getLabelSize(),y))}),u.staggerLines&&(y*=u.staggerLines,u.labelOffset=y)}else for(p in h)h[p].destroy(),delete h[p];e&&e.text&&e.enabled!==!1&&(u.axisTitle||(u.axisTitle=d.text(e.text,0,0,e.useHTML).attr({zIndex:7,rotation:e.rotation||0,align:e.textAlign||{low:"left",middle:"center",high:"right"}[e.align]}).css(e.style).add(u.axisGroup),u.axisTitle.isNew=!0),l&&(et=u.axisTitle.getBBox()[tt?"height":"width"],st=n(e.margin,tt?5:10),ot=e.offset),u.axisTitle[l?"show":"hide"]()),u.offset=rt*n(c.offset,it[s]),u.axisTitleMargin=n(ot,y+st+(s!==2&&y&&rt*c.labels[tt?"y":"x"])),it[s]=i(it[s],u.axisTitleMargin+et+rt*u.offset),ht[ft]=i(ht[ft],nt(c.lineWidth/2)*2)},getLinePath:function(n){var i=this.chart,u=this.opposite,t=this.offset,r=this.horiz,f=this.left+(u?this.width:0)+t,t=i.chartHeight-this.bottom-(u?this.height:0)+t;return u&&(n*=-1),i.renderer.crispLine(["M",r?this.left:f,r?t:this.top,"L",r?i.chartWidth-this.right:f,r?t:i.chartHeight-this.bottom],n)},getTitlePosition:function(){var n=this.horiz,i=this.left,e=this.top,t=this.len,r=this.options.title,u=n?i:e,f=this.opposite,o=this.offset,s=h(r.style.fontSize||12),t={low:u+(n?0:t),middle:u+t/2,high:u+(n?t:0)}[r.align],i=(n?e+this.height:i)+(n?1:-1)*(f?-1:1)*this.axisTitleMargin+(this.side===2?s:0);return{x:n?t:i+(f?this.width:0)+o+(r.x||0),y:n?i-(f?this.height:0)+o:t+(r.y||0)}},render:function(){var n=this,h=n.chart,c=h.renderer,i=n.options,k=n.isLog,d=n.isLinked,o=n.tickPositions,a=n.axisTitle,g=n.stacks,u=n.ticks,s=n.minorTicks,e=n.alternateBands,nt=i.stackLabels,tt=i.alternateGridColor,v=n.tickmarkOffset,y=i.lineWidth,l,it=h.hasRendered&&r(n.oldMin)&&!isNaN(n.oldMin),p,w,b,rt,ut;if(l=n.hasData,p=n.showAxis,t([u,s,e],function(n){for(var t in n)n[t].isActive=!1}),(l||d)&&((n.minorTickInterval&&!n.categories&&t(n.getMinorTickPositions(),function(t){s[t]||(s[t]=new er(n,t,"minor")),it&&s[t].isNew&&s[t].render(null,!0),s[t].render(null,!1,1)}),o.length&&(t(o.slice(1).concat([o[0]]),function(t,i){i=i===o.length-1?0:i+1,(!d||t>=n.min&&t<=n.max)&&(u[t]||(u[t]=new er(n,t)),it&&u[t].isNew&&u[t].render(i,!0),u[t].render(i,!1,1))}),v&&n.min===0&&(u[-1]||(u[-1]=new er(n,-1,null,!0)),u[-1].render(-1))),tt&&t(o,function(t,i){i%2==0&&t<n.max&&(e[t]||(e[t]=new lu(n)),w=t+v,b=o[i+1]!==f?o[i+1]+v:n.max,e[t].options={from:k?pt(w):w,to:k?pt(b):b,color:tt},e[t].render(),e[t].isActive=!0)}),n._addedPlotLB)||(t((i.plotLines||[]).concat(i.plotBands||[]),function(t){n.addPlotBandOrLine(t)}),n._addedPlotLB=!0)),t([u,s,e],function(n){var t,i,r=[],u=ki?ki.duration||500:0,f=function(){for(i=r.length;i--;)n[r[i]]&&!n[r[i]].isActive&&(n[r[i]].destroy(),delete n[r[i]])};for(t in n)n[t].isActive||(n[t].render(t,!1,0),n[t].isActive=!1,r.push(t));n===e||!h.hasRendered||!u?f():u&&setTimeout(f,u)}),y&&(l=n.getLinePath(y),n.axisLine?n.axisLine.animate({d:l}):n.axisLine=c.path(l).attr({stroke:i.lineColor,"stroke-width":y,zIndex:7}).add(n.axisGroup),n.axisLine[p?"show":"hide"]()),a&&p&&(a[a.isNew?"attr":"animate"](n.getTitlePosition()),a.isNew=!1),nt&&nt.enabled){i=n.stackTotalGroup,i||(n.stackTotalGroup=i=c.g("stack-labels").attr({visibility:"visible",zIndex:6}).add()),i.translate(h.plotLeft,h.plotTop);for(rt in g)for(ut in c=g[rt],c)c[ut].render(i)}n.isDirty=!1},removePlotBandOrLine:function(n){for(var r=this.plotLinesAndBands,u=this.options,f=this.userOptions,i=r.length;i--;)r[i].id===n&&r[i].destroy();t([u.plotLines||[],f.plotLines||[],u.plotBands||[],f.plotBands||[]],function(t){for(i=t.length;i--;)t[i].id===n&&wt(t,t[i])})},setTitle:function(n,t){this.update({title:n},t)},redraw:function(){var n=this.chart.pointer;n.reset&&n.reset(!0),this.render(),t(this.plotLinesAndBands,function(n){n.render()}),t(this.series,function(n){n.isDirty=!0})},buildStacks:function(){var t=this.series,n=t.length;if(!this.isXAxis){for(;n--;)t[n].setStackedPoints();if(this.usePercentage)for(n=0;n<t.length;n++)t[n].setPercentStacks()}},setCategories:function(n,t){this.update({categories:n},t)},destroy:function(n){var i=this,r=i.stacks,u,f=i.plotLinesAndBands;n||lt(i);for(u in r)ur(r[u]),r[u]=null;for(t([i.ticks,i.minorTicks,i.alternateBands],function(n){ur(n)}),n=f.length;n--;)f[n].destroy();t("stackTotalGroup,axisLine,axisGroup,gridGroup,labelGroup,axisTitle".split(","),function(n){i[n]&&(i[n]=i[n].destroy())})}},au.prototype={init:function(n,t){var r=t.borderWidth,i=t.style,u=h(i.padding);this.chart=n,this.options=t,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.label=n.renderer.label("",0,0,t.shape,null,null,t.useHTML,null,"tooltip").attr({padding:u,fill:t.backgroundColor,"stroke-width":r,r:t.borderRadius,zIndex:8}).css(i).css({padding:0}).add().attr({y:-999}),vt||this.label.shadow(t.shadow),this.shared=t.shared},destroy:function(){t(this.crosshairs,function(n){n&&n.destroy()}),this.label&&(this.label=this.label.destroy()),clearTimeout(this.hideTimer),clearTimeout(this.tooltipTimeout)},move:function(n,t,i,r){var f=this,u=f.now,o=f.options.animation!==!1&&!f.isHidden;e(u,{x:o?(2*u.x+n)/3:n,y:o?(u.y+t)/2:t,anchorX:o?(2*u.anchorX+i)/3:i,anchorY:o?(u.anchorY+r)/2:r}),f.label.attr(u),o&&(w(n-u.x)>1||w(t-u.y)>1)&&(clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){f&&f.move(n,t,i,r)},32))},hide:function(){var r=this,i;clearTimeout(this.hideTimer),this.isHidden||(i=this.chart.hoverPoints,this.hideTimer=setTimeout(function(){r.label.fadeOut(),r.isHidden=!0},n(this.options.hideDelay,500)),i&&t(i,function(n){n.setState()}),this.chart.hoverPoints=null)},hideCrosshairs:function(){t(this.crosshairs,function(n){n&&n.hide()})},getAnchor:function(n,i){var e,r=this.chart,o=r.inverted,c=r.plotTop,s=0,h=0,l,n=gt(n);return e=n[0].tooltipPos,this.followPointer&&i&&(i.chartX===f&&(i=r.pointer.normalize(i)),e=[i.chartX-r.plotLeft,i.chartY-c]),e||(t(n,function(n){l=n.series.yAxis,s+=n.plotX,h+=(n.plotLow?(n.plotLow+n.plotHigh)/2:n.plotY)+(!o&&l?l.top-c:0)}),s/=n.length,h/=n.length,e=[o?r.plotWidth-h:s,this.shared&&!o&&n.length>1&&i?i.chartY-c:o?r.plotHeight-s:h]),or(e,u)},getPosition:function(t,r,u){var f=this.chart,h=f.plotLeft,o=f.plotTop,c=f.plotWidth,l=f.plotHeight,s=n(this.options.distance,12),a=u.plotX,u=u.plotY,f=a+h+(f.inverted?s:-t-s),e=u-r+o+15,v;return f<7&&(f=h+i(a,0)+s),f+t>h+c&&(f-=f+t-(h+c),e=u-r+o-s,v=!0),e<o+5&&(e=o+5,v&&u>=e&&u<=e+r&&(e=u+o+s)),e+r>o+l&&(e=i(o,o+l-r-s)),{x:f,y:e}},defaultFormatter:function(n){var u=this.points||gt(this),i=u[0].series,r;return r=[i.tooltipHeaderFormatter(u[0])],t(u,function(n){i=n.series,r.push(i.tooltipFormatter&&i.tooltipFormatter(n)||n.point.tooltipFormatter(i.tooltipOptions.pointFormat))}),r.push(n.options.footerFormat||""),r.join("")},refresh:function(i,r){var s=this.chart,u=this.label,e=this.options,v,h,f={},c,p=[];c=e.formatter||this.defaultFormatter;var f=s.hoverPoints,y,o=e.crosshairs,a=this.shared;if(clearTimeout(this.hideTimer),this.followPointer=gt(i)[0].series.tooltipOptions.followPointer,h=this.getAnchor(i,r),v=h[0],h=h[1],a&&(!i.series||!i.series.noSharedTooltip)?(s.hoverPoints=i,f&&t(f,function(n){n.setState()}),t(i,function(n){n.setState("hover"),p.push(n.getLabelConfig())}),f={x:i[0].category,y:i[0].y},f.points=p,i=i[0]):f=i.getLabelConfig(),c=c.call(f,this),f=i.series,c===!1?this.hide():(this.isHidden&&(yr(u),u.attr("opacity",1).show()),u.attr({text:c}),y=e.borderColor||i.color||f.color||"#606060",u.attr({stroke:y}),this.updatePosition({plotX:v,plotY:h}),this.isHidden=!1),o)for(o=gt(o),u=o.length;u--;)(a=i.series,e=a[u?"yAxis":"xAxis"],o[u]&&e)&&((f=u?n(i.stackY,i.y):i.x,e.isLog&&(f=ti(f)),u===1&&a.modifyValue&&(f=a.modifyValue(f)),e=e.getPlotLinePath(f,1),this.crosshairs[u])?this.crosshairs[u].attr({d:e,visibility:"visible"}):(f={"stroke-width":o[u].width||1,stroke:o[u].color||"#C0C0C0",zIndex:o[u].zIndex||2},o[u].dashStyle&&(f.dashstyle=o[u].dashStyle),this.crosshairs[u]=s.renderer.path(e).attr(f).add()));l(s,"tooltipRefresh",{text:c,x:v+s.plotLeft,y:h+s.plotTop,borderColor:y})},updatePosition:function(n){var i=this.chart,t=this.label,t=(this.options.positioner||this.getPosition).call(this,t.width,t.height,n);this.move(u(t.x),u(t.y),n.plotX+i.plotLeft,n.plotY+i.plotTop)}},vu.prototype={init:function(n,t){var i=t.chart,f=i.events,r=vt?"":i.zoomType,i=n.inverted,u;this.options=t,this.chart=n,this.zoomX=u=/x/.test(r),this.zoomY=r=/y/.test(r),this.zoomHor=u&&!i||r&&i,this.zoomVert=r&&!i||u&&i,this.runChartClick=f&&!!f.click,this.pinchDown=[],this.lastValidTouch={},t.tooltip.enabled&&(n.tooltip=new au(n,t.tooltip)),this.setDOMEvents()},normalize:function(n,t){var o,r,n=n||d.event;return n.target||(n.target=n.srcElement),n=re(n),r=n.touches?n.touches.item(0):n,t||(this.chartPosition=t=ie(this.chart.container)),r.pageX===f?(o=i(n.x,n.clientX-t.left),r=n.y):(o=r.pageX-t.left,r=r.pageY-t.top),e(n,{chartX:u(o),chartY:u(r)})},getCoordinates:function(n){var i={xAxis:[],yAxis:[]};return t(this.chart.axes,function(t){i[t.isXAxis?"xAxis":"yAxis"].push({axis:t,value:t.toValue(n[t.horiz?"chartX":"chartY"])})}),i},getIndex:function(n){var t=this.chart;return t.inverted?t.plotHeight+t.plotTop-n.chartY:n.chartX-t.plotLeft},runPointActions:function(n){var t=this.chart,f=t.series,u=t.tooltip,i,c=t.hoverPoint,o=t.hoverSeries,e,r,s=t.chartWidth,h=this.getIndex(n);if(u&&this.options.tooltip.shared&&(!o||!o.noSharedTooltip)){for(i=[],e=f.length,r=0;r<e;r++)f[r].visible&&f[r].options.enableMouseTracking!==!1&&!f[r].noSharedTooltip&&f[r].tooltipPoints.length&&(t=f[r].tooltipPoints[h])&&t.series&&(t._dist=w(h-t.clientX),s=a(s,t._dist),i.push(t));for(e=i.length;e--;)i[e]._dist>s&&i.splice(e,1);i.length&&i[0].clientX!==this.hoverX&&(u.refresh(i,n),this.hoverX=i[0].clientX)}if(o&&o.tracker){if((t=o.tooltipPoints[h])&&t!==c)t.onMouseOver(n)}else u&&u.followPointer&&!u.isHidden&&(n=u.getAnchor([{}],n),u.updatePosition({plotX:n[0],plotY:n[1]}))},reset:function(n){var t=this.chart,u=t.hoverSeries,r=t.hoverPoint,i=t.tooltip,t=i&&i.shared?t.hoverPoints:r;(n=n&&i&&t)&&gt(t)[0].plotX===f&&(n=!1),n?i.refresh(t):(r&&r.onMouseOut(),u&&u.onMouseOut(),i&&(i.hide(),i.hideCrosshairs()),this.hoverX=null)},scaleGroups:function(n,i){var r=this.chart,u;t(r.series,function(t){u=n||t.getPlotBox(),t.xAxis&&t.xAxis.zoomEnabled&&(t.group.attr(u),t.markerGroup&&(t.markerGroup.attr(u),t.markerGroup.clip(i?r.clipRect:null)),t.dataLabelsGroup&&t.dataLabelsGroup.attr(u))}),r.clipRect.attr(i||r.clipBox)},pinchTranslate:function(n,t,i,r,u,f,e,o){n&&this.pinchTranslateDirection(!0,i,r,u,f,e,o),t&&this.pinchTranslateDirection(!1,i,r,u,f,e,o)},pinchTranslateDirection:function(n,t,i,r,u,f,e,o){var a=this.chart,c=n?"x":"y",d=n?"X":"Y",v="chart"+d,rt=n?"width":"height",g=a["plot"+(n?"Left":"Top")],l,nt,s=o||1,tt=a.inverted,y=a.bounds[n?"h":"v"],p=t.length===1,b=t[0][v],h=i[0][v],ut=!p&&t[1][v],k=!p&&i[1][v],it,i=function(){!p&&w(b-ut)>20&&(s=o||w(h-k)/w(b-ut)),nt=(g-h)/s+b,l=a["plot"+(n?"Width":"Height")]/s};i(),t=nt,t<y.min?(t=y.min,it=!0):t+l>y.max&&(t=y.max-l,it=!0),it?(h-=.8*(h-e[c][0]),p||(k-=.8*(k-e[c][1])),i()):e[c]=[h,k],tt||(f[c]=nt-g,f[rt]=l),f=tt?1/s:s,u[rt]=l,u[c]=t,r[tt?n?"scaleY":"scaleX":"scale"+d]=s,r["translate"+d]=f*g+(h-f*b)},pinch:function(n){var r=this,f=r.chart,u=r.pinchDown,l=f.tooltip&&f.tooltip.options.followTouchMove,o=n.touches,v=o.length,s=r.lastValidTouch,y=r.zoomHor||r.pinchHor,p=r.zoomVert||r.pinchVert,h=y||p,c=r.selectionMarker,w={},k=v===1&&(r.inClass(n.target,"highcharts-tracker")&&f.runTrackerClick||f.runChartClick),b={};(h||l)&&!k&&n.preventDefault(),or(o,function(n){return r.normalize(n)}),n.type==="touchstart"?(t(o,function(n,t){u[t]={chartX:n.chartX,chartY:n.chartY}}),s.x=[u[0].chartX,u[1]&&u[1].chartX],s.y=[u[0].chartY,u[1]&&u[1].chartY],t(f.axes,function(n){if(n.zoomEnabled){var r=f.bounds[n.horiz?"h":"v"],u=n.minPixelPadding,t=n.toPixels(n.dataMin),e=n.toPixels(n.dataMax),o=a(t,e),t=i(t,e);r.min=a(n.pos,o-u),r.max=i(n.pos+n.len,t+u)}})):u.length&&(c||(r.selectionMarker=c=e({destroy:ri},f.plotBox)),r.pinchTranslate(y,p,u,o,w,c,b,s),r.hasPinched=h,r.scaleGroups(w,b),!h&&l&&v===1&&this.runPointActions(r.normalize(n)))},dragStart:function(n){var t=this.chart;t.mouseIsDown=n.type,t.cancelClick=!1,t.mouseDownX=this.mouseDownX=n.chartX,t.mouseDownY=this.mouseDownY=n.chartY},drag:function(n){var i=this.chart,s=i.options.chart,t=n.chartX,r=n.chartY,a=this.zoomHor,v=this.zoomVert,u=i.plotLeft,f=i.plotTop,h=i.plotWidth,c=i.plotHeight,l,e=this.mouseDownX,o=this.mouseDownY;t<u?t=u:t>u+h&&(t=u+h),r<f?r=f:r>f+c&&(r=f+c),this.hasDragged=Math.sqrt(Math.pow(e-t,2)+Math.pow(o-r,2)),this.hasDragged>10&&(l=i.isInsidePlot(e-u,o-f),i.hasCartesianSeries&&(this.zoomX||this.zoomY)&&l&&!this.selectionMarker&&(this.selectionMarker=i.renderer.rect(u,f,a?1:h,v?1:c,0).attr({fill:s.selectionMarkerFill||"rgba(69,114,167,0.25)",zIndex:7}).add()),this.selectionMarker&&a&&(t-=e,this.selectionMarker.attr({width:w(t),x:(t>0?0:t)+e})),this.selectionMarker&&v&&(t=r-o,this.selectionMarker.attr({height:w(t),y:(t>0?0:t)+o})),l&&!this.selectionMarker&&s.panning&&i.pan(n,s.panning))},drop:function(n){var r=this.chart,f=this.hasPinched;if(this.selectionMarker){var o={xAxis:[],yAxis:[],originalEvent:n.originalEvent||n},u=this.selectionMarker,s=u.x,h=u.y,c;(this.hasDragged||f)&&(t(r.axes,function(n){if(n.zoomEnabled){var t=n.horiz,r=n.toValue(t?s:h),t=n.toValue(t?s+u.width:h+u.height);isNaN(r)||isNaN(t)||(o[n.xOrY+"Axis"].push({axis:n,min:a(r,t),max:i(r,t)}),c=!0)}}),c&&l(r,"selection",o,function(n){r.zoom(e(n,f?{animation:!1}:null))})),this.selectionMarker=this.selectionMarker.destroy(),f&&this.scaleGroups()}r&&(y(r.container,{cursor:r._cursor}),r.cancelClick=this.hasDragged>10,r.mouseIsDown=this.hasDragged=this.hasPinched=!1,this.pinchDown=[])},onContainerMouseDown:function(n){n=this.normalize(n),n.preventDefault&&n.preventDefault(),this.dragStart(n)},onDocumentMouseUp:function(n){this.drop(n)},onDocumentMouseMove:function(n){var t=this.chart,i=this.chartPosition,r=t.hoverSeries,n=this.normalize(n,i);i&&r&&!this.inClass(n.target,"highcharts-tracker")&&!t.isInsidePlot(n.chartX-t.plotLeft,n.chartY-t.plotTop)&&this.reset()},onContainerMouseLeave:function(){this.reset(),this.chartPosition=null},onContainerMouseMove:function(n){var t=this.chart,n=this.normalize(n);n.returnValue=!1,t.mouseIsDown==="mousedown"&&this.drag(n),(this.inClass(n.target,"highcharts-tracker")||t.isInsidePlot(n.chartX-t.plotLeft,n.chartY-t.plotTop))&&!t.openMenu&&this.runPointActions(n)},inClass:function(n,t){for(var i;n;){if(i=s(n,"class")){if(i.indexOf(t)!==-1)return!0;if(i.indexOf("highcharts-container")!==-1)return!1}n=n.parentNode}},onTrackerMouseOut:function(n){var t=this.chart.hoverSeries;!t||t.options.stickyTracking||this.inClass(n.toElement||n.relatedTarget,"highcharts-tooltip")||t.onMouseOut()},onContainerClick:function(n){var t=this.chart,i=t.hoverPoint,o=t.plotLeft,s=t.plotTop,h=t.inverted,r,u,f,n=this.normalize(n);n.cancelBubble=!0,t.cancelClick||(i&&this.inClass(n.target,"highcharts-tracker")?(r=this.chartPosition,u=i.plotX,f=i.plotY,e(i,{pageX:r.left+o+(h?t.plotWidth-f:u),pageY:r.top+s+(h?t.plotHeight-u:f)}),l(i.series,"click",e(n,{point:i})),t.hoverPoint&&i.firePointEvent("click",n)):(e(n,this.getCoordinates(n)),t.isInsidePlot(n.chartX-o,n.chartY-s)&&l(t,"click",n)))},onContainerTouchStart:function(n){var t=this.chart;n.touches.length===1?(n=this.normalize(n),t.isInsidePlot(n.chartX-t.plotLeft,n.chartY-t.plotTop)?(this.runPointActions(n),this.pinch(n)):this.reset()):n.touches.length===2&&this.pinch(n)},onContainerTouchMove:function(n){(n.touches.length===1||n.touches.length===2)&&this.pinch(n)},onDocumentTouchEnd:function(n){this.drop(n)},setDOMEvents:function(){var i=this,n=i.chart.container,r;this._events=r=[[n,"onmousedown","onContainerMouseDown"],[n,"onmousemove","onContainerMouseMove"],[n,"onclick","onContainerClick"],[n,"mouseleave","onContainerMouseLeave"],[c,"mousemove","onDocumentMouseMove"],[c,"mouseup","onDocumentMouseUp"]],gr&&r.push([n,"ontouchstart","onContainerTouchStart"],[n,"ontouchmove","onContainerTouchMove"],[c,"touchend","onDocumentTouchEnd"]),t(r,function(n){i["_"+n[2]]=function(t){i[n[2]](t)},n[1].indexOf("on")===0?n[0][n[1]]=i["_"+n[2]]:b(n[0],n[1],i["_"+n[2]])})},destroy:function(){var n=this;t(n._events,function(t){t[1].indexOf("on")===0?t[0][t[1]]=null:lt(t[0],t[1],n["_"+t[2]])}),delete n._events,clearInterval(n.tooltipTimeout)}},wr.prototype={init:function(t,i){var r=this,u=i.itemStyle,f=n(i.padding,8),e=i.itemMarginTop||0;this.options=i,i.enabled&&(r.baseline=h(u.fontSize)+3+e,r.itemStyle=u,r.itemHiddenStyle=o(u,i.itemHiddenStyle),r.itemMarginTop=e,r.padding=f,r.initialItemX=f,r.initialItemY=f-5,r.maxItemWidth=0,r.chart=t,r.itemHeight=0,r.lastLineHeight=0,r.render(),b(r.chart,"endResize",function(){r.positionCheckboxes()}))},colorizeItem:function(n,t){var u=this.options,r=n.legendItem,h=n.legendLine,e=n.legendSymbol,i=this.itemHiddenStyle.color,u=t?u.itemStyle.color:i,o=t?n.color:i,i=n.options&&n.options.marker,c={stroke:o,fill:o},s;if(r&&r.css({fill:u,color:u}),h&&h.attr({stroke:o}),e){if(i&&e.isMarker)for(s in i=n.convertAttribs(i),i)r=i[s],r!==f&&(c[s]=r);e.attr(c)}},positionItem:function(n){var i=this.options,f=i.symbolPadding,i=!i.rtl,t=n._legendItemPos,r=t[0],t=t[1],u=n.checkbox;n.legendGroup&&n.legendGroup.translate(i?r:this.legendWidth-r-2*f-4,t),u&&(u.x=r,u.y=t)},destroyItem:function(n){var i=n.checkbox;t(["legendItem","legendLine","legendSymbol","legendGroup"],function(t){n[t]&&(n[t]=n[t].destroy())}),i&&sr(n.checkbox)},destroy:function(){var n=this.group,t=this.box;t&&(this.box=t.destroy()),n&&(this.group=n.destroy())},positionCheckboxes:function(n){var r=this.group.alignAttr,i,u=this.clipHeight||this.legendHeight;r&&(i=r.translateY,t(this.allItems,function(t){var f=t.checkbox,e;f&&(e=i+f.y+(n||0)+3,y(f,{left:r.translateX+t.legendItemWidth+f.x-20+"px",top:e+"px",display:e>i-6&&e<i+u-6?"":rt}))}))},renderTitle:function(){var n=this.padding,t=this.options.title,i=0;t.text&&(this.title||(this.title=this.chart.renderer.label(t.text,n-3,n-4,null,null,null,null,null,"legend-title").attr({zIndex:1}).css(t.style).add(this.group)),n=this.title.getBBox(),i=n.height,this.offsetWidth=n.width,this.contentGroup.attr({translateY:i})),this.titleHeight=i},renderItem:function(t){var w,r=this,a=r.chart,s=a.renderer,u=r.options,h=u.layout==="horizontal",f=u.symbolWidth,v=u.symbolPadding,k=r.itemStyle,d=r.itemHiddenStyle,g=r.padding,nt=h?n(u.itemDistance,8):0,tt=!u.rtl,it=u.width,y=u.itemMarginBottom||0,p=r.itemMarginTop,c=r.initialItemX,e=t.legendItem,rt=t.series||t,ut=rt.options,ft=ut.showCheckbox,ot=u.useHTML;!e&&(t.legendGroup=s.g("legend-item").attr({zIndex:1}).add(r.scrollGroup),rt.drawLegendSymbol(r,t),t.legendItem=e=s.text(u.labelFormat?bi(u.labelFormat,t):u.labelFormatter.call(t),tt?f+v:-v,r.baseline,ot).css(o(t.visible?k:d)).attr({align:tt?"left":"right",zIndex:2}).add(t.legendGroup),(ot?e:t.legendGroup).on("mouseover",function(){t.setState("hover"),e.css(r.options.itemHoverStyle)}).on("mouseout",function(){e.css(t.visible?k:d),t.setState()}).on("click",function(n){var i=function(){t.setVisible()},n={browserEvent:n};t.firePointEvent?t.firePointEvent("legendItemClick",n,i):l(t,"legendItemClick",n,i)}),r.colorizeItem(t,t.visible),ut&&ft)&&(t.checkbox=et("input",{type:"checkbox",checked:t.selected,defaultChecked:t.selected},u.itemCheckboxStyle,a.container),b(t.checkbox,"click",function(n){l(t,"checkboxClick",{checked:n.target.checked},function(){t.select()})})),s=e.getBBox(),w=t.legendItemWidth=u.itemWidth||f+v+s.width+nt+(ft?20:0),u=w,r.itemHeight=f=s.height,h&&r.itemX-c+u>(it||a.chartWidth-2*g-c)&&(r.itemX=c,r.itemY+=p+r.lastLineHeight+y,r.lastLineHeight=0),r.maxItemWidth=i(r.maxItemWidth,u),r.lastItemY=p+r.itemY+y,r.lastLineHeight=i(f,r.lastLineHeight),t._legendItemPos=[r.itemX,r.itemY],h?r.itemX+=u:(r.itemY+=p+f+y,r.lastLineHeight=f),r.offsetWidth=it||i((h?r.itemX-c-nt:u)+g,r.offsetWidth)},render:function(){var i=this,a=i.chart,l=a.renderer,c=i.group,r,v,h,u,o=i.box,s=i.options,p=i.padding,y=s.borderWidth,w=s.backgroundColor;i.itemX=i.initialItemX,i.itemY=i.initialItemY,i.offsetWidth=0,i.lastItemY=0,c||(i.group=c=l.g("legend").attr({zIndex:7}).add(),i.contentGroup=l.g().attr({zIndex:1}).add(c),i.scrollGroup=l.g().add(i.contentGroup)),i.renderTitle(),r=[],t(a.series,function(t){var i=t.options;n(i.showInLegend,i.linkedTo===f?f:!1,!0)&&(r=r.concat(t.legendItems||(i.legendType==="point"?t.data:t)))}),of(r,function(n,t){return(n.options&&n.options.legendIndex||0)-(t.options&&t.options.legendIndex||0)}),s.reversed&&r.reverse(),i.allItems=r,i.display=v=!!r.length,t(r,function(n){i.renderItem(n)}),h=s.width||i.offsetWidth,u=i.lastItemY+i.lastLineHeight+i.titleHeight,u=i.handleOverflow(u),(y||w)&&(h+=p,u+=p,o?h>0&&u>0&&(o[o.isNew?"attr":"animate"](o.crisp(null,null,null,h,u)),o.isNew=!1):(i.box=o=l.rect(0,0,h,u,s.borderRadius,y||0).attr({stroke:s.borderColor,"stroke-width":y||0,fill:w||rt}).add(c).shadow(s.shadow),o.isNew=!0),o[v?"show":"hide"]()),i.legendWidth=h,i.legendHeight=u,t(r,function(n){i.positionItem(n)}),v&&c.align(e({width:h,height:u},s),!0,"spacingBox"),a.isResizing||this.positionCheckboxes()},handleOverflow:function(t){var e=this,u=this.chart,o=u.renderer,f=this.options,i=f.y,i=u.spacingBox.height+(f.verticalAlign==="top"?-i:i)-this.padding,l=f.maxHeight,s=this.clipRect,c=f.navigation,v=n(c.animation,!0),h=c.arrowSize||12,r=this.nav;return f.layout==="horizontal"&&(i/=2),l&&(i=a(i,l)),t>i&&!f.useHTML?(this.clipHeight=u=i-20-this.titleHeight,this.pageCount=ci(t/u),this.currentPage=n(this.currentPage,1),this.fullHeight=t,s||(s=e.clipRect=o.clipRect(0,0,9999,0),e.contentGroup.clip(s)),s.attr({height:u}),r||(this.nav=r=o.g().attr({zIndex:1}).add(this.group),this.up=o.symbol("triangle",0,0,h,h).on("click",function(){e.scroll(-1,v)}).add(r),this.pager=o.text("",15,10).css(c.style).add(r),this.down=o.symbol("triangle-down",0,0,h,h).on("click",function(){e.scroll(1,v)}).add(r)),e.scroll(0),t=i):r&&(s.attr({height:u.chartHeight}),r.hide(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),t},scroll:function(n,t){var u=this.pageCount,i=this.currentPage+n,r=this.clipHeight,e=this.options.navigation,o=e.activeColor,s=e.inactiveColor,e=this.pager,h=this.padding;i>u&&(i=u),i>0&&(t!==f&&fr(t,this.chart),this.nav.attr({translateX:h,translateY:r+7+this.titleHeight,visibility:"visible"}),this.up.attr({fill:i===1?s:o}).css({cursor:i===1?"default":"pointer"}),e.attr({text:i+"/"+this.pageCount}),this.down.attr({x:18+this.pager.getBBox().width,fill:i===u?s:o}).css({cursor:i===u?"default":"pointer"}),r=-a(r*(i-1),this.fullHeight-r+h)+1,this.scrollGroup.animate({translateY:r}),e.attr({text:i+"/"+u}),this.currentPage=i,this.positionCheckboxes(r))}},/Trident\/7\.0/.test(ii)&&su(wr.prototype,"positionItem",function(n,t){var i=this,r=function(){n.call(i,t)};i.chart.renderer.forExport?r():setTimeout(r)}),yu.prototype={init:function(t,i){var f,u=t.series,e,r,s;if(t.series=null,f=o(tt,t),f.series=t.series=u,u=f.chart,this.margin=this.splashArray("margin",u),this.spacing=this.splashArray("spacing",u),e=u.events,this.bounds={h:{},v:{}},this.callback=i,this.isResizing=0,this.options=f,this.axes=[],this.series=[],this.hasCartesianSeries=u.showAxes,r=this,r.index=di.length,di.push(r),u.reflow!==!1&&b(r,"load",function(){r.initReflow()}),e)for(s in e)b(r,s,e[s]);r.xAxis=[],r.yAxis=[],r.animation=vt?!1:n(u.animation,!0),r.pointCount=0,r.counters=new ef,r.firstRender()},initSeries:function(n){var t=this.options.chart;return(t=ct[n.type||t.type||t.defaultSeriesType])||ni(17,!0),t=new t,t.init(this,n),t},addSeries:function(t,i,r){var f,u=this;return t&&(i=n(i,!0),l(u,"addSeries",{options:t},function(){f=u.initSeries(t),u.isDirtyLegend=!0,u.linkSeries(),i&&u.redraw(r)})),f},addAxis:function(t,i,r,u){var f=i?"xAxis":"yAxis",e=this.options;new pr(this,o(t,{index:this[f].length,isX:i})),e[f]=gt(e[f]||{}),e[f].push(t),n(r,!0)&&this.redraw(u)},isInsidePlot:function(n,t,i){var r=i?t:n,n=i?n:t;return r>=0&&r<=this.plotWidth&&n>=0&&n<=this.plotHeight},adjustTickAmounts:function(){this.options.chart.alignTicks!==!1&&t(this.axes,function(n){n.adjustTickAmount()}),this.maxTicks=null},redraw:function(n){var u=this.axes,i=this.series,f=this.pointer,h=this.legend,c=this.isDirtyLegend,o,a,s=this.isDirtyBox,v=i.length,r=v,y=this.renderer,p=y.isHidden(),w=[];for(fr(n,this),p&&this.cloneRenderTo(),this.layOutTitles();r--;)if(n=i[r],n.options.stacking&&(o=!0,n.isDirty)){a=!0;break}if(a)for(r=v;r--;)(n=i[r],n.options.stacking)&&(n.isDirty=!0);t(i,function(n){n.isDirty&&n.options.legendType==="point"&&(c=!0)}),c&&h.options.enabled&&(h.render(),this.isDirtyLegend=!1),o&&this.getStacks(),this.hasCartesianSeries&&(this.isResizing||(this.maxTicks=null,t(u,function(n){n.setScale()})),this.adjustTickAmounts(),this.getMargins(),t(u,function(n){n.isDirty&&(s=!0)}),t(u,function(n){n.isDirtyExtremes&&(n.isDirtyExtremes=!1,w.push(function(){l(n,"afterSetExtremes",e(n.eventArgs,n.getExtremes())),delete n.eventArgs})),(s||o)&&n.redraw()})),s&&this.drawChartBox(),t(i,function(n){n.isDirty&&n.visible&&(!n.isCartesian||n.xAxis)&&n.redraw()}),f&&f.reset&&f.reset(!0),y.draw(),l(this,"redraw"),p&&this.cloneRenderTo(!0),t(w,function(n){n.call()})},showLoading:function(n){var r=this.options,t=this.loadingDiv,i=r.loading;t||(this.loadingDiv=t=et(gi,{className:"highcharts-loading"},e(i.style,{zIndex:10,display:rt}),this.container),this.loadingSpan=et("span",null,i.labelStyle,t)),this.loadingSpan.innerHTML=n||r.lang.loading,this.loadingShown||(y(t,{opacity:0,display:"",left:this.plotLeft+"px",top:this.plotTop+"px",width:this.plotWidth+"px",height:this.plotHeight+"px"}),rf(t,{opacity:i.style.opacity},{duration:i.showDuration||0}),this.loadingShown=!0)},hideLoading:function(){var t=this.options,n=this.loadingDiv;n&&rf(n,{opacity:0},{duration:t.loading.hideDuration||100,complete:function(){y(n,{display:rt})}}),this.loadingShown=!1},get:function(n){for(var i=this.axes,r=this.series,u,t=0;t<i.length;t++)if(i[t].options.id===n)return i[t];for(t=0;t<r.length;t++)if(r[t].options.id===n)return r[t];for(t=0;t<r.length;t++)for(u=r[t].points||[],i=0;i<u.length;i++)if(u[i].id===n)return u[i];return null},getAxes:function(){var r=this,n=this.options,i=n.xAxis=gt(n.xAxis||{}),n=n.yAxis=gt(n.yAxis||{});t(i,function(n,t){n.index=t,n.isX=!0}),t(n,function(n,t){n.index=t}),i=i.concat(n),t(i,function(n){new pr(r,n)}),r.adjustTickAmounts()},getSelectedPoints:function(){var n=[];return t(this.series,function(t){n=n.concat(tf(t.points||[],function(n){return n.selected}))}),n},getSelectedSeries:function(){return tf(this.series,function(n){return n.selected})},getStacks:function(){var i=this;t(i.yAxis,function(n){n.stacks&&n.hasVisibleSeries&&(n.oldStacks=n.stacks)}),t(i.series,function(t){t.options.stacking&&(t.visible===!0||i.options.chart.ignoreHiddenSeries===!1)&&(t.stackKey=t.type+n(t.options.stack,""))})},showResetZoom:function(){var t=this,i=tt.lang,n=t.options.chart.resetZoomButton,r=n.theme,u=r.states,f=n.relativeTo==="chart"?null:"plotBox";this.resetZoomButton=t.renderer.button(i.resetZoom,null,null,function(){t.zoomOut()},r,u&&u.hover).attr({align:n.position.align,title:i.resetZoomTitle}).add().align(n.position,!1,f)},zoomOut:function(){var n=this;l(n,"selection",{resetSelection:!0},function(){n.zoom()})},zoom:function(i){var u,e=this.pointer,f=!1,r;!i||i.resetSelection?t(this.axes,function(n){u=n.zoom()}):t(i.xAxis.concat(i.yAxis),function(n){var t=n.axis,i=t.isXAxis;(e[i?"zoomX":"zoomY"]||e[i?"pinchX":"pinchY"])&&(u=t.zoom(n.min,n.max),t.displayBtn&&(f=!0))}),r=this.resetZoomButton,f&&!r?this.showResetZoom():!f&&ft(r)&&(this.resetZoomButton=r.destroy()),u&&this.redraw(n(this.options.chart.animation,i&&i.animation,this.pointCount<100))},pan:function(n,r){var u=this,f=u.hoverPoints,e;f&&t(f,function(n){n.setState()}),t(r==="xy"?[1,0]:[1],function(t){var s=n[t?"chartX":"chartY"],r=u[t?"xAxis":"yAxis"][0],f=u[t?"mouseDownX":"mouseDownY"],h=(r.pointRange||0)/2,o=r.getExtremes(),c=r.toValue(f-s,!0)+h,f=r.toValue(f+u[t?"plotWidth":"plotHeight"]-s,!0)-h;r.series.length&&c>a(o.dataMin,o.min)&&f<i(o.dataMax,o.max)&&(r.setExtremes(c,f,!1,!1,{trigger:"pan"}),e=!0),u[t?"mouseDownX":"mouseDownY"]=s}),e&&u.redraw(!1),y(u.container,{cursor:"move"})},setTitle:function(n,i){var f,r=this,u=r.options,e;e=u.title=o(u.title,n),f=u.subtitle=o(u.subtitle,i),u=f,t([["title",n,e],["subtitle",i,u]],function(n){var t=n[0],i=r[t],u=n[1],n=n[2];i&&u&&(r[t]=i=i.destroy()),n&&n.text&&!i&&(r[t]=r.renderer.text(n.text,0,0,n.useHTML).attr({align:n.align,"class":"highcharts-"+t,zIndex:n.zIndex||4}).css(n.style).add())}),r.layOutTitles()},layOutTitles:function(){var n=0,r=this.title,u=this.subtitle,t=this.options,i=t.title,t=t.subtitle,f=this.spacingBox.width-44;!r||(r.css({width:(i.width||f)+"px"}).align(e({y:15},i),!1,"spacingBox"),i.floating||i.verticalAlign)||(n=r.getBBox().height,n>=18&&n<=25&&(n=15)),u&&(u.css({width:(t.width||f)+"px"}).align(e({y:n+i.margin},t),!1,"spacingBox"),!t.floating&&!t.verticalAlign&&(n=ci(n+u.getBBox().height))),this.titleOffset=n},getChartSize:function(){var t=this.options.chart,r=this.renderToClone||this.renderTo;this.containerWidth=ou(r,"width"),this.containerHeight=ou(r,"height"),this.chartWidth=i(0,t.width||this.containerWidth||600),this.chartHeight=i(0,n(t.height,this.containerHeight>19?this.containerHeight:400))},cloneRenderTo:function(n){var t=this.renderToClone,i=this.container;n?t&&(this.renderTo.appendChild(i),sr(t),delete this.renderToClone):(i&&i.parentNode===this.renderTo&&this.renderTo.removeChild(i),this.renderToClone=t=this.renderTo.cloneNode(0),y(t,{position:"absolute",top:"-9999px",display:"block"}),c.body.appendChild(t),i&&t.appendChild(i))},getContainer:function(){var n,i=this.options.chart,t,r,u;this.renderTo=n=i.renderTo,u="highcharts-"+pu++,yt(n)&&(this.renderTo=n=c.getElementById(n)),n||ni(13,!0),t=h(s(n,"data-highcharts-chart")),!isNaN(t)&&di[t]&&di[t].destroy(),s(n,"data-highcharts-chart",this.index),n.innerHTML="",n.offsetWidth||this.cloneRenderTo(),this.getChartSize(),t=this.chartWidth,r=this.chartHeight,this.container=n=et(gi,{className:"highcharts-container"+(i.className?" "+i.className:""),id:u},e({position:"relative",overflow:"hidden",width:t+"px",height:r+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)"},i.style),this.renderToClone||n),this._cursor=n.style.cursor,this.renderer=i.forExport?new ei(n,t,r,!0):new cr(n,t,r),vt&&this.renderer.create(this,n,t,r)},getMargins:function(){var e=this.spacing,o,s=this.legend,u=this.margin,f=this.options.legend,h=n(f.margin,10),c=f.x,l=f.y,a=f.align,v=f.verticalAlign,y=this.titleOffset;this.resetMargins(),o=this.axisOffset,y&&!r(u[0])&&(this.plotTop=i(this.plotTop,y+this.options.title.margin+e[0])),s.display&&!f.floating&&(a==="right"?r(u[1])||(this.marginRight=i(this.marginRight,s.legendWidth-c+h+e[1])):a==="left"?r(u[3])||(this.plotLeft=i(this.plotLeft,s.legendWidth+c+h+e[3])):v==="top"?r(u[0])||(this.plotTop=i(this.plotTop,s.legendHeight+l+h+e[0])):v!=="bottom"||r(u[2])||(this.marginBottom=i(this.marginBottom,s.legendHeight-l+h+e[2]))),this.extraBottomMargin&&(this.marginBottom+=this.extraBottomMargin),this.extraTopMargin&&(this.plotTop+=this.extraTopMargin),this.hasCartesianSeries&&t(this.axes,function(n){n.getOffset()}),r(u[3])||(this.plotLeft+=o[3]),r(u[0])||(this.plotTop+=o[0]),r(u[2])||(this.marginBottom+=o[2]),r(u[1])||(this.marginRight+=o[1]),this.setChartSize()},initReflow:function(){function t(t){var f=i.width||ou(r,"width"),e=i.height||ou(r,"height"),t=t?t.target:d;!n.hasUserSize&&f&&e&&(t===d||t===c)&&((f!==n.containerWidth||e!==n.containerHeight)&&(clearTimeout(u),n.reflowTimeout=u=setTimeout(function(){n.container&&(n.setSize(f,e,!1),n.hasUserSize=null)},100)),n.containerWidth=f,n.containerHeight=e)}var n=this,i=n.options.chart,r=n.renderTo,u;n.reflow=t,b(d,"resize",t),b(n,"destroy",function(){lt(d,"resize",t)})},setSize:function(n,f,e){var o=this,s,h,c;o.isResizing+=1,c=function(){o&&l(o,"endResize",null,function(){o.isResizing-=1})},fr(e,o),o.oldChartHeight=o.chartHeight,o.oldChartWidth=o.chartWidth,r(n)&&(o.chartWidth=s=i(0,u(n)),o.hasUserSize=!!s),r(f)&&(o.chartHeight=h=i(0,u(f))),y(o.container,{width:s+"px",height:h+"px"}),o.setChartSize(!0),o.renderer.setSize(s,h,e),o.maxTicks=null,t(o.axes,function(n){n.isDirty=!0,n.setScale()}),t(o.series,function(n){n.isDirty=!0}),o.isDirtyLegend=!0,o.isDirtyBox=!0,o.getMargins(),o.redraw(e),o.oldChartHeight=null,l(o,"resize"),ki===!1?c():setTimeout(c,ki&&ki.duration||500)},setChartSize:function(n){var e=this.inverted,o=this.renderer,r=this.chartWidth,v=this.chartHeight,y=this.options.chart,f=this.spacing,s=this.clipOffset,l,a,h,c;this.plotLeft=l=u(this.plotLeft),this.plotTop=a=u(this.plotTop),this.plotWidth=h=i(0,u(r-l-this.marginRight)),this.plotHeight=c=i(0,u(v-a-this.marginBottom)),this.plotSizeX=e?c:h,this.plotSizeY=e?h:c,this.plotBorderWidth=y.plotBorderWidth||0,this.spacingBox=o.spacingBox={x:f[3],y:f[0],width:r-f[3]-f[1],height:v-f[0]-f[2]},this.plotBox=o.plotBox={x:l,y:a,width:h,height:c},r=2*nt(this.plotBorderWidth/2),e=ci(i(r,s[3])/2),o=ci(i(r,s[0])/2),this.clipBox={x:e,y:o,width:nt(this.plotSizeX-i(r,s[1])/2-e),height:nt(this.plotSizeY-i(r,s[2])/2-o)},n||t(this.axes,function(n){n.setAxisSize(),n.setAxisTranslation()})},resetMargins:function(){var t=this.spacing,i=this.margin;this.plotTop=n(i[0],t[0]),this.marginRight=n(i[1],t[1]),this.marginBottom=n(i[2],t[2]),this.plotLeft=n(i[3],t[3]),this.axisOffset=[0,0,0,0],this.clipOffset=[0,0,0,0]},drawChartBox:function(){var n=this.options.chart,r=this.renderer,a=this.chartWidth,v=this.chartHeight,t=this.chartBackground,y=this.plotBackground,h=this.plotBorder,p=this.plotBGImage,u=n.borderWidth||0,w=n.backgroundColor,b=n.plotBackgroundColor,k=n.plotBackgroundImage,c=n.plotBorderWidth||0,i,f=this.plotLeft,e=this.plotTop,o=this.plotWidth,s=this.plotHeight,d=this.plotBox,g=this.clipRect,l=this.clipBox;i=u+(n.shadow?8:0),(u||w)&&(t?t.animate(t.crisp(null,null,null,a-i,v-i)):(t={fill:w||rt},u&&(t.stroke=n.borderColor,t["stroke-width"]=u),this.chartBackground=r.rect(i/2,i/2,a-i,v-i,n.borderRadius,u).attr(t).add().shadow(n.shadow))),b&&(y?y.animate(d):this.plotBackground=r.rect(f,e,o,s,0).attr({fill:b}).add().shadow(n.plotShadow)),k&&(p?p.animate(d):this.plotBGImage=r.image(k,f,e,o,s).add()),g?g.animate({width:l.width,height:l.height}):this.clipRect=r.clipRect(l),c&&(h?h.animate(h.crisp(null,f,e,o,s)):this.plotBorder=r.rect(f,e,o,s,0,-c).attr({stroke:n.plotBorderColor,"stroke-width":c,zIndex:1}).add()),this.isDirtyBox=!1},propFromSeries:function(){var i=this,u=i.options.chart,n,f=i.options.series,e,r;t(["inverted","angular","polar"],function(t){for(n=ct[u.type||u.defaultSeriesType],r=i[t]||u[t]||n&&n.prototype[t],e=f&&f.length;!r&&e--;)(n=ct[f[e].type])&&n.prototype[t]&&(r=!0);i[t]=r})},linkSeries:function(){var n=this,i=n.series;t(i,function(n){n.linkedSeries.length=0}),t(i,function(t){var i=t.options.linkedTo;yt(i)&&(i=i===":previous"?n.series[t.index-1]:n.get(i))&&(i.linkedSeries.push(t),t.linkedParent=i)})},render:function(){var n=this,r=n.axes,u=n.renderer,f=n.options,o=f.labels,i=f.credits,s;n.setTitle(),n.legend=new wr(n,f.legend),n.getStacks(),t(r,function(n){n.setScale()}),n.getMargins(),n.maxTicks=null,t(r,function(n){n.setTickPositions(!0),n.setMaxTicks()}),n.adjustTickAmounts(),n.getMargins(),n.drawChartBox(),n.hasCartesianSeries&&t(r,function(n){n.render()}),n.seriesGroup||(n.seriesGroup=u.g("series-group").attr({zIndex:3}).add()),t(n.series,function(n){n.translate(),n.setTooltipPoints(),n.render()}),o.items&&t(o.items,function(t){var i=e(o.style,t.style),r=h(i.left)+n.plotLeft,f=h(i.top)+n.plotTop+12;delete i.left,delete i.top,u.text(t.html,r,f).attr({zIndex:2}).css(i).add()}),i.enabled&&!n.credits&&(s=i.href,n.credits=u.text(i.text,0,0).on("click",function(){s&&(location.href=s)}).attr({align:i.position.align,zIndex:8}).css(i.style).add().align(i.position)),n.hasRendered=!0},destroy:function(){var n=this,u=n.axes,e=n.series,r=n.container,i,o=r&&r.parentNode;for(l(n,"destroy"),di[n.index]=f,n.renderTo.removeAttribute("data-highcharts-chart"),lt(n),i=u.length;i--;)u[i]=u[i].destroy();for(i=e.length;i--;)e[i]=e[i].destroy();t("title,subtitle,chartBackground,plotBackground,plotBGImage,plotBorder,seriesGroup,clipRect,credits,pointer,scroller,rangeSelector,legend,resetZoomButton,tooltip,renderer".split(","),function(t){var i=n[t];i&&i.destroy&&(n[t]=i.destroy())}),r&&(r.innerHTML="",lt(r),o&&sr(r));for(i in n)delete n[i]},isReadyToRender:function(){var n=this;return!ht&&d==d.top&&c.readyState!=="complete"||vt&&!d.canvg?(vt?gf.push(function(){n.firstRender()},n.options.global.canvasToolsURL):c.attachEvent("onreadystatechange",function(){c.detachEvent("onreadystatechange",n.firstRender),c.readyState==="complete"&&n.firstRender()}),!1):!0},firstRender:function(){var n=this,i=n.options,r=n.callback;n.isReadyToRender()&&(n.getContainer(),l(n,"init"),n.resetMargins(),n.setChartSize(),n.propFromSeries(),n.getAxes(),t(i.series||[],function(t){n.initSeries(t)}),n.linkSeries(),l(n,"beforeRender"),n.pointer=new vu(n,i),n.render(),n.renderer.draw(),r&&r.apply(n,[n]),t(n.callbacks,function(t){t.apply(n,[n])}),n.cloneRenderTo(!0),l(n,"load"))},splashArray:function(t,i){var r=i[t],r=ft(r)?r:[r,r,r,r];return[n(i[t+"Top"],r[0]),n(i[t+"Right"],r[1]),n(i[t+"Bottom"],r[2]),n(i[t+"Left"],r[3])]}},yu.prototype.callbacks=[],tr=function(){},tr.prototype={init:function(n,t,i){return this.series=n,this.applyOptions(t,i),this.pointAttr={},n.options.colorByPoint&&(t=n.options.colors||n.chart.options.colors,this.color=this.color||t[n.colorCounter++],n.colorCounter===t.length)&&(n.colorCounter=0),n.chart.pointCount++,this},applyOptions:function(n,t){var i=this.series,r=i.pointValKey,n=tr.prototype.optionsToObject.call(this,n);return e(this,n),this.options=this.options?e(this.options,n):n,r&&(this.y=this[r]),this.x===f&&i&&(this.x=t===f?i.autoIncrement():t),this},optionsToObject:function(n){var t={},i=this.series,r=i.pointArrayMap||["y"],u=r.length,f=0,e=0;if(typeof n=="number"||n===null)t[r[0]]=n;else if(ir(n))for(n.length>u&&(i=typeof n[0],i==="string"?t.name=n[0]:i==="number"&&(t.x=n[0]),f++);e<u;)t[r[e++]]=n[f++];else typeof n=="object"&&(t=n,n.dataLabels&&(i._hasPointLabels=!0),n.marker&&(i._hasPointMarkers=!0));return t},destroy:function(){var n=this.series.chart,t=n.hoverPoints,i;n.pointCount--,t&&(this.setState(),wt(t,this),!t.length)&&(n.hoverPoints=null),this===n.hoverPoint&&this.onMouseOut(),(this.graphic||this.dataLabel)&&(lt(this),this.destroyElements()),this.legendItem&&n.legend.destroyItem(this);for(i in this)this[i]=null},destroyElements:function(){for(var i="graphic,dataLabel,dataLabelUpper,group,connector,shadowGroup".split(","),n,t=6;t--;)n=i[t],this[n]&&(this[n]=this[n].destroy())},getLabelConfig:function(){return{x:this.category,y:this.y,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}},select:function(i,r){var u=this,f=u.series,e=f.chart,i=n(i,!u.selected);u.firePointEvent(i?"select":"unselect",{accumulate:r},function(){u.selected=u.options.selected=i,f.options.data[ui(u,f.data)]=u.options,u.setState(i&&"select"),r||t(e.getSelectedPoints(),function(n){n.selected&&n!==u&&(n.selected=n.options.selected=!1,f.options.data[ui(n,f.data)]=n.options,n.setState(""),n.firePointEvent("unselect"))})})},onMouseOver:function(n){var u=this.series,t=u.chart,i=t.tooltip,r=t.hoverPoint;r&&r!==this&&r.onMouseOut(),this.firePointEvent("mouseOver"),i&&(!i.shared||u.noSharedTooltip)&&i.refresh(this,n),this.setState("hover"),t.hoverPoint=this},onMouseOut:function(){var n=this.series.chart,t=n.hoverPoints;t&&ui(this,t)!==-1||(this.firePointEvent("mouseOut"),this.setState(),n.hoverPoint=null)},tooltipFormatter:function(i){var u=this.series,r=u.tooltipOptions,o=n(r.valueDecimals,""),f=r.valuePrefix||"",e=r.valueSuffix||"";return t(u.pointArrayMap||["y"],function(n){n="{point."+n,(f||e)&&(i=i.replace(n+"}",f+n+"}"+e)),i=i.replace(n+"}",n+":,."+o+"f}")}),bi(i,{point:this,series:this.series})},update:function(t,i,r){var u=this,f=u.series,o=u.graphic,e,c=f.data,s=f.chart,h=f.options,i=n(i,!0);u.firePointEvent("update",{options:t},function(){u.applyOptions(t),ft(t)&&(f.getAttribs(),o)&&(t&&t.marker&&t.marker.symbol?u.graphic=o.destroy():o.attr(u.pointAttr[u.state||""])),e=ui(u,c),f.xData[e]=u.x,f.yData[e]=f.toYData?f.toYData(u):u.y,f.zData[e]=u.z,h.data[e]=u.options,f.isDirty=f.isDirtyData=!0,!f.fixedBox&&f.hasCartesianSeries&&(s.isDirtyBox=!0),h.legendType==="point"&&s.legend.destroyItem(u),i&&s.redraw(r)})},remove:function(t,i){var f=this,r=f.series,o=r.points,s=r.chart,u,e=r.data;fr(i,s),t=n(t,!0),f.firePointEvent("remove",null,function(){u=ui(f,e),e.length===o.length&&o.splice(u,1),e.splice(u,1),r.options.data.splice(u,1),r.xData.splice(u,1),r.yData.splice(u,1),r.zData.splice(u,1),f.destroy(),r.isDirty=!0,r.isDirtyData=!0,t&&s.redraw()})},firePointEvent:function(n,t,i){var r=this,u=this.series.options;(u.point.events[n]||r.options&&r.options.events&&r.options.events[n])&&this.importEvents(),n==="click"&&u.allowPointSelect&&(i=function(n){r.select(null,n.ctrlKey||n.metaKey||n.shiftKey)}),l(this,n,t,i)},importEvents:function(){if(!this.hasImportedEvents){var n=o(this.series.options.point,this.options).events,t;this.events=n;for(t in n)b(this,t,n[t]);this.hasImportedEvents=!0}},setState:function(n){var s=this.plotX,h=this.plotY,r=this.series,t=r.options.states,f=ot[r.type].marker&&r.options.marker,a=f&&!f.enabled,e=f&&f.states[n],v=e&&e.enabled===!1,i=r.stateMarkerGraphic,u=this.marker||{},l=r.chart,c=this.pointAttr,n=n||"";n===this.state||this.selected&&n!=="select"||t[n]&&t[n].enabled===!1||n&&(v||a&&!e.enabled)||n&&u.states&&u.states[n]&&u.states[n].enabled===!1||(this.graphic?(t=f&&this.graphic.symbolName&&c[n].r,this.graphic.attr(o(c[n],t?{x:s-t,y:h-t,width:2*t,height:2*t}:{}))):(n&&e&&(t=e.radius,u=u.symbol||r.symbol,i&&i.currentSymbol!==u&&(i=i.destroy()),i?i.attr({x:s-t,y:h-t}):(r.stateMarkerGraphic=i=l.renderer.symbol(u,s-t,h-t,2*t,2*t).attr(c[n]).add(r.markerGroup),i.currentSymbol=u)),i&&i[n&&l.isInsidePlot(s,h)?"show":"hide"]()),this.state=n)}},g=function(){},g.prototype={isCartesian:!0,type:"line",pointClass:tr,sorted:!0,requireSorting:!0,pointAttrToOptions:{stroke:"lineColor","stroke-width":"lineWidth",fill:"fillColor",r:"radius"},colorCounter:0,init:function(i,r){var o,u,f=i.series;this.chart=i,this.options=r=this.setOptions(r),this.linkedSeries=[],this.bindAxes(),e(this,{name:r.name,state:"",pointAttr:{},visible:r.visible!==!1,selected:r.selected===!0}),vt&&(r.animation=!1),u=r.events;for(o in u)b(this,o,u[o]);(u&&u.click||r.point&&r.point.events&&r.point.events.click||r.allowPointSelect)&&(i.runTrackerClick=!0),this.getColor(),this.getSymbol(),this.setData(r.data,!1),this.isCartesian&&(i.hasCartesianSeries=!0),f.push(this),this._i=f.length-1,of(f,function(t,i){return n(t.options.index,t._i)-n(i.options.index,t._i)}),t(f,function(n,t){n.index=t,n.name=n.name||"Series "+(t+1)})},bindAxes:function(){var n=this,i=n.options,u=n.chart,r;n.isCartesian&&t(["xAxis","yAxis"],function(e){t(u[e],function(t){r=t.options,(i[e]===r.index||i[e]!==f&&i[e]===r.id||i[e]===f&&r.index===0)&&(t.series.push(n),n[e]=t,t.isDirty=!0)}),n[e]||ni(18,!0)})},autoIncrement:function(){var i=this.options,t=this.xIncrement,t=n(t,i.pointStart,0);return this.pointInterval=n(this.pointInterval,i.pointInterval,1),this.xIncrement=t+this.pointInterval,t},getSegments:function(){var i=-1,r=[],u,n=this.points,f=n.length;if(f)if(this.options.connectNulls){for(u=f;u--;)n[u].y===null&&n.splice(u,1);n.length&&(r=[n])}else t(n,function(t,u){t.y===null?(u>i+1&&r.push(n.slice(i+1,u)),i=u):u===f-1&&r.push(n.slice(i+1,u+1))});this.segments=r},setOptions:function(n){var t=this.chart.options,i=t.plotOptions,r=i[this.type];return this.userOptions=n,n=o(r,i.series,n),this.tooltipOptions=o(t.tooltip,n.tooltip),r.marker===null&&delete n.marker,n},getColor:function(){var n=this.options,i=this.userOptions,f=this.chart.options.colors,u=this.chart.counters,t;t=n.color||ot[this.type].color,t||n.colorByPoint||(r(i._colorIndex)?n=i._colorIndex:(i._colorIndex=u.color,n=u.color++),t=f[n]),this.color=t,u.wrapColor(f.length)},getSymbol:function(){var n=this.userOptions,i=this.options.marker,t=this.chart,u=t.options.symbols,t=t.counters;this.symbol=i.symbol,this.symbol||(r(n._symbolIndex)?n=n._symbolIndex:(n._symbolIndex=t.symbol,n=t.symbol++),this.symbol=u[n]),/^url/.test(this.symbol)&&(i.radius=0),t.wrapSymbol(u.length)},drawLegendSymbol:function(n){var t=this.options,f=t.marker,i=n.options,r=i.symbolWidth;var e=this.chart.renderer,o=this.legendGroup,n=n.baseline-u(e.fontMetrics(i.itemStyle.fontSize).b*.3);t.lineWidth&&(i={"stroke-width":t.lineWidth},t.dashStyle&&(i.dashstyle=t.dashStyle),this.legendLine=e.path(["M",0,n,"L",r,n]).attr(i).add(o)),f&&f.enabled&&(t=f.radius,this.legendSymbol=r=e.symbol(this.symbol,r/2-t,n-t,2*t,2*t).add(o),r.isMarker=!0)},addPoint:function(i,r,u,f){var c=this.options,h=this.data,o=this.graph,e=this.area,l=this.chart,s=this.xData,a=this.yData,v=this.zData,y=this.xAxis&&this.xAxis.names,b=o&&o.shift||0,p=c.data,w;if(fr(f,l),u&&t([o,e,this.graphNeg,this.areaNeg],function(n){n&&(n.shift=b+1)}),e&&(e.isArea=!0),r=n(r,!0),f={series:this},this.pointClass.prototype.applyOptions.apply(f,[i]),o=f.x,e=s.length,this.requireSorting&&o<s[e-1])for(w=!0;e&&s[e-1]>o;)e--;s.splice(e,0,o),a.splice(e,0,this.toYData?this.toYData(f):f.y),v.splice(e,0,f.z),y&&(y[o]=f.name),p.splice(e,0,i),w&&(this.data.splice(e,0,null),this.processData()),c.legendType==="point"&&this.generatePoints(),u&&(h[0]&&h[0].remove?h[0].remove(!1):(h.shift(),s.shift(),a.shift(),v.shift(),p.shift())),this.isDirtyData=this.isDirty=!0,r&&(this.getAttribs(),l.redraw())},setData:function(t,i){var c=this.points,u=this.options,y=this.chart,v=null,e=this.xAxis,o=e&&e.names,r;this.xIncrement=null,this.pointRange=e&&e.categories?1:u.pointRange,this.colorCounter=0;var l=[],s=[],p=[],h=t?t.length:[];r=n(u.turboThreshold,1e3);var a=this.pointArrayMap,a=a&&a.length,w=!!this.toYData;if(r&&h>r){for(r=0;v===null&&r<h;)v=t[r],r++;if(oi(v)){for(o=n(u.pointStart,0),u=n(u.pointInterval,1),r=0;r<h;r++)l[r]=o,s[r]=t[r],o+=u;this.xIncrement=o}else if(ir(v))if(a)for(r=0;r<h;r++)u=t[r],l[r]=u[0],s[r]=u.slice(1,a+1);else for(r=0;r<h;r++)u=t[r],l[r]=u[0],s[r]=u[1];else ni(12)}else for(r=0;r<h;r++)t[r]!==f&&(u={series:this},this.pointClass.prototype.applyOptions.apply(u,[t[r]]),l[r]=u.x,s[r]=w?this.toYData(u):u.y,p[r]=u.z,o&&u.name)&&(o[u.x]=u.name);for(yt(s[0])&&ni(14,!0),this.data=[],this.options.data=t,this.xData=l,this.yData=s,this.zData=p,r=c&&c.length||0;r--;)c[r]&&c[r].destroy&&c[r].destroy();e&&(e.minRange=e.userMinRange),this.isDirty=this.isDirtyData=y.isDirtyBox=!0,n(i,!0)&&y.redraw(!1)},remove:function(t,i){var r=this,u=r.chart,t=n(t,!0);r.isRemoving||(r.isRemoving=!0,l(r,"remove",null,function(){r.destroy(),u.isDirtyLegend=u.isDirtyBox=!0,u.linkSeries(),t&&u.redraw(i)})),r.isRemoving=!1},processData:function(n){var i=this.xData,o=this.yData,r=i.length,u=0;var s,e,t=this.xAxis,h=this.options,c=h.cropThreshold,l=this.isCartesian;if(l&&!this.isDirty&&!t.isDirty&&!this.yAxis.isDirty&&!n)return!1;for(l&&this.sorted&&(!c||r>c||this.forceCrop)&&((n=t.min,t=t.max,i[r-1]<n||i[0]>t)?(i=[],o=[]):(i[0]<n||i[r-1]>t)&&(u=this.cropData(this.xData,this.yData,n,t),i=u.xData,o=u.yData,u=u.start,s=!0)),t=i.length-1;t>=0;t--)r=i[t]-i[t-1],r>0&&(e===f||r<e)?e=r:r<0&&this.requireSorting&&ni(15);this.cropped=s,this.cropStart=u,this.processedXData=i,this.processedYData=o,h.pointRange===null&&(this.pointRange=e||1),this.closestPointRange=e},cropData:function(t,r,u,f){for(var h=t.length,o=0,s=h,c=n(this.cropShoulder,1),e=0;e<h;e++)if(t[e]>=u){o=i(0,e-c);break}for(;e<h;e++)if(t[e]>f){s=e+c;break}return{xData:t.slice(o,s),yData:r.slice(o,s),start:o,end:s}},generatePoints:function(){var u=this.options.data,t=this.data,c,e=this.processedXData,v=this.processedYData,l=this.pointClass,o=e.length,a=this.cropStart||0,i,r=this.hasGroupedData,s,h=[],n;for(t||r||(t=[],t.length=u.length,t=this.data=t),n=0;n<o;n++)i=a+n,r?h[n]=(new l).init(this,[e[n]].concat(gt(v[n]))):(t[i]?s=t[i]:u[i]!==f&&(t[i]=s=(new l).init(this,u[i],e[n])),h[n]=s);if(t&&(o!==(c=t.length)||r))for(n=0;n<c;n++)(n===a&&!r&&(n+=o),t[n])&&(t[n].destroyElements(),t[n].plotX=f);this.data=t,this.points=h},setStackedPoints:function(){if(this.options.stacking&&!(this.visible!==!0&&this.chart.options.chart.ignoreHiddenSeries!==!1)){for(var p=this.processedXData,l=this.processedYData,a=[],b=l.length,f=this.options,k=f.threshold,d=f.stack,f=f.stacking,h=this.stackKey,v="-"+h,y=this.negStacks,e=this.yAxis,r=e.stacks,c=e.oldStacks,u,n,t,s,o=0;o<b;o++)t=p[o],s=l[o],n=(u=y&&s<k)?v:h,r[n]||(r[n]={}),r[n][t]||(c[n]&&c[n][t]?(r[n][t]=c[n][t],r[n][t].total=null):r[n][t]=new hf(e,e.options.stackLabels,u,t,d,f)),n=r[n][t],n.points[this.index]=[n.cum||0],f==="percent"?(u=u?h:v,y&&r[u]&&r[u][t]?(u=r[u][t],n.total=u.total=i(u.total,n.total)+w(s)||0):n.total+=w(s)||0):n.total+=s||0,n.cum=(n.cum||0)+(s||0),n.points[this.index].push(n.cum),a[o]=n.cum;f==="percent"&&(e.usePercentage=!0),this.stackedYData=a,e.oldStacks={}}},setPercentStacks:function(){var n=this,i=n.stackKey,r=n.yAxis.stacks;t([i,"-"+i],function(t){for(var e,i,u,f=n.xData.length;f--;)(i=n.xData[f],e=(u=r[t]&&r[t][i])&&u.points[n.index],i=e)&&(u=u.total?100/u.total:0,i[0]=kt(i[0]*u),i[1]=kt(i[1]*u),n.stackedYData[f]=i[1])})},getExtremes:function(){for(var l=this.yAxis,s=this.processedXData,h=this.stackedYData||this.processedYData,a=h.length,e=[],c=0,o=this.xAxis.getExtremes(),v=o.min,o=o.max,r,u,t,i=0;i<a;i++)if(u=s[i],t=h[i],r=t!==null&&t!==f&&(!l.isLog||t.length||t>0),u=this.getExtremesFromAll||this.cropped||(s[i+1]||u)>=v&&(s[i-1]||u)<=o,r&&u)if(r=t.length)for(;r--;)t[r]!==null&&(e[c++]=t[r]);else e[c++]=t;this.dataMin=n(void 0,rr(e)),this.dataMax=n(void 0,si(e))},translate:function(){this.processedXData||this.processData(),this.generatePoints();for(var e=this.options,y=e.stacking,c=this.xAxis,l=c.categories,s=this.yAxis,p=this.points,w=p.length,b=!!this.modifyValue,a=e.pointPlacement,k=a==="between"||oi(a),v=e.threshold,e=0;e<w;e++){var t=p[e],h=t.x,i=t.y,o=t.low,u=s.stacks[(this.negStacks&&i<v?"-":"")+this.stackKey];s.isLog&&i<=0&&(t.y=i=null),t.plotX=c.translate(h,0,0,0,1,a,this.type==="flags"),y&&this.visible&&u&&u[h]&&(u=u[h],i=u.points[this.index],o=i[0],i=i[1],o===0&&(o=n(v,s.min)),s.isLog&&o<=0&&(o=null),t.total=t.stackTotal=u.total,t.percentage=y==="percent"&&t.y/u.total*100,t.stackY=i,u.setOffset(this.pointXOffset||0,this.barW||0)),t.yBottom=r(o)?s.translate(o,0,1,0,1):null,b&&(i=this.modifyValue(i,t)),t.plotY=typeof i=="number"&&i!==Infinity?s.translate(i,0,1,0,1):f,t.clientX=k?c.translate(h,0,0,0,1):t.plotX,t.negative=t.y<(v||0),t.category=l&&l[t.x]!==f?l[t.x]:t.x}this.getSegments()},setTooltipPoints:function(n){var u=[],e,s,r=this.xAxis,l=r&&r.getExtremes(),c=r?r.tooltipLen||r.len:this.chart.plotSizeX,h,o,v=[];if(this.options.enableMouseTracking!==!1){for(n&&(this.tooltipPoints=null),t(this.segments||this.points,function(n){u=u.concat(n)}),r&&r.reversed&&(u=u.reverse()),this.orderTooltipPoints&&this.orderTooltipPoints(u),n=u.length,o=0;o<n;o++)if(r=u[o],e=r.x,e>=l.min&&e<=l.max)for(h=u[o+1],e=s===f?0:s+1,s=u[o+1]?a(i(0,nt((r.clientX+(h?h.wrappedClientX||h.clientX:c))/2)),c):c;e>=0&&e<=s;)v[e++]=r;this.tooltipPoints=v}},tooltipHeaderFormatter:function(n){var t=this.tooltipOptions,r=t.xDateFormat,f=t.dateTimeLabelFormats,i=this.xAxis,e=i&&i.options.type==="datetime",t=t.headerFormat,i=i&&i.closestPointRange,u;if(e&&!r)if(i){for(u in v)if(v[u]>=i){r=f[u];break}}else r=f.day;return e&&r&&oi(n.key)&&(t=t.replace("{point.key}","{point.key:"+r+"}")),bi(t,{point:n,series:this})},onMouseOver:function(){var t=this.chart,n=t.hoverSeries;n&&n!==this&&n.onMouseOut(),this.options.events.mouseOver&&l(this,"mouseOver"),this.setState("hover"),t.hoverSeries=this},onMouseOut:function(){var i=this.options,n=this.chart,t=n.tooltip,r=n.hoverPoint;r&&r.onMouseOut(),this&&i.events.mouseOut&&l(this,"mouseOut"),t&&!i.stickyTracking&&(!t.shared||this.noSharedTooltip)&&t.hide(),this.setState(),n.hoverSeries=null},animate:function(n){var r=this,t=r.chart,o=t.renderer,i,s,f,u;i=r.options.animation,s=t.clipBox,f=t.inverted,i&&!ft(i)&&(i=ot[r.type].animation),u="_sharedClip"+i.duration+i.easing,n?(n=t[u],i=t[u+"m"],n||(t[u]=n=o.clipRect(e(s,{width:0})),t[u+"m"]=i=o.clipRect(-99,f?-t.plotLeft:-t.plotTop,99,f?t.chartWidth:t.chartHeight)),r.group.clip(n),r.markerGroup.clip(i),r.sharedClipKey=u):((n=t[u])&&(n.animate({width:t.plotSizeX},i),t[u+"m"].animate({width:t.plotSizeX+99},i)),r.animate=null,r.animationTimeout=setTimeout(function(){r.afterAnimate()},i.duration))},afterAnimate:function(){var n=this.chart,t=this.sharedClipKey,i=this.group;i&&this.options.clip!==!1&&(i.clip(n.clipRect),this.markerGroup.clip()),setTimeout(function(){t&&n[t]&&(n[t]=n[t].destroy(),n[t+"m"]=n[t+"m"].destroy())},100)},drawPoints:function(){var h,y=this.points,l=this.chart,c,o,a,t,i,r,p,s,w=this.options.marker,v,b=this.markerGroup;if(w.enabled||this._hasPointMarkers)for(a=y.length;a--;)(t=y[a],c=nt(t.plotX),o=t.plotY,s=t.graphic,r=t.marker||{},h=w.enabled&&r.enabled===f||r.enabled,v=l.isInsidePlot(u(c),o,l.inverted),h&&o!==f&&!isNaN(o)&&t.y!==null)?(h=t.pointAttr[t.selected?"select":""],i=h.r,r=n(r.symbol,this.symbol),p=r.indexOf("url")===0,s)?s.attr({visibility:v?ht?"inherit":"visible":"hidden"}).animate(e({x:c-i,y:o-i},s.symbolName?{width:2*i,height:2*i}:{})):v&&(i>0||p)&&(t.graphic=l.renderer.symbol(r,c-i,o-i,2*i,2*i).attr(h).add(b)):s&&(t.graphic=s.destroy())},convertAttribs:function(t,i,r,u){var e=this.pointAttrToOptions,f,o,s={},t=t||{},i=i||{},r=r||{},u=u||{};for(f in e)o=e[f],s[f]=n(t[o],i[f],r[f],u[f]);return s},getAttribs:function(){var u=this,a=u.options,i=ot[u.type].marker?a.marker:a,c=i.states,o=c.hover,l,v=u.color,n={stroke:v,fill:v},y=u.points||[],s=[],h,p=u.pointAttrToOptions,w=a.negativeColor,k=i.lineColor,b;for(a.marker?(o.radius=o.radius||i.radius+2,o.lineWidth=o.lineWidth||i.lineWidth+1):o.color=o.color||fi(o.color||v).brighten(o.brightness).get(),s[""]=u.convertAttribs(i,n),t(["hover","select"],function(n){s[n]=u.convertAttribs(c[n],s[""])}),u.pointAttr=s,v=y.length;v--;){if(n=y[v],(i=n.options&&n.options.marker||n.options)&&i.enabled===!1&&(i.radius=0),n.negative&&w&&(n.color=n.fillColor=w),l=a.colorByPoint||n.color,n.options)for(b in p)r(i[p[b]])&&(l=!0);l?(i=i||{},h=[],c=i.states||{},l=c.hover=c.hover||{},a.marker||(l.color=fi(l.color||n.color).brighten(l.brightness||o.brightness).get()),h[""]=u.convertAttribs(e({color:n.color,fillColor:n.color,lineColor:k===null?n.color:f},i),s[""]),h.hover=u.convertAttribs(c.hover,s.hover,h[""]),h.select=u.convertAttribs(c.select,s.select,h[""])):h=s,n.pointAttr=h}},update:function(t,i){var u=this.chart,s=this.type,h=ct[s].prototype,r,t=o(this.userOptions,{animation:!1,index:this.index,pointStart:this.xData[0]},{data:this.options.data},t);this.remove(!1);for(r in h)h.hasOwnProperty(r)&&(this[r]=f);e(this,ct[t.type||s].prototype),this.init(u,t),n(i,!0)&&u.redraw(!1)},destroy:function(){var n=this,r=n.chart,h=/AppleWebKit\/533/.test(ii),e,u,o=n.data||[],f,s,i;for(l(n,"destroy"),lt(n),t(["xAxis","yAxis"],function(t){(i=n[t])&&(wt(i.series,n),i.isDirty=i.forceRedraw=!0,i.stacks={})}),n.legendItem&&n.chart.legend.destroyItem(n),u=o.length;u--;)(f=o[u])&&f.destroy&&f.destroy();n.points=null,clearTimeout(n.animationTimeout),t("area,graph,dataLabelsGroup,group,markerGroup,tracker,graphNeg,areaNeg,posClip,negClip".split(","),function(t){n[t]&&(e=h&&t==="group"?"hide":"destroy",n[t][e]())}),r.hoverSeries===n&&(r.hoverSeries=null),wt(r.series,n);for(s in n)delete n[s]},drawDataLabels:function(){var u=this,h=u.options,a=h.cursor,i=h.dataLabels,h=u.points,c,l,s,v;(i.enabled||u._hasPointLabels)&&(u.dlProcessOptions&&u.dlProcessOptions(i),v=u.plotGroup("dataLabelsGroup","data-labels",u.visible?"visible":"hidden",i.zIndex||6),l=i,t(h,function(t){var y,h=t.dataLabel,p,w,b=t.connector,k=!0;if(c=t.options&&t.options.dataLabels,y=n(c&&c.enabled,l.enabled),h&&!y)t.dataLabel=h.destroy();else if(y){if(i=o(l,c),y=i.rotation,p=t.getLabelConfig(),s=i.format?bi(i.format,p):i.formatter.call(p,i),i.style.color=n(i.color,i.style.color,u.color,"black"),h)r(s)?(h.attr({text:s}),k=!1):(t.dataLabel=h=h.destroy(),b)&&(t.connector=b.destroy());else if(r(s)){h={fill:i.backgroundColor,stroke:i.borderColor,"stroke-width":i.borderWidth,r:i.borderRadius||0,rotation:y,padding:i.padding,zIndex:1};for(w in h)h[w]===f&&delete h[w];h=t.dataLabel=u.chart.renderer[y?"text":"label"](s,0,-999,null,null,null,i.useHTML).attr(h).css(e(i.style,a&&{cursor:a})).add(v).shadow(i.shadow)}h&&u.alignDataLabel(t,h,i,null,k)}}))},alignDataLabel:function(t,i,r,f,o){var h=this.chart,s=h.inverted,l=n(t.plotX,-999),a=n(t.plotY,-999),c=i.getBBox();(t=this.visible&&h.isInsidePlot(t.plotX,t.plotY,s))&&(f=e({x:s?h.plotWidth-a:l,y:u(s?h.plotHeight-l:a),width:0,height:0},f),e(r,{width:c.width,height:c.height}),r.rotation?(s={align:r.align,x:f.x+r.x+f.width/2,y:f.y+r.y+f.height/2},i[o?"attr":"animate"](s)):(i.align(r,null,f),s=i.alignAttr,n(r.overflow,"justify")==="justify"?this.justifyDataLabel(i,r,s,c,f,o):n(r.crop,!0)&&(t=h.isInsidePlot(s.x,s.y)&&h.isInsidePlot(s.x+c.width,s.y+c.height)))),t||i.attr({y:-999})},justifyDataLabel:function(n,t,i,r,u,f){var s=this.chart,h=t.align,c=t.verticalAlign,e,o;e=i.x,e<0&&(h==="right"?t.align="left":t.x=-e,o=!0),e=i.x+r.width,e>s.plotWidth&&(h==="left"?t.align="right":t.x=s.plotWidth-e,o=!0),e=i.y,e<0&&(c==="bottom"?t.verticalAlign="top":t.y=-e,o=!0),e=i.y+r.height,e>s.plotHeight&&(c==="top"?t.verticalAlign="bottom":t.y=s.plotHeight-e,o=!0),o&&(n.placed=!f,n.align(t,null,u))},getSegmentPath:function(n){var r=this,i=[],u=r.options.step;return t(n,function(t,f){var o=t.plotX,s=t.plotY,e;r.getPointSpline?i.push.apply(i,r.getPointSpline(n,t,f)):(i.push(f?"L":"M"),u&&f&&(e=n[f-1],u==="right"?i.push(e.plotX,s):u==="center"?i.push((e.plotX+o)/2,e.plotY,(e.plotX+o)/2,s):i.push(o,e.plotY)),i.push(t.plotX,t.plotY))}),i},getGraphPath:function(){var n=this,i=[],r,u=[];return t(n.segments,function(t){r=n.getSegmentPath(t),t.length>1?i=i.concat(r):u.push(t[0])}),n.singlePoints=u,n.graphPath=i},drawGraph:function(){var i=this,n=this.options,u=[["graph",n.lineColor||this.color]],f=n.lineWidth,e=n.dashStyle,s=n.linecap!=="square",r=this.getGraphPath(),o=n.negativeColor;o&&u.push(["graphNeg",o]),t(u,function(t,u){var h=t[0],o=i[h];o?(yr(o),o.animate({d:r})):f&&r.length&&(o={stroke:t[1],"stroke-width":f,zIndex:1},e?o.dashstyle=e:s&&(o["stroke-linecap"]=o["stroke-linejoin"]="round"),i[h]=i.chart.renderer.path(r).attr(o).add(i.group).shadow(!u&&n.shadow))})},clipNeg:function(){var r=this.options,n=this.chart,h=n.renderer,f=r.negativeColor||r.negativeFillColor,t,c=this.graph,l=this.area,o=this.posClip,s=this.negClip;t=n.chartWidth;var a=n.chartHeight,e=i(t,a),v=this.yAxis;f&&(c||l)&&(f=u(v.toPixels(r.threshold||0,!0)),r={x:0,y:0,width:e,height:f},e={x:0,y:f,width:e,height:e},n.inverted&&(r.height=e.y=n.plotWidth-f,h.isVML&&(r={x:n.plotWidth-f-n.plotLeft,y:0,width:t,height:a},e={x:f+n.plotLeft-t,y:0,width:n.plotLeft+f,height:t})),v.reversed?(n=e,t=r):(n=r,t=e),o?(o.animate(n),s.animate(t)):(this.posClip=o=h.clipRect(n),this.negClip=s=h.clipRect(t),c&&this.graphNeg&&(c.clip(o),this.graphNeg.clip(s)),l&&(l.clip(o),this.areaNeg.clip(s))))},invertGroups:function(){function i(){var i={width:n.yAxis.len,height:n.xAxis.len};t(["group","markerGroup"],function(t){n[t]&&n[t].attr(i).invert()})}var n=this,r=n.chart;n.xAxis&&(b(r,"resize",i),b(n,"destroy",function(){lt(r,"resize",i)}),i(),n.invertGroups=i)},plotGroup:function(n,t,i,r,u){var f=this[n],e=!f;return e&&(this[n]=f=this.chart.renderer.g(t).attr({visibility:i,zIndex:r||.1}).add(u)),f[e?"attr":"animate"](this.getPlotBox()),f},getPlotBox:function(){return{translateX:this.xAxis?this.xAxis.left:this.chart.plotLeft,translateY:this.yAxis?this.yAxis.top:this.chart.plotTop,scaleX:1,scaleY:1}},render:function(){var n=this.chart,t,i=this.options,r=i.animation&&!!this.animate&&n.renderer.isSVG,u=this.visible?"visible":"hidden",f=i.zIndex,e=this.hasRendered,o=n.seriesGroup;t=this.plotGroup("group","series",u,f,o),this.markerGroup=this.plotGroup("markerGroup","markers",u,f,o),r&&this.animate(!0),this.getAttribs(),t.inverted=this.isCartesian?n.inverted:!1,this.drawGraph&&(this.drawGraph(),this.clipNeg()),this.drawDataLabels(),this.drawPoints(),this.options.enableMouseTracking!==!1&&this.drawTracker(),n.inverted&&this.invertGroups(),i.clip===!1||this.sharedClipKey||e||t.clip(n.clipRect),r?this.animate():e||this.afterAnimate(),this.isDirty=this.isDirtyData=!1,this.hasRendered=!0},redraw:function(){var t=this.chart,f=this.isDirtyData,i=this.group,r=this.xAxis,u=this.yAxis;i&&(t.inverted&&i.attr({width:t.plotWidth,height:t.plotHeight}),i.animate({translateX:n(r&&r.left,t.plotLeft),translateY:n(u&&u.top,t.plotTop)})),this.translate(),this.setTooltipPoints(!0),this.render(),f&&l(this,"updatedData")},setState:function(n){var t=this.options,i=this.graph,u=this.graphNeg,r=t.states,t=t.lineWidth,n=n||"";this.state!==n&&(this.state=n,r[n]&&r[n].enabled===!1||(n&&(t=r[n].lineWidth||t+1),i&&!i.dashstyle&&(n={"stroke-width":t},i.attr(n),u&&u.attr(n))))},setVisible:function(n,i){var r=this,u=r.chart,o=r.legendItem,e,s=u.options.chart.ignoreHiddenSeries,h=r.visible;e=(r.visible=n=r.userOptions.visible=n===f?!h:n)?"show":"hide",t(["group","dataLabelsGroup","markerGroup","tracker"],function(n){r[n]&&r[n][e]()}),u.hoverSeries===r&&r.onMouseOut(),o&&u.legend.colorizeItem(r,n),r.isDirty=!0,r.options.stacking&&t(u.series,function(n){n.options.stacking&&n.visible&&(n.isDirty=!0)}),t(r.linkedSeries,function(t){t.setVisible(n,!1)}),s&&(u.isDirtyBox=!0),i!==!1&&u.redraw(),l(r,e)},show:function(){this.setVisible(!0)},hide:function(){this.setVisible(!1)},select:function(n){this.selected=n=n===f?!this.selected:n,this.checkbox&&(this.checkbox.checked=n),l(this,n?"select":"unselect")},drawTracker:function(){var i=this,h=i.options,o=h.trackByArea,r=[].concat(o?i.areaPath:i.graphPath),u=r.length,s=i.chart,a=s.pointer,v=s.renderer,f=s.options.tooltip.snap,c=i.tracker,e=h.cursor,y=e&&{cursor:e},e=i.singlePoints,n,l=function(){s.hoverSeries!==i&&i.onMouseOver()};if(u&&!o)for(n=u+1;n--;)r[n]==="M"&&r.splice(n+1,0,r[n+1]-f,r[n+2],"L"),(n&&r[n]==="M"||n===u)&&r.splice(n,0,"L",r[n-2]+f,r[n-1]);for(n=0;n<e.length;n++)u=e[n],r.push("M",u.plotX-f,u.plotY,"L",u.plotX+f,u.plotY);c?c.attr({d:r}):(i.tracker=v.path(r).attr({"stroke-linejoin":"round",visibility:i.visible?"visible":"hidden",stroke:vf,fill:o?vf:rt,"stroke-width":h.lineWidth+(o?0:2*f),zIndex:2}).add(i.group),t([i.tracker,i.markerGroup],function(n){if(n.addClass("highcharts-tracker").on("mouseover",l).on("mouseout",function(n){a.onTrackerMouseOut(n)}).css(y),gr)n.on("touchstart",l)}))}},p=bt(g),ct.line=p,ot.area=o(ut,{threshold:0}),p=bt(g,{type:"area",getSegments:function(){var f=[],u=[],e=[],v=this.xAxis,l=this.yAxis,n=l.stacks[this.stackKey],i={},o,s,h=this.points,y=this.options.connectNulls,a,r,c;if(this.options.stacking&&!this.cropped){for(r=0;r<h.length;r++)i[h[r].x]=h[r];for(c in n)n[c].total!==null&&e.push(+c);e.sort(function(n,t){return n-t}),t(e,function(t){(!y||i[t]&&i[t].y!==null)&&(i[t]?u.push(i[t]):(o=v.translate(t),a=n[t].percent?n[t].total?n[t].cum*100/n[t].total:0:n[t].cum,s=l.toPixels(a,!0),u.push({y:null,plotX:o,clientX:o,plotY:s,yBottom:s,onMouseOver:ri})))}),u.length&&f.push(u)}else g.prototype.getSegments.call(this),f=this.segments;this.segments=f},getSegmentPath:function(t){var r=g.prototype.getSegmentPath.call(this,t),u=[].concat(r),i,f=this.options,e,o;if(i=r.length,e=this.yAxis.getThreshold(f.threshold),i===3&&u.push("L",r[1],r[2]),f.stacking&&!this.closedStacks)for(i=t.length-1;i>=0;i--)o=n(t[i].yBottom,e),i<t.length-1&&f.step&&u.push(t[i+1].plotX,o),u.push(t[i].plotX,o);else this.closeSegment(u,t,e);return this.areaPath=this.areaPath.concat(u),r},closeSegment:function(n,t,i){n.push("L",t[t.length-1].plotX,i,"L",t[0].plotX,i)},drawGraph:function(){this.areaPath=[],g.prototype.drawGraph.apply(this);var i=this,u=this.areaPath,r=this.options,f=r.negativeColor,e=r.negativeFillColor,o=[["area",this.color,r.fillColor]];(f||e)&&o.push(["areaNeg",f,e]),t(o,function(t){var f=t[0],e=i[f];e?e.animate({d:u}):i[f]=i.chart.renderer.path(u).attr({fill:n(t[2],fi(t[1]).setOpacity(n(r.fillOpacity,.75)).get()),zIndex:0}).add(i.group)})},drawLegendSymbol:function(n,t){t.legendSymbol=this.chart.renderer.rect(0,n.baseline-11,n.options.symbolWidth,12,2).attr({zIndex:3}).add(t.legendGroup)}}),ct.area=p,ot.spline=o(ut),k=bt(g,{type:"spline",getPointSpline:function(n,t,r){var h=t.plotX,u=t.plotY,s=n[r-1],o=n[r+1],l,e,c,f,v;return s&&o&&(n=s.plotY,c=o.plotX,o=o.plotY,l=(1.5*h+s.plotX)/2.5,e=(1.5*u+n)/2.5,c=(1.5*h+c)/2.5,f=(1.5*u+o)/2.5,v=(f-e)*(c-h)/(c-l)+u-f,e+=v,f+=v,e>n&&e>u?(e=i(n,u),f=2*u-e):e<n&&e<u&&(e=a(n,u),f=2*u-e),f>o&&f>u?(f=i(o,u),e=2*u-f):f<o&&f<u&&(f=a(o,u),e=2*u-f),t.rightContX=c,t.rightContY=f),r?(t=["C",s.rightContX||s.plotX,s.rightContY||s.plotY,l||h,e||u,h,u],s.rightContX=s.rightContY=null):t=["M",h,u],t}}),ct.spline=k,ot.areaspline=o(ot.area),dt=p.prototype,k=bt(k,{type:"areaspline",closedStacks:!0,getSegmentPath:dt.getSegmentPath,closeSegment:dt.closeSegment,drawGraph:dt.drawGraph,drawLegendSymbol:dt.drawLegendSymbol}),ct.areaspline=k,ot.column=o(ut,{borderColor:"#FFFFFF",borderWidth:1,borderRadius:0,groupPadding:.2,marker:null,pointPadding:.1,minPointLength:0,cropThreshold:50,pointRange:null,states:{hover:{brightness:.1,shadow:!1},select:{color:"#C0C0C0",borderColor:"#000000",shadow:!1}},dataLabels:{align:null,verticalAlign:null,y:null},stickyTracking:!1,threshold:0}),k=bt(g,{type:"column",pointAttrToOptions:{stroke:"borderColor","stroke-width":"borderWidth",fill:"color",r:"borderRadius"},cropShoulder:0,trackerGroups:["group","dataLabelsGroup"],negStacks:!0,init:function(){g.prototype.init.apply(this,arguments);var n=this,i=n.chart;i.hasRendered&&t(i.series,function(t){t.type===n.type&&(t.isDirty=!0)})},getColumnMetrics:function(){var u=this,e=u.options,i=u.xAxis,y=u.yAxis,p=i.reversed,h,l={},v,o=0;e.grouping===!1?o=1:t(u.chart.series,function(n){var t=n.options,i=n.yAxis;n.type===u.type&&n.visible&&y.len===i.len&&y.pos===i.pos&&(t.stacking?(h=n.stackKey,l[h]===f&&(l[h]=o++),v=l[h]):t.grouping!==!1&&(v=o++),n.columnIndex=v)});var i=a(w(i.transA)*(i.ordinalSlope||e.pointRange||i.closestPointRange||1),i.len),b=i*e.groupPadding,c=(i-2*b)/o,s=e.pointWidth,e=r(s)?(c-s)/2:c*e.pointPadding,s=n(s,c-2*e);return u.columnMetrics={width:s,offset:e+(b+((p?o-(u.columnIndex||0):u.columnIndex)||0)*c-i/2)*(p?-1:1)}},translate:function(){var c=this.chart,r=this.options,o=r.borderWidth,s=this.yAxis,e=this.translatedThreshold=s.getThreshold(r.threshold),f=n(r.minPointLength,5),r=this.getColumnMetrics(),l=r.width,y=this.barW=ci(i(l,1+2*o)),p=this.pointXOffset=r.offset,v=-(o%2?.5:0),h=o%2?.5:1;c.renderer.isVML&&c.inverted&&(h+=1),g.prototype.translate.apply(this),t(this.points,function(t){var b=n(t.yBottom,e),r=a(i(-999-b,t.plotY),s.len+999+b),c=t.plotX+p,k=y,o=a(r,b),d,r=i(r,b)-o;w(r)<f&&f&&(r=f,o=u(w(o-e)>f?b-f:e-(s.translate(t.y,0,1,0,1)<=e?f:0))),t.barX=c,t.pointWidth=l,b=w(c)<.5,k=u(c+k)+v,c=u(c)+v,k-=c,d=w(o)<.5,r=u(o+r)+h,o=u(o)+h,r-=o,b&&(c+=1,k-=1),d&&(o-=1,r+=1),t.shapeType="rect",t.shapeArgs={x:c,y:o,width:k,height:r}})},getSymbol:ri,drawLegendSymbol:p.prototype.drawLegendSymbol,drawGraph:ri,drawPoints:function(){var n=this,i=n.options,u=n.chart.renderer,r;t(n.points,function(t){var s=t.plotY,e=t.graphic;s===f||isNaN(s)||t.y===null?e&&(t.graphic=e.destroy()):(r=t.shapeArgs,e?(yr(e),e.animate(o(r))):t.graphic=u[t.shapeType](r).attr(t.pointAttr[t.selected?"select":""]).add(n.group).shadow(i.shadow,null,i.stacking&&!i.borderRadius))})},drawTracker:function(){var n=this,i=n.chart,e=i.pointer,r=n.options.cursor,o=r&&{cursor:r},u=function(t){var u=t.target,r;for(i.hoverSeries!==n&&n.onMouseOver();u&&!r;)r=u.point,u=u.parentNode;if(r!==f&&r!==i.hoverPoint)r.onMouseOver(t)};t(n.points,function(n){n.graphic&&(n.graphic.element.point=n),n.dataLabel&&(n.dataLabel.element.point=n)}),n._hasTracking||(t(n.trackerGroups,function(t){if(n[t]&&(n[t].addClass("highcharts-tracker").on("mouseover",u).on("mouseout",function(n){e.onTrackerMouseOut(n)}).css(o),gr))n[t].on("touchstart",u)}),n._hasTracking=!0)},alignDataLabel:function(t,i,r,u,f){var e=this.chart,s=e.inverted,l=t.dlBox||t.shapeArgs,h=t.below||t.plotY>n(this.translatedThreshold,e.plotSizeY),c=n(r.inside,!!this.options.stacking);l&&(u=o(l),s&&(u={x:e.plotWidth-u.y-u.height,y:e.plotHeight-u.x-u.width,width:u.height,height:u.width}),!c)&&(s?(u.x+=h?0:u.width,u.width=0):(u.y+=h?u.height:0,u.height=0)),r.align=n(r.align,!s||c?"center":h?"right":"left"),r.verticalAlign=n(r.verticalAlign,s||c?"middle":h?"top":"bottom"),g.prototype.alignDataLabel.call(this,t,i,r,u,f)},animate:function(n){var r=this.yAxis,f=this.options,u=this.chart.inverted,t={};ht&&(n?(t.scaleY=.001,n=a(r.pos+r.len,i(r.pos,r.toPixels(f.threshold))),u?t.translateX=n-r.len:t.translateY=n,this.group.attr(t)):(t.scaleY=1,t[u?"translateX":"translateY"]=r.pos,this.group.animate(t,this.options.animation),this.animate=null))},remove:function(){var n=this,i=n.chart;i.hasRendered&&t(i.series,function(t){t.type===n.type&&(t.isDirty=!0)}),g.prototype.remove.apply(n,arguments)}}),ct.column=k,ot.bar=o(ot.column),dt=bt(k,{type:"bar",inverted:!0}),ct.bar=dt,ot.scatter=o(ut,{lineWidth:0,tooltip:{headerFormat:'<span style="font-size: 10px; color:{series.color}">{series.name}<\/span><br/>',pointFormat:"x: <b>{point.x}<\/b><br/>y: <b>{point.y}<\/b><br/>",followPointer:!0},stickyTracking:!1}),dt=bt(g,{type:"scatter",sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["markerGroup"],takeOrdinalPosition:!1,drawTracker:k.prototype.drawTracker,setTooltipPoints:ri}),ct.scatter=dt,ot.pie=o(ut,{borderColor:"#FFFFFF",borderWidth:1,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{distance:30,enabled:!0,formatter:function(){return this.point.name}},ignoreHiddenPoint:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,states:{hover:{brightness:.1,shadow:!1}},stickyTracking:!1,tooltip:{followPointer:!0}}),ut={type:"pie",isCartesian:!1,pointClass:bt(tr,{init:function(){tr.prototype.init.apply(this,arguments);var t=this,i;return t.y<0&&(t.y=null),e(t,{visible:t.visible!==!1,name:n(t.name,"Slice")}),i=function(n){t.slice(n.type==="select")},b(t,"select",i),b(t,"unselect",i),t},setVisible:function(n){var i=this,r=i.series,u=r.chart,e;i.visible=i.options.visible=n=n===f?!i.visible:n,r.options.data[ui(i,r.data)]=i.options,e=n?"show":"hide",t(["graphic","dataLabel","connector","shadowGroup"],function(n){i[n]&&i[n][e]()}),i.legendItem&&u.legend.colorizeItem(i,n),!r.isDirty&&r.options.ignoreHiddenPoint&&(r.isDirty=!0,u.redraw())},slice:function(t,i,u){var f=this.series;fr(u,f.chart),n(i,!0),this.sliced=this.options.sliced=t=r(t)?t:!this.sliced,f.options.data[ui(this,f.data)]=this.options,t=t?this.slicedTranslation:{translateX:0,translateY:0},this.graphic.animate(t),this.shadowGroup&&this.shadowGroup.animate(t)}}),requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],pointAttrToOptions:{stroke:"borderColor","stroke-width":"borderWidth",fill:"color"},getColor:ri,animate:function(n){var i=this,u=i.points,r=i.startAngleRad;n||(t(u,function(n){var t=n.graphic,n=n.shapeArgs;t&&(t.attr({r:i.center[3]/2,start:r,end:r}),t.animate({r:n.r,start:n.start,end:n.end},i.options.animation))}),i.animate=null)},setData:function(t,i){g.prototype.setData.call(this,t,!1),this.processData(),this.generatePoints(),n(i,!0)&&this.chart.redraw()},generatePoints:function(){var n,i=0,r,u,t,f=this.options.ignoreHiddenPoint;for(g.prototype.generatePoints.call(this),r=this.points,u=r.length,n=0;n<u;n++)t=r[n],i+=f&&!t.visible?0:t.y;for(this.total=i,n=0;n<u;n++)t=r[n],t.percentage=i>0?t.y/i*100:0,t.total=i},getCenter:function(){var t=this.options,i=this.chart,r=2*(t.slicedOffset||0),f,e=i.plotWidth-2*r,o=i.plotHeight-2*r,i=t.center,t=[n(i[0],"50%"),n(i[1],"50%"),t.size||"100%",t.innerSize||0],s=a(e,o),u;return or(t,function(n,t){return u=/%$/.test(n),f=t<2||t===2&&u,(u?[e,o,s,s][t]*h(n)/100:n)+(f?r:0)})},translate:function(n){this.generatePoints();var l=0,r=this.options,v=r.slicedOffset,h=v+r.borderWidth,f,e,t,o=r.startAngle||0,y=this.startAngleRad=li/180*(o-90),o=(this.endAngleRad=li/180*((r.endAngle||o+360)-90))-y,p=this.points,s=r.dataLabels.distance,r=r.ignoreHiddenPoint,c,w=p.length,i;for(n||(this.center=n=this.getCenter()),this.getX=function(i,r){return t=it.asin((i-n[1])/(n[2]/2+s)),n[0]+(r?-1:1)*st(t)*(n[2]/2+s)},c=0;c<w;c++)i=p[c],f=y+l*o,(!r||i.visible)&&(l+=i.percentage/100),e=y+l*o,i.shapeType="arc",i.shapeArgs={x:n[0],y:n[1],r:n[2]/2,innerR:n[3]/2,start:u(f*1e3)/1e3,end:u(e*1e3)/1e3},t=(e+f)/2,t>.75*o&&(t-=2*li),i.slicedTranslation={translateX:u(st(t)*v),translateY:u(at(t)*v)},f=st(t)*n[2]/2,e=at(t)*n[2]/2,i.tooltipPos=[n[0]+f*.7,n[1]+e*.7],i.half=t<-li/2||t>li/2?1:0,i.angle=t,h=a(h,s/2),i.labelPos=[n[0]+f+st(t)*s,n[1]+e+at(t)*s,n[0]+f+st(t)*h,n[1]+e+at(t)*h,n[0]+f,n[1]+e,s<0?"center":i.half?"right":"left",t]},setTooltipPoints:ri,drawGraph:null,drawPoints:function(){var n=this,f=n.chart.renderer,r,u,o=n.options.shadow,i,s;o&&!n.shadowGroup&&(n.shadowGroup=f.g("shadow").add(n.group)),t(n.points,function(t){u=t.graphic,s=t.shapeArgs,i=t.shadowGroup,o&&!i&&(i=t.shadowGroup=f.g("shadow").add(n.shadowGroup)),r=t.sliced?t.slicedTranslation:{translateX:0,translateY:0},i&&i.attr(r),u?u.animate(e(s,r)):t.graphic=u=f.arc(s).setRadialReference(n.center).attr(t.pointAttr[t.selected?"select":""]).attr({"stroke-linejoin":"round"}).attr(r).add(n.group).shadow(o,i),t.visible===!1&&t.setVisible(!1)})},sortByAngle:function(n,t){n.sort(function(n,i){return n.angle!==void 0&&(i.angle-n.angle)*t})},drawDataLabels:function(){var a=this,o=a.data,e,ut=a.chart,b=a.options.dataLabels,it=n(b.connectorPadding,10),at=n(b.connectorWidth,1),vt=ut.plotWidth,ut=ut.plotHeight,nt,ot,bt=n(b.softConnector,!0),rt=b.distance,st=a.center,ht=st[2]/2,yt=st[1],kt=rt>0,v,c,f,tt,pt=[[],[]],y,s,ft,l,r,p=[0,0,0,0],wt=function(n,t){return t.y-n.y},lt,et;if(a.visible&&(b.enabled||a._hasPointLabels)){for(g.prototype.drawDataLabels.apply(a),t(o,function(n){n.dataLabel&&pt[n.half].push(n)}),l=0;!tt&&o[l];)tt=o[l]&&o[l].dataLabel&&(o[l].dataLabel.getBBox().height||21),l++;for(l=2;l--;){var o=[],ct=[],k=pt[l],d=k.length,h;if(a.sortByAngle(k,l-.5),rt>0){for(r=yt-ht-rt;r<=yt+ht+rt;r+=tt)o.push(r);if(c=o.length,d>c){for(e=[].concat(k),e.sort(wt),r=d;r--;)e[r].rank=r;for(r=d;r--;)k[r].rank>=c&&k.splice(r,1);d=k.length}for(r=0;r<d;r++){for(e=k[r],f=e.labelPos,e=9999,et=0;et<c;et++)lt=w(o[et]-f[1]),lt<e&&(e=lt,h=et);if(h<r&&o[r]!==null)h=r;else for(c<d-r+h&&o[r]!==null&&(h=c-d+r);o[h]===null;)h++;ct.push({i:h,y:o[h]}),o[h]=null}ct.sort(wt)}for(r=0;r<d;r++)e=k[r],f=e.labelPos,v=e.dataLabel,ft=e.visible===!1?"hidden":"visible",e=f[1],rt>0?(c=ct.pop(),h=c.i,s=c.y,e>s&&o[h+1]!==null||e<s&&o[h-1]!==null)&&(s=e):s=e,y=b.justify?st[0]+(l?-1:1)*(ht+rt):a.getX(h===0||h===o.length-1?e:s,l),v._attr={visibility:ft,align:f[6]},v._pos={x:y+b.x+({left:it,right:-it}[f[6]]||0),y:s+b.y-10},v.connX=y,v.connY=s,this.options.size===null&&(c=v.width,y-c<it?p[3]=i(u(c-y+it),p[3]):y+c>vt-it&&(p[1]=i(u(y+c-vt+it),p[1])),s-tt/2<0?p[0]=i(u(-s+tt/2),p[0]):s+tt/2>ut&&(p[2]=i(u(s+tt/2-ut),p[2])))}(si(p)===0||this.verifyDataLabelOverflow(p))&&(this.placeDataLabels(),kt&&at&&t(this.points,function(n){nt=n.connector,f=n.labelPos,(v=n.dataLabel)&&v._pos?(ft=v._attr.visibility,y=v.connX,s=v.connY,ot=bt?["M",y+(f[6]==="left"?5:-5),s,"C",y,s,2*f[2]-f[4],2*f[3]-f[5],f[2],f[3],"L",f[4],f[5]]:["M",y+(f[6]==="left"?5:-5),s,"L",f[2],f[3],"L",f[4],f[5]],nt?(nt.animate({d:ot}),nt.attr("visibility",ft)):n.connector=nt=a.chart.renderer.path(ot).attr({"stroke-width":at,stroke:b.connectorColor||n.color||"#606060",visibility:ft}).add(a.group)):nt&&(n.connector=nt.destroy())}))}},verifyDataLabelOverflow:function(n){var r=this.center,f=this.options,e=f.center,u=f=f.minSize||80,o;return e[0]!==null?u=i(r[2]-i(n[1],n[3]),f):(u=i(r[2]-n[1]-n[3],f),r[0]+=(n[3]-n[1])/2),e[1]!==null?u=i(a(u,r[2]-i(n[0],n[2])),f):(u=i(a(u,r[2]-n[0]-n[2]),f),r[1]+=(n[0]-n[2])/2),u<r[2]?(r[2]=u,this.translate(r),t(this.points,function(n){n.dataLabel&&(n.dataLabel._pos=null)}),this.drawDataLabels()):o=!0,o},placeDataLabels:function(){t(this.points,function(n){var n=n.dataLabel,t;n&&((t=n._pos)?(n.attr(n._attr),n[n.moved?"animate":"attr"](t),n.moved=!0):n&&n.attr({y:-999}))})},alignDataLabel:ri,drawTracker:k.prototype.drawTracker,drawLegendSymbol:p.prototype.drawLegendSymbol,getSymbol:ri},ut=bt(g,ut),ct.pie=ut,e(Highcharts,{Axis:pr,Chart:yu,Color:fi,Legend:wr,Pointer:vu,Point:tr,Tick:er,Tooltip:au,Renderer:cr,Series:g,SVGElement:hi,SVGRenderer:ei,arrayMin:rr,arrayMax:si,charts:di,dateFormat:tu,format:bi,pathAnim:wu,getOptions:function(){return tt},hasBidiBug:ne,isTouchDevice:lf,numberFormat:pi,seriesTypes:ct,setOptions:function(n){return tt=o(tt,n),sf(),tt},addEvent:b,removeEvent:lt,createElement:et,discardElement:sr,css:y,each:t,extend:e,map:or,merge:o,pick:n,splat:gt,extendClass:bt,pInt:h,wrap:su,svg:ht,canvas:vt,vml:!ht&&!vt,product:"Highcharts",version:"3.0.7"})})(),function(n,t){function g(n,t,i){this.init.call(this,n,t,i)}function nt(n,t,i){n.call(this,t,i),this.chart.polar&&(this.closeSegment=function(n){var t=this.xAxis.center;n.push("L",t[0],t[1])},this.closedStacks=!0)}function tt(n,t){var i=this.chart,u=this.options.animation,f=this.group,r=this.markerGroup,e=this.xAxis.center,o=i.plotLeft,s=i.plotTop;i.polar?i.renderer.isSVG&&((u===!0&&(u={}),t)?(i={translateX:e[0]+o,translateY:e[1]+s,scaleX:.001,scaleY:.001},f.attr(i),r)&&(r.attrSetters=f.attrSetters,r.attr(i)):(i={translateX:o,translateY:s,scaleX:1,scaleY:1},f.animate(i,u),r&&r.animate(i,u),this.animate=null)):n.call(this,t)}var ft=n.arrayMin,et=n.arrayMax,f=n.each,k=n.extend,o=n.merge,ot=n.map,u=n.pick,v=n.pInt,r=n.getOptions().plotOptions,i=n.seriesTypes,w=n.extendClass,it=n.splat,e=n.wrap,rt=n.Axis,y=n.Tick,p=n.Series,s=i.column.prototype,c=Math,b=c.round,l=c.floor,st=c.max,h=function(){},a;k(g.prototype,{init:function(n,t,i){var r=this,u=r.defaultOptions;r.chart=t,t.angular&&(u.background={}),r.options=n=o(u,n),(n=n.background)&&f([].concat(it(n)).reverse(),function(n){var t=n.backgroundColor,n=o(r.defaultBackgroundOptions,n);t&&(n.backgroundColor=t),n.color=n.backgroundColor,i.options.plotBands.unshift(n)})},defaultOptions:{center:["50%","50%"],size:"85%",startAngle:0},defaultBackgroundOptions:{shape:"circle",borderWidth:1,borderColor:"silver",backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#FFF"],[1,"#DDD"]]},from:Number.MIN_VALUE,innerRadius:0,to:Number.MAX_VALUE,outerRadius:"105%"}});var d=rt.prototype,y=y.prototype,ht={getOffset:h,redraw:function(){this.isDirty=!1},render:function(){this.isDirty=!1},setScale:h,setCategories:h,setTitle:h},ut={isRadial:!0,defaultRadialGaugeOptions:{labels:{align:"center",x:0,y:null},minorGridLineWidth:0,minorTickInterval:"auto",minorTickLength:10,minorTickPosition:"inside",minorTickWidth:1,plotBands:[],tickLength:10,tickPosition:"inside",tickWidth:2,title:{rotation:0},zIndex:2},defaultRadialXOptions:{gridLineWidth:1,labels:{align:null,distance:15,x:0,y:null},maxPadding:0,minPadding:0,plotBands:[],showLastLabel:!1,tickLength:0},defaultRadialYOptions:{gridLineInterpolation:"circle",labels:{align:"right",x:-3,y:-2},plotBands:[],showLastLabel:!1,title:{x:4,text:null,rotation:90}},setOptions:function(n){this.options=o(this.defaultOptions,this.defaultRadialOptions,n)},getOffset:function(){d.getOffset.call(this),this.chart.axisOffset[this.side]=0},getLinePath:function(n,t){var i=this.center,t=u(t,i[2]/2-this.offset);return this.chart.renderer.symbols.arc(this.left+i[0],this.top+i[1],t,t,{start:this.startAngleRad,end:this.endAngleRad,open:!0,innerR:0})},setAxisTranslation:function(){d.setAxisTranslation.call(this),this.center&&(this.transA=this.isCircular?(this.endAngleRad-this.startAngleRad)/(this.max-this.min||1):this.center[2]/2/(this.max-this.min||1),this.isXAxis)&&(this.minPixelPadding=this.transA*this.minPointOffset+(this.reversed?(this.endAngleRad-this.startAngleRad)/4:0))},beforeSetTickPositions:function(){this.autoConnect&&(this.max+=this.categories&&1||this.pointRange||this.closestPointRange||0)},setAxisSize:function(){d.setAxisSize.call(this),this.isRadial&&(this.center=this.pane.center=i.pie.prototype.getCenter.call(this.pane),this.len=this.width=this.height=this.isCircular?this.center[2]*(this.endAngleRad-this.startAngleRad)/2:this.center[2]/2)},getPosition:function(n,t){return this.isCircular||(t=this.translate(n),n=this.min),this.postTranslate(this.translate(n),u(t,this.center[2]/2)-this.offset)},postTranslate:function(n,t){var i=this.chart,r=this.center,n=this.startAngleRad+n;return{x:i.plotLeft+r[0]+Math.cos(n)*t,y:i.plotTop+r[1]+Math.sin(n)*t}},getPlotBandPath:function(n,t,i){var f=this.center,e=this.startAngleRad,h=f[2]/2,r=[u(i.outerRadius,"100%"),i.innerRadius,u(i.thickness,10)],c=/%$/,o,s=this.isCircular;return this.options.gridLineInterpolation==="polygon"?f=this.getPlotLinePath(n).concat(this.getPlotLinePath(t,!0)):(s||(r[0]=this.translate(n),r[1]=this.translate(t)),r=ot(r,function(n){return c.test(n)&&(n=v(n,10)*h/100),n}),i.shape==="circle"||!s?(n=-Math.PI/2,t=Math.PI*1.5,o=!0):(n=e+this.translate(n),t=e+this.translate(t)),f=this.chart.renderer.symbols.arc(this.left+f[0],this.top+f[1],r[0],r[0],{start:n,end:t,innerR:u(r[1],r[0]-r[2]),open:o})),f},getPlotLinePath:function(n,t){var i=this.center,e=this.chart,s=this.getPosition(n),u,o,r;return this.isCircular?r=["M",i[0]+e.plotLeft,i[1]+e.plotTop,"L",s.x,s.y]:this.options.gridLineInterpolation==="circle"?(n=this.translate(n))&&(r=this.getLinePath(0,n)):(u=e.xAxis[0],r=[],n=this.translate(n),i=u.tickPositions,u.autoConnect&&(i=i.concat([i[0]])),t&&(i=[].concat(i).reverse()),f(i,function(t,i){o=u.getPosition(t,n),r.push(i?"L":"M",o.x,o.y)})),r},getTitlePosition:function(){var n=this.center,i=this.chart,t=this.options.title;return{x:i.plotLeft+n[0]+(t.x||0),y:i.plotTop+n[1]-{high:.5,middle:.25,low:0}[t.align]*n[2]+(t.y||0)}}};e(d,"init",function(n,i,r){var l,s=i.angular,a=i.polar,h=r.isX,v=s&&h,c,e,f;e=i.options,f=r.pane||0,s?(k(this,v?ht:ut),c=!h)&&(this.defaultRadialOptions=this.defaultRadialGaugeOptions):a&&(k(this,ut),this.defaultRadialOptions=(c=h)?this.defaultRadialXOptions:o(this.defaultYAxisOptions,this.defaultRadialYOptions)),n.call(this,i,r),!v&&(s||a)&&(n=this.options,i.panes||(i.panes=[]),this.pane=(l=i.panes[f]=i.panes[f]||new g(it(e.pane)[f],i,this),f=l),f=f.options,i.inverted=!1,e.chart.zoomType=null,this.startAngleRad=i=(f.startAngle-90)*Math.PI/180,this.endAngleRad=e=(u(f.endAngle,f.startAngle+360)-90)*Math.PI/180,this.offset=n.offset||0,(this.isCircular=c)&&r.max===t&&e-i==2*Math.PI&&(this.autoConnect=!0))}),e(y,"getPosition",function(n,t,i,r,u){var f=this.axis;return f.getPosition?f.getPosition(i):n.call(this,t,i,r,u)}),e(y,"getLabelPosition",function(n,t,i,r,f,e,o,s,h){var c=this.axis,a=e.y,y=e.align,l=(c.translate(this.pos)+c.startAngleRad+Math.PI/2)/Math.PI*180%360;return c.isRadial?(n=c.getPosition(this.pos,c.center[2]/2+u(e.distance,-25)),e.rotation==="auto"?r.attr({rotation:l}):a===null&&(a=v(r.styles.lineHeight)*.9-r.getBBox().height/2),y===null&&(y=c.isCircular?l>20&&l<160?"left":l>200&&l<340?"right":"center":"center",r.attr({align:y})),n.x+=e.x,n.y+=a):n=n.call(this,t,i,r,f,e,o,s,h),n}),e(y,"getMarkPath",function(n,t,i,r,u,f,e){var o=this.axis;return o.isRadial?(n=o.getPosition(this.pos,o.center[2]/2+r),t=["M",t,i,"L",n.x,n.y]):t=n.call(this,t,i,r,u,f,e),t}),r.arearange=o(r.area,{lineWidth:1,marker:null,threshold:null,tooltip:{pointFormat:'<span style="color:{series.color}">{series.name}<\/span>: <b>{point.low}<\/b> - <b>{point.high}<\/b><br/>'},trackByArea:!0,dataLabels:{verticalAlign:null,xLow:0,xHigh:0,yLow:0,yHigh:0}}),i.arearange=n.extendClass(i.area,{type:"arearange",pointArrayMap:["low","high"],toYData:function(n){return[n.low,n.high]},pointValKey:"low",getSegments:function(){var n=this;f(n.points,function(t){n.options.connectNulls||t.low!==null&&t.high!==null?t.low===null&&t.high!==null&&(t.y=t.high):t.y=null}),p.prototype.getSegments.call(this)},translate:function(){var n=this.yAxis;i.area.prototype.translate.apply(this),f(this.points,function(t){var r=t.low,i=t.high,u=t.plotY;i===null&&r===null?t.y=null:r===null?(t.plotLow=t.plotY=null,t.plotHigh=n.translate(i,0,1,0,1)):i===null?(t.plotLow=u,t.plotHigh=null):(t.plotLow=u,t.plotHigh=n.translate(i,0,1,0,1))})},getSegmentPath:function(n){var f,t=[],e=n.length,o=p.prototype.getSegmentPath,u,i,r;for(i=this.options,r=i.step,f=HighchartsAdapter.grep(n,function(n){return n.plotLow!==null});e--;)u=n[e],u.plotHigh!==null&&t.push({plotX:u.plotX,plotY:u.plotHigh});return n=o.call(this,f),r&&(r===!0&&(r="left"),i.step={left:"right",center:"center",right:"left"}[r]),t=o.call(this,t),i.step=r,i=[].concat(n,t),t[0]="L",this.areaPath=this.areaPath.concat(n,t),i},drawDataLabels:function(){var r=this.data,u=r.length,i,f=[],e=p.prototype,t=this.options.dataLabels,n,o=this.chart.inverted;if(t.enabled||this._hasPointLabels){for(i=u;i--;)n=r[i],n.y=n.high,n.plotY=n.plotHigh,f[i]=n.dataLabel,n.dataLabel=n.dataLabelUpper,n.below=!1,o?(t.align="left",t.x=t.xHigh):t.y=t.yHigh;for(e.drawDataLabels.apply(this,arguments),i=u;i--;)n=r[i],n.dataLabelUpper=n.dataLabel,n.dataLabel=f[i],n.y=n.low,n.plotY=n.plotLow,n.below=!0,o?(t.align="right",t.x=t.xLow):t.y=t.yLow;e.drawDataLabels.apply(this,arguments)}},alignDataLabel:i.column.prototype.alignDataLabel,getSymbol:i.column.prototype.getSymbol,drawPoints:h}),r.areasplinerange=o(r.arearange),i.areasplinerange=w(i.arearange,{type:"areasplinerange",getPointSpline:i.spline.prototype.getPointSpline}),r.columnrange=o(r.column,r.arearange,{lineWidth:1,pointRange:null}),i.columnrange=w(i.arearange,{type:"columnrange",translate:function(){var n=this,i=n.yAxis,t;s.translate.apply(n),f(n.points,function(r){var e=r.shapeArgs,u=n.options.minPointLength,f;r.plotHigh=t=i.translate(r.high,0,1,0,1),r.plotLow=r.plotY,f=t,r=r.plotY-t,r<u&&(u-=r,r+=u,f-=u/2),e.height=r,e.y=f})},trackerGroups:["group","dataLabels"],drawGraph:h,pointAttrToOptions:s.pointAttrToOptions,drawPoints:s.drawPoints,drawTracker:s.drawTracker,animate:s.animate,getColumnMetrics:s.getColumnMetrics}),r.gauge=o(r.line,{dataLabels:{enabled:!0,y:15,borderWidth:1,borderColor:"silver",borderRadius:3,style:{fontWeight:"bold"},verticalAlign:"top",zIndex:2},dial:{},pivot:{},tooltip:{headerFormat:""},showInLegend:!1}),y={type:"gauge",pointClass:n.extendClass(n.Point,{setState:function(n){this.state=n}}),angular:!0,drawGraph:h,fixedBox:!0,trackerGroups:["group","dataLabels"],translate:function(){var n=this.yAxis,i=this.options,t=n.center;this.generatePoints(),f(this.points,function(r){var f=o(i.dial,r.dial),s=v(u(f.radius,80))*t[2]/200,c=v(u(f.baseLength,70))*s/100,l=v(u(f.rearLength,10))*s/100,h=f.baseWidth||3,a=f.topWidth||1,e=n.startAngleRad+n.translate(r.y,null,null,null,!0);i.wrap===!1&&(e=Math.max(n.startAngleRad,Math.min(n.endAngleRad,e))),e=e*180/Math.PI,r.shapeType="path",r.shapeArgs={d:f.path||["M",-l,-h/2,"L",c,-h/2,s,-a/2,s,a/2,c,h/2,-l,h/2,"z"],translateX:t[0],translateY:t[1],rotation:e},r.plotX=t[0],r.plotY=t[1]})},drawPoints:function(){var n=this,t=n.yAxis.center,r=n.pivot,e=n.options,i=e.pivot,s=n.chart.renderer;f(n.points,function(t){var u=t.graphic,i=t.shapeArgs,f=i.d,r=o(e.dial,t.dial);u?(u.animate(i),i.d=f):t.graphic=s[t.shapeType](i).attr({stroke:r.borderColor||"none","stroke-width":r.borderWidth||0,fill:r.backgroundColor||"black",rotation:i.rotation}).add(n.group)}),r?r.animate({translateX:t[0],translateY:t[1]}):n.pivot=s.circle(0,0,u(i.radius,5)).attr({"stroke-width":i.borderWidth||0,stroke:i.borderColor||"silver",fill:i.backgroundColor||"black"}).translate(t[0],t[1]).add(n.group)},animate:function(n){var t=this;n||(f(t.points,function(n){var i=n.graphic;i&&(i.attr({rotation:t.yAxis.startAngleRad*180/Math.PI}),i.animate({rotation:n.shapeArgs.rotation},t.options.animation))}),t.animate=null)},render:function(){this.group=this.plotGroup("group","series",this.visible?"visible":"hidden",this.options.zIndex,this.chart.seriesGroup),i.pie.prototype.render.call(this),this.group.clip(this.chart.clipRect)},setData:i.pie.prototype.setData,drawTracker:i.column.prototype.drawTracker},i.gauge=n.extendClass(i.line,y),r.boxplot=o(r.column,{fillColor:"#FFFFFF",lineWidth:1,medianWidth:2,states:{hover:{brightness:-.3}},threshold:null,tooltip:{pointFormat:'<span style="color:{series.color};font-weight:bold">{series.name}<\/span><br/>Maximum: {point.high}<br/>Upper quartile: {point.q3}<br/>Median: {point.median}<br/>Lower quartile: {point.q1}<br/>Minimum: {point.low}<br/>'},whiskerLength:"50%",whiskerWidth:2}),i.boxplot=w(i.column,{type:"boxplot",pointArrayMap:["low","q1","median","q3","high"],toYData:function(n){return[n.low,n.q1,n.median,n.q3,n.high]},pointValKey:"high",pointAttrToOptions:{fill:"fillColor",stroke:"color","stroke-width":"lineWidth"},drawDataLabels:h,translate:function(){var n=this.yAxis,t=this.pointArrayMap;i.column.prototype.translate.apply(this),f(this.points,function(i){f(t,function(t){i[t]!==null&&(i[t+"Plot"]=n.translate(i[t],0,1,0,1))})})},drawPoints:function(){var o=this,lt=o.points,r=o.options,w=o.chart.renderer,rt,a,s,k,d,ut,n,i,h,ft,v,et,ot,g,st,y,ht,e,nt,p,ct,it,tt=o.doQuartiles!==!1,c=parseInt(o.options.whiskerLength,10)/100;f(lt,function(f){h=f.graphic,ct=f.shapeArgs,v={},g={},y={},it=f.color||o.color,f.plotY!==t&&((rt=f.pointAttr[f.selected?"selected":""],ht=ct.width,e=l(ct.x),nt=e+ht,p=b(ht/2),a=l(tt?f.q1Plot:f.lowPlot),s=l(tt?f.q3Plot:f.lowPlot),k=l(f.highPlot),d=l(f.lowPlot),v.stroke=f.stemColor||r.stemColor||it,v["stroke-width"]=u(f.stemWidth,r.stemWidth,r.lineWidth),v.dashstyle=f.stemDashStyle||r.stemDashStyle,g.stroke=f.whiskerColor||r.whiskerColor||it,g["stroke-width"]=u(f.whiskerWidth,r.whiskerWidth,r.lineWidth),y.stroke=f.medianColor||r.medianColor||it,y["stroke-width"]=u(f.medianWidth,r.medianWidth,r.lineWidth),y["stroke-linecap"]="round",n=v["stroke-width"]%2/2,i=e+p+n,ft=["M",i,s,"L",i,k,"M",i,a,"L",i,d,"z"],tt&&(n=rt["stroke-width"]%2/2,i=l(i)+n,a=l(a)+n,s=l(s)+n,e+=n,nt+=n,et=["M",e,s,"L",e,a,"L",nt,a,"L",nt,s,"L",e,s,"z"]),c&&(n=g["stroke-width"]%2/2,k+=n,d+=n,ot=["M",i-p*c,k,"L",i+p*c,k,"M",i-p*c,d,"L",i+p*c,d]),n=y["stroke-width"]%2/2,ut=b(f.medianPlot)+n,st=["M",e,ut,"L",nt,ut,"z"],h)?(f.stem.animate({d:ft}),c&&f.whiskers.animate({d:ot}),tt&&f.box.animate({d:et}),f.medianShape.animate({d:st})):(f.graphic=h=w.g().add(o.group),f.stem=w.path(ft).attr(v).add(h),c&&(f.whiskers=w.path(ot).attr(g).add(h)),tt&&(f.box=w.path(et).attr(rt).add(h)),f.medianShape=w.path(st).attr(y).add(h)))})}}),r.errorbar=o(r.boxplot,{color:"#000000",grouping:!1,linkedTo:":previous",tooltip:{pointFormat:r.arearange.tooltip.pointFormat},whiskerWidth:null}),i.errorbar=w(i.boxplot,{type:"errorbar",pointArrayMap:["low","high"],toYData:function(n){return[n.low,n.high]},pointValKey:"high",doQuartiles:!1,getColumnMetrics:function(){return this.linkedParent&&this.linkedParent.columnMetrics||i.column.prototype.getColumnMetrics.call(this)}}),r.waterfall=o(r.column,{lineWidth:1,lineColor:"#333",dashStyle:"dot",borderColor:"#333"}),i.waterfall=w(i.column,{type:"waterfall",upColorProp:"fill",pointArrayMap:["low","y"],pointValKey:"y",init:function(n,t){t.stacking=!0,i.column.prototype.init.call(this,n,t)},translate:function(){var u=this.options,s=this.yAxis,f,r,h,t,n,c,l,e,o;for(f=u.threshold,u=u.borderWidth%2/2,i.column.prototype.translate.apply(this),e=f,h=this.points,r=0,f=h.length;r<f;r++)t=h[r],n=t.shapeArgs,c=this.getStack(r),o=c.points[this.index],isNaN(t.y)&&(t.y=this.yData[r]),l=st(e,e+t.y)+o[0],n.y=s.translate(l,0,1),t.isSum||t.isIntermediateSum?(n.y=s.translate(o[1],0,1),n.height=s.translate(o[0],0,1)-n.y):e+=c.total,n.height<0&&(n.y+=n.height,n.height*=-1),t.plotY=n.y=b(n.y)-u,n.height=b(n.height),t.yBottom=n.y+n.height},processData:function(n){for(var u=this.yData,s=this.points,h,l=u.length,c=this.options.threshold||0,f,e,o,r,i=f=e=o=c,t=0;t<l;t++)r=u[t],h=s&&s[t]?s[t]:{},r==="sum"||h.isSum?u[t]=i:r==="intermediateSum"||h.isIntermediateSum?(u[t]=f,f=c):(i+=r,f+=r),e=Math.min(i,e),o=Math.max(i,o);p.prototype.processData.call(this,n),this.dataMin=e,this.dataMax=o},toYData:function(n){return n.isSum?"sum":n.isIntermediateSum?"intermediateSum":n.y},getAttribs:function(){i.column.prototype.getAttribs.apply(this,arguments);var t=this.options,s=t.states,r=t.upColor||this.color,t=n.Color(r).brighten(.1).get(),u=o(this.pointAttr),e=this.upColorProp;u[""][e]=r,u.hover[e]=s.hover.upColor||t,u.select[e]=s.select.upColor||r,f(this.points,function(n){n.y>0&&!n.color&&(n.pointAttr=u,n.color=r)})},getGraphPath:function(){for(var r=this.data,e=r.length,f=b(this.options.lineWidth+this.options.borderWidth)%2/2,u=[],n,t,i=1;i<e;i++)t=r[i].shapeArgs,n=r[i-1].shapeArgs,t=["M",n.x+n.width,n.y+f,"L",t.x,n.y+f],r[i-1].y<0&&(t[2]+=n.height,t[5]+=n.height),u=u.concat(t);return u},getExtremes:h,getStack:function(n){var i=this.yAxis.stacks,t=this.stackKey;return this.processedYData[n]<this.options.threshold&&(t="-"+t),i[t][n]},drawGraph:p.prototype.drawGraph}),r.bubble=o(r.scatter,{dataLabels:{inside:!0,style:{color:"white",textShadow:"0px 0px 3px black"},verticalAlign:"middle"},marker:{lineColor:null,lineWidth:1},minSize:8,maxSize:"20%",tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"},turboThreshold:0,zThreshold:0}),i.bubble=w(i.scatter,{type:"bubble",pointArrayMap:["y","z"],trackerGroups:["group","dataLabelsGroup"],bubblePadding:!0,pointAttrToOptions:{stroke:"lineColor","stroke-width":"lineWidth",fill:"fillColor"},applyOpacity:function(t){var i=this.options.marker,r=u(i.fillOpacity,.5),t=t||i.fillColor||this.color;return r!==1&&(t=n.Color(t).setOpacity(r).get("rgba")),t},convertAttribs:function(){var n=p.prototype.convertAttribs.apply(this,arguments);return n.fill=this.applyOpacity(n.fill),n},getRadii:function(n,t,i,r){for(var u,o=this.zData,s=[],h=this.options.sizeBy!=="width",f=0,e=o.length;f<e;f++)u=t-n,u=u>0?(o[f]-n)/(t-n):.5,h&&(u=Math.sqrt(u)),s.push(c.ceil(i+u*(r-i))/2);this.radii=s},animate:function(n){var t=this.options.animation;n||(f(this.points,function(n){var i=n.graphic,n=n.shapeArgs;i&&n&&(i.attr("r",1),i.animate({r:n.r},t))}),this.animate=null)},translate:function(){var u,f=this.data,n,r,e=this.radii;for(i.scatter.prototype.translate.call(this),u=f.length;u--;)n=f[u],r=e?e[u]:0,n.negative=n.z<(this.options.zThreshold||0),r>=this.minPxSize/2?(n.shapeType="circle",n.shapeArgs={x:n.plotX,y:n.plotY,r:r},n.dlBox={x:n.plotX-r,y:n.plotY-r,width:2*r,height:2*r}):n.shapeArgs=n.plotY=n.dlBox=t},drawLegendSymbol:function(n,t){var i=v(n.itemStyle.fontSize)/2;t.legendSymbol=this.chart.renderer.circle(i,n.baseline-i,i).attr({zIndex:3}).add(t.legendGroup),t.legendSymbol.isMarker=!0},drawPoints:i.column.prototype.drawPoints,alignDataLabel:i.column.prototype.alignDataLabel}),rt.prototype.beforePadding=function(){var b=this,n=this.len,w=this.chart,e=0,i=n,s=this.isXAxis,k=s?"xData":"yData",h=this.min,o={},d=c.min(w.plotWidth,w.plotHeight),l=Number.MAX_VALUE,a=-Number.MAX_VALUE,y=this.max-h,r=n/y,p=[];this.tickPositions&&(f(this.series,function(n){var t=n.options;n.bubblePadding&&n.visible&&(b.allowZoomOutside=!0,p.push(n),s)&&(f(["minSize","maxSize"],function(n){var i=t[n],r=/%$/.test(i),i=v(i);o[n]=r?d*i/100:i}),n.minPxSize=o.minSize,n=n.zData,n.length&&(l=c.min(l,c.max(ft(n),t.displayNegative===!1?t.zThreshold:-Number.MAX_VALUE)),a=c.max(a,et(n))))}),f(p,function(n){var u=n[k],t=u.length,f;if(s&&n.getRadii(l,a,o.minSize,o.maxSize),y>0)for(;t--;)u[t]!==null&&(f=n.radii[t],e=Math.min((u[t]-h)*r-f,e),i=Math.max((u[t]-h)*r+f,i))}),p.length&&y>0&&u(this.options.min,this.userMin)===t&&u(this.options.max,this.userMax)===t&&(i-=n,r*=(n+e-i)/n,this.min+=e/r,this.max+=i/r))},a=p.prototype,r=n.Pointer.prototype,a.toXY=function(n){var t,r=this.chart,i;t=n.plotX,i=n.plotY,n.rectPlotX=t,n.rectPlotY=i,n.clientX=(t/Math.PI*180+this.xAxis.pane.options.startAngle)%360,t=this.xAxis.postTranslate(n.plotX,this.yAxis.len-i),n.plotX=n.polarPlotX=t.x-r.plotLeft,n.plotY=n.polarPlotY=t.y-r.plotTop},a.orderTooltipPoints=function(n){this.chart.polar&&(n.sort(function(n,t){return n.clientX-t.clientX}),n[0])&&(n[0].wrappedClientX=n[0].clientX+360,n.push(n[0]))},e(i.area.prototype,"init",nt),e(i.areaspline.prototype,"init",nt),e(i.spline.prototype,"getPointSpline",function(n,t,i,r){var u,f,o,s,h,c,e;return this.chart.polar?(u=i.plotX,f=i.plotY,n=t[r-1],o=t[r+1],this.connectEnds&&(n||(n=t[t.length-2]),o||(o=t[1])),n&&o&&(s=n.plotX,h=n.plotY,t=o.plotX,c=o.plotY,s=(1.5*u+s)/2.5,h=(1.5*f+h)/2.5,o=(1.5*u+t)/2.5,e=(1.5*f+c)/2.5,t=Math.sqrt(Math.pow(s-u,2)+Math.pow(h-f,2)),c=Math.sqrt(Math.pow(o-u,2)+Math.pow(e-f,2)),s=Math.atan2(h-f,s-u),h=Math.atan2(e-f,o-u),e=Math.PI/2+(s+h)/2,Math.abs(s-e)>Math.PI/2&&(e-=Math.PI),s=u+Math.cos(e)*t,h=f+Math.sin(e)*t,o=u+Math.cos(Math.PI+e)*c,e=f+Math.sin(Math.PI+e)*c,i.rightContX=o,i.rightContY=e),r?(i=["C",n.rightContX||n.plotX,n.rightContY||n.plotY,s||u,h||f,u,f],n.rightContX=n.rightContY=null):i=["M",u,f]):i=n.call(this,t,i,r),i}),e(a,"translate",function(n){if(n.call(this),this.chart.polar&&!this.preventPostTranslate)for(var n=this.points,t=n.length;t--;)this.toXY(n[t])}),e(a,"getSegmentPath",function(n,t){var i=this.points;return this.chart.polar&&this.options.connectEnds!==!1&&t[t.length-1]===i[i.length-1]&&i[0].y!==null&&(this.connectEnds=!0,t=[].concat(t,[i[0]])),n.call(this,t)}),e(a,"animate",tt),e(s,"animate",tt),e(a,"setTooltipPoints",function(n,t){return this.chart.polar&&k(this.xAxis,{tooltipLen:360}),n.call(this,t)}),e(s,"translate",function(n){var i=this.xAxis,r=this.yAxis.len,e=i.center,o=i.startAngleRad,s=this.chart.renderer,t,f;if(this.preventPostTranslate=!0,n.call(this),i.isRadial)for(i=this.points,f=i.length;f--;)t=i[f],n=t.barX+o,t.shapeType="path",t.shapeArgs={d:s.symbols.arc(e[0],e[1],r-t.plotY,null,{start:n,end:n+t.pointWidth,innerR:r-u(t.yBottom,r)})},this.toXY(t)}),e(s,"alignDataLabel",function(n,t,i,r,u,f){this.chart.polar?(n=t.rectPlotX/Math.PI*180,r.align===null&&(r.align=n>20&&n<160?"left":n>200&&n<340?"right":"center"),r.verticalAlign===null&&(r.verticalAlign=n<45||n>315?"bottom":n>135&&n<225?"top":"middle"),a.alignDataLabel.call(this,t,i,r,u,f)):n.call(this,t,i,r,u,f)}),e(r,"getIndex",function(n,t){var r,i=this.chart,u;return i.polar?(u=i.xAxis[0].center,r=t.chartX-u[0]-i.plotLeft,i=t.chartY-u[1]-i.plotTop,r=180-Math.round(Math.atan2(r,i)/Math.PI*180)):r=n.call(this,t),r}),e(r,"getCoordinates",function(n,t){var i=this.chart,r={xAxis:[],yAxis:[]};return i.polar?f(i.axes,function(n){var f=n.isXAxis,u=n.center,e=t.chartX-u[0]-i.plotLeft,u=t.chartY-u[1]-i.plotTop;r[f?"xAxis":"yAxis"].push({axis:n,value:n.translate(f?Math.PI-Math.atan2(e,u):Math.sqrt(Math.pow(e,2)+Math.pow(u,2)),!0)})}):r=n.call(this,t),r})}(Highcharts)