!function(M,S){"object"==typeof module&&module.exports?module.exports=M.document?S(M):S:M.Highcharts=S(M)}("undefined"!=typeof window?window:this,function(M){var a,C,A,F,E,m,f,l;a=window,C=a.document,A=a.navigator&&a.navigator.userAgent||"",F=C&&C.createElementNS&&!!C.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,E=/(edge|msie|trident)/i.test(A)&&!window.opera,m=!F,f=/Firefox/.test(A),l=f&&parseInt(A.split("Firefox/")[1],10)<4,function(a){var C=[],A=a.charts,F=a.doc,E=a.win;a.error=function(m,f){if(m=a.isNumber(m)?"Highcharts error #"+m+": www.highcharts.com/errors/"+m:m,f)throw Error(m);E.console&&console.log(m)},a.Fx=function(a,f,l){this.options=f,this.elem=a,this.prop=l},a.Fx.prototype={dSetter:function(){var t,a=this.paths[0],f=this.paths[1],l=[],r=this.now,u=a.length;if(1===r)l=this.toD;else if(u===f.length&&r<1)for(;u--;)t=parseFloat(a[u]),l[u]=isNaN(t)?a[u]:r*parseFloat(f[u]-t)+t;else l=f;this.elem.attr("d",l,null,!0)},update:function(){var a=this.elem,f=this.prop,l=this.now,r=this.options.step;this[f+"Setter"]?this[f+"Setter"]():a.attr?a.element&&a.attr(f,l,null,!0):a.style[f]=l+this.unit,r&&r.call(a,l,this)},run:function(a,f,l){var t,r=this,m=function(a){return!m.stopped&&r.step(a)};this.startTime=+new Date,this.start=a,this.end=f,this.unit=l,this.now=this.start,this.pos=0,m.elem=this.elem,m.prop=this.prop,m()&&1===C.push(m)&&(m.timerId=setInterval(function(){for(t=0;t<C.length;t++)C[t]()||C.splice(t--,1);C.length||clearInterval(m.timerId)},13))},step:function(m){var l,f=+new Date,r=this.options,u=this.elem,t=r.complete,g=r.duration,d=r.curAnim;return m=!(u.attr&&!u.element)&&(m||f>=g+this.startTime?(this.now=this.end,this.pos=1,this.update(),l=d[this.prop]=!0,a.objectEach(d,function(a){!0!==a&&(l=!1)}),l&&t&&t.call(u),!1):(this.pos=r.easing((f-this.startTime)/g),this.now=this.start+(this.end-this.start)*this.pos,this.update(),!0))},initPath:function(m,f,l){function r(a){var c,e;for(n=a.length;n--;)c="M"===a[n]||"L"===a[n],e=/[a-zA-Z]/.test(a[n+3]),c&&e&&a.splice(n+1,0,a[n+1],a[n+2],a[n+1],a[n+2])}function u(a,c){for(;a.length<v;){a[0]=c[v-a.length];var b=a.slice(0,e);[].splice.apply(a,[0,0].concat(b)),D&&(b=a.slice(a.length-e),[].splice.apply(a,[a.length,0].concat(b)),n--)}a[0]="M"}function t(a,c){for(var q=(v-a.length)/e;0<q&&q--;)(y=a.slice().splice(a.length/J-e,e*J))[0]=c[v-e-q*e],b&&(y[e-6]=y[e-2],y[e-5]=y[e-1]),[].splice.apply(a,[a.length/J,0].concat(y)),D&&q--}f=f||"";var g,v,y,n,d=m.startX,k=m.endX,b=-1<f.indexOf("C"),e=b?7:3;f=f.split(" "),l=l.slice();var c,D=m.isArea,J=D?2:1;if(b&&(r(f),r(l)),d&&k){for(n=0;n<d.length;n++){if(d[n]===k[0]){g=n;break}if(d[0]===k[k.length-d.length+n]){g=n,c=!0;break}}void 0===g&&(f=[])}return f.length&&a.isNumber(g)&&(v=l.length+g*J*e,c?(u(f,l),t(l,f)):(u(l,f),t(f,l))),[f,l]}},a.Fx.prototype.fillSetter=a.Fx.prototype.strokeSetter=function(){this.elem.attr(this.prop,a.color(this.start).tweenTo(a.color(this.end),this.pos),null,!0)},a.extend=function(a,f){var m;for(m in a||(a={}),f)a[m]=f[m];return a},a.merge=function(){var m,l,f=arguments,r={},u=function(f,g){return"object"!=typeof f&&(f={}),a.objectEach(g,function(d,k){!a.isObject(d,!0)||a.isClass(d)||a.isDOMElement(d)?f[k]=g[k]:f[k]=u(f[k]||{},d)}),f};for(!0===f[0]&&(r=f[1],f=Array.prototype.slice.call(f,2)),l=f.length,m=0;m<l;m++)r=u(r,f[m]);return r},a.pInt=function(a,f){return parseInt(a,f||10)},a.isString=function(a){return"string"==typeof a},a.isArray=function(a){return"[object Array]"===(a=Object.prototype.toString.call(a))||"[object Array Iterator]"===a},a.isObject=function(m,f){return!(!m||"object"!=typeof m||f&&a.isArray(m))},a.isDOMElement=function(m){return a.isObject(m)&&"number"==typeof m.nodeType},a.isClass=function(m){var f=m&&m.constructor;return!(!a.isObject(m,!0)||a.isDOMElement(m)||!f||!f.name||"Object"===f.name)},a.isNumber=function(a){return"number"==typeof a&&!isNaN(a)},a.erase=function(a,f){for(var m=a.length;m--;)if(a[m]===f){a.splice(m,1);break}},a.defined=function(a){return null!=a},a.attr=function(m,f,l){var r;return a.isString(f)?a.defined(l)?m.setAttribute(f,l):m&&m.getAttribute&&(r=m.getAttribute(f)):a.defined(f)&&a.isObject(f)&&a.objectEach(f,function(a,f){m.setAttribute(f,a)}),r},a.splat=function(m){return a.isArray(m)?m:[m]},a.syncTimeout=function(a,f,l){if(f)return setTimeout(a,f,l);a.call(0,l)},a.pick=function(){var f,l,a=arguments,r=a.length;for(f=0;f<r;f++)if(null!=(l=a[f]))return l},a.css=function(m,f){a.isMS&&!a.svg&&f&&void 0!==f.opacity&&(f.filter="alpha(opacity="+100*f.opacity+")"),a.extend(m.style,f)},a.createElement=function(m,f,l,r,u){m=F.createElement(m);var t=a.css;return f&&a.extend(m,f),u&&t(m,{padding:0,border:"none",margin:0}),l&&t(m,l),r&&r.appendChild(m),m},a.extendClass=function(m,f){var l=function(){};return l.prototype=new m,a.extend(l.prototype,f),l},a.pad=function(a,f,l){return Array((f||2)+1-String(a).length).join(l||0)+a},a.relativeLength=function(a,f,l){return/%$/.test(a)?f*parseFloat(a)/100+(l||0):parseFloat(a)},a.wrap=function(a,f,l){var r=a[f];a[f]=function(){var a=Array.prototype.slice.call(arguments),f=arguments,g=this;return g.proceed=function(){r.apply(g,arguments.length?arguments:f)},a.unshift(r),a=l.apply(this,a),g.proceed=null,a}},a.getTZOffset=function(m){var f=a.Date;return 6e4*(f.hcGetTimezoneOffset&&f.hcGetTimezoneOffset(m)||f.hcTimezoneOffset||0)},a.dateFormat=function(m,f,l){if(!a.defined(f)||isNaN(f))return a.defaultOptions.lang.invalidDate||"";m=a.pick(m,"%Y-%m-%d %H:%M:%S");var u=new(r=a.Date)(f-a.getTZOffset(f)),t=u[r.hcGetHours](),g=u[r.hcGetDay](),d=u[r.hcGetDate](),k=u[r.hcGetMonth](),b=u[r.hcGetFullYear](),e=a.defaultOptions.lang,v=e.weekdays,y=e.shortWeekdays,n=a.pad,r=a.extend({a:y?y[g]:v[g].substr(0,3),A:v[g],d:n(d),e:n(d,2," "),w:g,b:e.shortMonths[k],B:e.months[k],m:n(k+1),y:b.toString().substr(2,2),Y:b,H:n(t),k:t,I:n(t%12||12),l:t%12||12,M:n(u[r.hcGetMinutes]()),p:t<12?"AM":"PM",P:t<12?"am":"pm",S:n(u.getSeconds()),L:n(Math.round(f%1e3),3)},a.dateFormats);return a.objectEach(r,function(a,e){for(;-1!==m.indexOf("%"+e);)m=m.replace("%"+e,"function"==typeof a?a(f):a)}),l?m.substr(0,1).toUpperCase()+m.substr(1):m},a.formatSingle=function(m,f){var l=/\.([0-9])/,r=a.defaultOptions.lang;return/f$/.test(m)?(l=(l=m.match(l))?l[1]:-1,null!==f&&(f=a.numberFormat(f,l,r.decimalPoint,-1<m.indexOf(",")?r.thousandsSep:""))):f=a.dateFormat(m,f),f},a.format=function(m,f){for(var u,t,g,d,b,l="{",r=!1,k=[];m&&-1!==(l=m.indexOf(l));){if(u=m.slice(0,l),r){for(d=(t=(u=u.split(":")).shift().split(".")).length,b=f,g=0;g<d;g++)b=b[t[g]];u.length&&(b=a.formatSingle(u.join(":"),b)),k.push(b)}else k.push(u);m=m.slice(l+1),l=(r=!r)?"}":"{"}return k.push(m),k.join("")},a.getMagnitude=function(a){return Math.pow(10,Math.floor(Math.log(a)/Math.LN10))},a.normalizeTickInterval=function(m,f,l,r,u){var t,g=m;for(t=m/(l=a.pick(l,1)),f||(f=u?[1,1.2,1.5,2,2.5,3,4,5,6,8,10]:[1,2,2.5,5,10],!1===r&&(1===l?f=a.grep(f,function(a){return 0==a%1}):l<=.1&&(f=[1/l]))),r=0;r<f.length&&(g=f[r],!(u&&m<=g*l||!u&&t<=(f[r]+(f[r+1]||f[r]))/2));r++);return a.correctFloat(g*l,-Math.round(Math.log(.001)/Math.LN10))},a.stableSort=function(a,f){var r,m,l=a.length;for(m=0;m<l;m++)a[m].safeI=m;for(a.sort(function(a,g){return 0===(r=f(a,g))?a.safeI-g.safeI:r}),m=0;m<l;m++)delete a[m].safeI},a.arrayMin=function(a){for(var f=a.length,l=a[0];f--;)a[f]<l&&(l=a[f]);return l},a.arrayMax=function(a){for(var f=a.length,l=a[0];f--;)a[f]>l&&(l=a[f]);return l},a.destroyObjectProperties=function(m,f){a.objectEach(m,function(a,r){a&&a!==f&&a.destroy&&a.destroy(),delete m[r]})},a.discardElement=function(m){var f=a.garbageBin;f||(f=a.createElement("div")),m&&f.appendChild(m),f.innerHTML=""},a.correctFloat=function(a,f){return parseFloat(a.toPrecision(f||14))},a.setAnimation=function(m,f){f.renderer.globalAnimation=a.pick(m,f.options.chart.animation,!0)},a.animObject=function(m){return a.isObject(m)?a.merge(m):{duration:m?500:0}},a.timeUnits={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},a.numberFormat=function(m,f,l,r){m=+m||0,f=+f;var g,d,u=a.defaultOptions.lang,t=(m.toString().split(".")[1]||"").split("e")[0].length,k=m.toString().split("e");return-1===f?f=Math.min(t,20):a.isNumber(f)||(f=2),d=(Math.abs(k[1]?k[0]:m)+Math.pow(10,-Math.max(f,t)-1)).toFixed(f),g=3<(t=String(a.pInt(d))).length?t.length%3:0,l=a.pick(l,u.decimalPoint),r=a.pick(r,u.thousandsSep),m=(m<0?"-":"")+(g?t.substr(0,g)+r:""),m+=t.substr(g).replace(/(\d{3})(?=\d)/g,"$1"+r),f&&(m+=l+d.slice(-f)),k[1]&&(m+="e"+k[1]),m},Math.easeInOutSine=function(a){return-.5*(Math.cos(Math.PI*a)-1)},a.getStyle=function(m,f,l){return"width"===f?Math.min(m.offsetWidth,m.scrollWidth)-a.getStyle(m,"padding-left")-a.getStyle(m,"padding-right"):"height"===f?Math.min(m.offsetHeight,m.scrollHeight)-a.getStyle(m,"padding-top")-a.getStyle(m,"padding-bottom"):((m=E.getComputedStyle(m,void 0))&&(m=m.getPropertyValue(f),a.pick(l,!0)&&(m=a.pInt(m))),m)},a.inArray=function(a,f){return f.indexOf?f.indexOf(a):[].indexOf.call(f,a)},a.grep=function(a,f){return[].filter.call(a,f)},a.find=function(a,f){return[].find.call(a,f)},a.map=function(a,f){for(var l=[],r=0,m=a.length;r<m;r++)l[r]=f.call(a[r],a[r],r,a);return l},a.offset=function(a){var f=F.documentElement;return{top:(a=a.getBoundingClientRect()).top+(E.pageYOffset||f.scrollTop)-(f.clientTop||0),left:a.left+(E.pageXOffset||f.scrollLeft)-(f.clientLeft||0)}},a.stop=function(a,f){for(var l=C.length;l--;)C[l].elem!==a||f&&f!==C[l].prop||(C[l].stopped=!0)},a.each=function(a,f,l){return Array.prototype.forEach.call(a,f,l)},a.objectEach=function(a,f,l){for(var r in a)a.hasOwnProperty(r)&&f.call(l,a[r],r,a)},a.addEvent=function(m,f,l){function r(a){a.target=a.srcElement||E,l.call(m,a)}var u=m.hcEvents=m.hcEvents||{};return m.addEventListener?m.addEventListener(f,l,!1):m.attachEvent&&(m.hcEventsIE||(m.hcEventsIE={}),l.hcGetKey||(l.hcGetKey=a.uniqueKey()),m.hcEventsIE[l.hcGetKey]=r,m.attachEvent("on"+f,r)),u[f]||(u[f]=[]),u[f].push(l),function(){a.removeEvent(m,f,l)}},a.removeEvent=function(m,f,l){function r(a,b){m.removeEventListener?m.removeEventListener(a,b,!1):m.attachEvent&&(b=m.hcEventsIE[b.hcGetKey],m.detachEvent("on"+a,b))}function u(){var d,b;m.nodeName&&(f?(d={})[f]=!0:d=g,a.objectEach(d,function(a,d){if(g[d])for(b=g[d].length;b--;)r(d,g[d][b])}))}var t,d,g=m.hcEvents;g&&(f?(t=g[f]||[],l?(-1<(d=a.inArray(l,t))&&(t.splice(d,1),g[f]=t),r(f,l)):(u(),g[f]=[])):(u(),m.hcEvents={}))},a.fireEvent=function(m,f,l,r){var u,t,g;if(u=m.hcEvents,l=l||{},F.createEvent&&(m.dispatchEvent||m.fireEvent))(u=F.createEvent("Events")).initEvent(f,!0,!0),a.extend(u,l),m.dispatchEvent?m.dispatchEvent(u):m.fireEvent(f,u);else if(u)for(t=(u=u[f]||[]).length,l.target||a.extend(l,{preventDefault:function(){l.defaultPrevented=!0},target:m,type:f}),f=0;f<t;f++)(g=u[f])&&!1===g.call(m,l)&&l.preventDefault();r&&!l.defaultPrevented&&r(l)},a.animate=function(m,f,l){var r,t,g,d,u="";a.isObject(l)||(l={duration:(d=arguments)[2],easing:d[3],complete:d[4]}),a.isNumber(l.duration)||(l.duration=400),l.easing="function"==typeof l.easing?l.easing:Math[l.easing]||Math.easeInOutSine,l.curAnim=a.merge(f),a.objectEach(f,function(d,b){a.stop(m,b),g=new a.Fx(m,l,b),t=null,"d"===b?(g.paths=g.initPath(m,m.d,f.d),g.toD=f.d,r=0,t=1):m.attr?r=m.attr(b):(r=parseFloat(a.getStyle(m,b))||0,"opacity"!==b&&(u="px")),t||(t=d),t&&t.match&&t.match("px")&&(t=t.replace(/px/g,"")),g.run(r,t,u)})},a.seriesType=function(m,f,l,r,u){var t=a.getOptions(),g=a.seriesTypes;return t.plotOptions[m]=a.merge(t.plotOptions[f],l),g[m]=a.extendClass(g[f]||function(){},r),g[m].prototype.type=m,u&&(g[m].prototype.pointClass=a.extendClass(a.Point,u)),g[m]},a.uniqueKey=function(){var a=Math.random().toString(36).substring(2,9),f=0;return function(){return"highcharts-"+a+"-"+f++}}(),E.jQuery&&(E.jQuery.fn.highcharts=function(){var m=[].slice.call(arguments);if(this[0])return m[0]?(new(a[a.isString(m[0])?m.shift():"Chart"])(this[0],m[0],m[1]),this):A[a.attr(this[0],"data-highcharts-chart")]}),F&&!F.defaultView&&(a.getStyle=function(m,f){var l={width:"clientWidth",height:"clientHeight"}[f];return m.style[f]?a.pInt(m.style[f]):("opacity"===f&&(f="filter"),l?(m.style.zoom=1,Math.max(m[l]-2*a.getStyle(m,"padding"),0)):(m=m.currentStyle[f.replace(/\-(\w)/g,function(a,f){return f.toUpperCase()})],"filter"===f&&(m=m.replace(/alpha\(opacity=([0-9]+)\)/,function(a,f){return f/100})),""===m?1:a.pInt(m)))}),Array.prototype.forEach||(a.each=function(a,f,l){for(var r=0,m=a.length;r<m;r++)if(!1===f.call(l,a[r],r,a))return r}),Array.prototype.indexOf||(a.inArray=function(a,f){var l,r=0;if(f)for(l=f.length;r<l;r++)if(f[r]===a)return r;return-1}),Array.prototype.filter||(a.grep=function(a,f){for(var l=[],r=0,m=a.length;r<m;r++)f(a[r],r)&&l.push(a[r]);return l}),Array.prototype.find||(a.find=function(a,f){var l,r=a.length;for(l=0;l<r;l++)if(f(a[l],l))return a[l]})}(M=a.Highcharts?a.Highcharts.error(16,!0):{product:"Highcharts",version:"5.0.14",deg2rad:2*Math.PI/360,doc:C,hasBidiBug:l,hasTouch:C&&void 0!==C.documentElement.ontouchstart,isMS:E,isWebKit:/AppleWebKit/.test(A),isFirefox:f,isTouchDevice:/(Mobile|Android|Windows Phone)/.test(A),SVG_NS:"http://www.w3.org/2000/svg",chartCount:0,seriesTypes:{},symbolSizes:{},svg:F,vml:m,win:a,marginNames:["plotTop","marginRight","marginBottom","plotLeft"],noop:function(){},charts:[]}),function(a){var C=a.each,A=a.isNumber,F=a.map,E=a.merge,m=a.pInt;a.Color=function(f){if(!(this instanceof a.Color))return new a.Color(f);this.init(f)},a.Color.prototype={parsers:[{regex:/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*\)/,parse:function(a){return[m(a[1]),m(a[2]),m(a[3]),parseFloat(a[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(a){return[m(a[1]),m(a[2]),m(a[3]),1]}}],names:{none:"rgba(255,255,255,0)",white:"#ffffff",black:"#000000"},init:function(f){var l,r,m,t;if((this.input=f=this.names[f&&f.toLowerCase?f.toLowerCase():""]||f)&&f.stops)this.stops=F(f.stops,function(g){return new a.Color(g[1])});else if(f&&"#"===f.charAt()&&(l=f.length,f=parseInt(f.substr(1),16),7===l?r=[(16711680&f)>>16,(65280&f)>>8,255&f,1]:4===l&&(r=[(3840&f)>>4|(3840&f)>>8,(240&f)>>4|240&f,(15&f)<<4|15&f,1])),!r)for(m=this.parsers.length;m--&&!r;)(l=(t=this.parsers[m]).regex.exec(f))&&(r=t.parse(l));this.rgba=r||[]},get:function(a){var m,f=this.input,r=this.rgba;return this.stops?((m=E(f)).stops=[].concat(m.stops),C(this.stops,function(f,g){m.stops[g]=[m.stops[g][0],f.get(a)]})):m=r&&A(r[0])?"rgb"===a||!a&&1===r[3]?"rgb("+r[0]+","+r[1]+","+r[2]+")":"a"===a?r[3]:"rgba("+r.join(",")+")":f,m},brighten:function(a){var f,r=this.rgba;if(this.stops)C(this.stops,function(f){f.brighten(a)});else if(A(a)&&0!==a)for(f=0;f<3;f++)r[f]+=m(255*a),r[f]<0&&(r[f]=0),255<r[f]&&(r[f]=255);return this},setOpacity:function(a){return this.rgba[3]=a,this},tweenTo:function(a,l){var f,m;return a=a.rgba.length?(f=this.rgba,((m=1!==(a=a.rgba)[3]||1!==f[3])?"rgba(":"rgb(")+Math.round(a[0]+(f[0]-a[0])*(1-l))+","+Math.round(a[1]+(f[1]-a[1])*(1-l))+","+Math.round(a[2]+(f[2]-a[2])*(1-l))+(m?","+(a[3]+(f[3]-a[3])*(1-l)):"")+")"):a.input||"none"}},a.color=function(f){return new a.Color(f)}}(M),function(a){var C,A,F=a.addEvent,E=a.animate,m=a.attr,f=a.charts,l=a.color,r=a.css,u=a.createElement,t=a.defined,g=a.deg2rad,d=a.destroyObjectProperties,k=a.doc,b=a.each,e=a.extend,v=a.erase,y=a.grep,n=a.hasTouch,D=a.inArray,J=a.isArray,c=a.isFirefox,G=a.isMS,q=a.isObject,B=a.isString,K=a.isWebKit,p=a.merge,z=a.noop,I=a.objectEach,L=a.pick,h=a.pInt,w=a.removeEvent,P=a.stop,H=a.svg,O=a.SVG_NS,Q=a.symbolSizes,R=a.win;C=a.SVGElement=function(){return this},e(C.prototype,{opacity:1,SVG_NS:O,textProps:"direction fontSize fontWeight fontFamily fontStyle color lineHeight width textAlign textDecoration textOverflow textOutline".split(" "),init:function(a,h){this.element="span"===h?u(h):k.createElementNS(this.SVG_NS,h),this.renderer=a},animate:function(x,h,c){return 0!==(h=a.animObject(L(h,this.renderer.globalAnimation,!0))).duration?(c&&(h.complete=c),E(this,x,h)):(this.attr(x,null,c),h.step&&h.step.call(this)),this},colorGradient:function(x,h,c){var e,q,N,d,n,g,k,H,G,v,f,w=this.renderer,z=[];x.radialGradient?q="radialGradient":x.linearGradient&&(q="linearGradient"),q&&(N=x[q],n=w.gradients,k=x.stops,v=c.radialReference,J(N)&&(x[q]=N={x1:N[0],y1:N[1],x2:N[2],y2:N[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===q&&v&&!t(N.gradientUnits)&&(N=p(d=N,w.getRadialAttr(v,d),{gradientUnits:"userSpaceOnUse"})),I(N,function(a,x){"id"!==x&&z.push(x,a)}),I(k,function(a){z.push(a)}),n[z=z.join(",")]?v=n[z].attr("id"):(N.id=v=a.uniqueKey(),n[z]=g=w.createElement(q).attr(N).add(w.defs),g.radAttr=d,g.stops=[],b(k,function(x){G=0===x[1].indexOf("rgba")?(e=a.color(x[1]),H=e.get("rgb"),e.get("a")):(H=x[1],1),x=w.createElement("stop").attr({offset:x[0],"stop-color":H,"stop-opacity":G}).add(g),g.stops.push(x)})),f="url("+w.url+"#"+v+")",c.setAttribute(h,f),c.gradient=z,x.toString=function(){return f})},applyTextOutline:function(x){var c,w,p,e,q,h=this.element;if(-1!==x.indexOf("contrast")&&(x=x.replace(/contrast/g,this.renderer.getContrast(h.style.fill))),x=x.split(" "),w=x[x.length-1],(p=x[0])&&"none"!==p&&a.svg){for(this.fakeTS=!0,x=[].slice.call(h.getElementsByTagName("tspan")),this.ySetter=this.xSetter,p=p.replace(/(^[\d\.]+)(.*?)$/g,function(a,x,h){return 2*x+h}),q=x.length;q--;)"highcharts-text-outline"===(c=x[q]).getAttribute("class")&&v(x,h.removeChild(c));e=h.firstChild,b(x,function(a,x){0===x&&(a.setAttribute("x",h.getAttribute("x")),x=h.getAttribute("y"),a.setAttribute("y",x||0),null===x&&h.setAttribute("y",0)),a=a.cloneNode(1),m(a,{class:"highcharts-text-outline",fill:w,stroke:w,"stroke-width":p,"stroke-linejoin":"round"}),h.insertBefore(a,e)})}},attr:function(a,h,c,w){var x,e,b,N,p=this.element,q=this;return"string"==typeof a&&void 0!==h&&(x=a,(a={})[x]=h),"string"==typeof a?q=(this[a+"Getter"]||this._defaultGetter).call(this,a,p):(I(a,function(x,h){b=!1,w||P(this,h),this.symbolName&&/^(x|y|width|height|r|start|end|innerR|anchorX|anchorY)$/.test(h)&&(e||(this.symbolAttr(a),e=!0),b=!0),!this.rotation||"x"!==h&&"y"!==h||(this.doTransform=!0),b||((N=this[h+"Setter"]||this._defaultSetter).call(this,x,h,p),this.shadows&&/^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(h)&&this.updateShadows(h,x,N))},this),this.afterSetters()),c&&c(),q},afterSetters:function(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)},updateShadows:function(a,h,c){for(var x=this.shadows,w=x.length;w--;)c.call(x[w],"height"===a?Math.max(h-(x[w].cutHeight||0),0):"d"===a?this.d:h,a,x[w])},addClass:function(a,h){var x=this.attr("class")||"";return-1===x.indexOf(a)&&(h||(a=(x+(x?" ":"")+a).replace("  "," ")),this.attr("class",a)),this},hasClass:function(a){return-1!==D(a,(this.attr("class")||"").split(" "))},removeClass:function(a){return this.attr("class",(this.attr("class")||"").replace(a,""))},symbolAttr:function(a){var x=this;b("x y r start end width height innerR anchorX anchorY".split(" "),function(h){x[h]=L(a[h],x[h])}),x.attr({d:x.renderer.symbols[x.symbolName](x.x,x.y,x.width,x.height,x)})},clip:function(a){return this.attr("clip-path",a?"url("+this.renderer.url+"#"+a.id+")":"none")},crisp:function(a,h){var w,x=this,c={};return h=h||a.strokeWidth||0,w=Math.round(h)%2/2,a.x=Math.floor(a.x||x.x||0)+w,a.y=Math.floor(a.y||x.y||0)+w,a.width=Math.floor((a.width||x.width||0)-2*w),a.height=Math.floor((a.height||x.height||0)-2*w),t(a.strokeWidth)&&(a.strokeWidth=h),I(a,function(a,h){x[h]!==a&&(x[h]=c[h]=a)}),c},css:function(a){var p,b,x=this.styles,c={},w=this.element,q="",d=!x,n=["textOutline","textOverflow","width"];return a&&a.color&&(a.fill=a.color),x&&I(a,function(a,h){a!==x[h]&&(c[h]=a,d=!0)}),d&&(x&&(a=e(x,c)),p=this.textWidth=a&&a.width&&"auto"!==a.width&&"text"===w.nodeName.toLowerCase()&&h(a.width),this.styles=a,p&&!H&&this.renderer.forExport&&delete a.width,G&&!H?r(this.element,a):(b=function(a,x){return"-"+x.toLowerCase()},I(a,function(a,x){-1===D(x,n)&&(q+=x.replace(/([A-Z])/g,b)+":"+a+";")}),q&&m(w,"style",q)),this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),a&&a.textOutline&&this.applyTextOutline(a.textOutline))),this},strokeWidth:function(){return this["stroke-width"]||0},on:function(a,h){var x=this,c=x.element;return n&&"click"===a?(c.ontouchstart=function(a){x.touchEventFired=Date.now(),a.preventDefault(),h.call(c,a)},c.onclick=function(a){(-1===R.navigator.userAgent.indexOf("Android")||1100<Date.now()-(x.touchEventFired||0))&&h.call(c,a)}):c["on"+a]=h,this},setRadialReference:function(a){var x=this.renderer.gradients[this.element.gradient];return this.element.radialReference=a,x&&x.radAttr&&x.animate(this.renderer.getRadialAttr(a,x.radAttr)),this},translate:function(a,h){return this.attr({translateX:a,translateY:h})},invert:function(a){return this.inverted=a,this.updateTransform(),this},updateTransform:function(){var a=this.translateX||0,h=this.translateY||0,c=this.scaleX,w=this.scaleY,p=this.inverted,e=this.rotation,q=this.element;p&&(a+=this.width,h+=this.height),a=["translate("+a+","+h+")"],p?a.push("rotate(90) scale(-1,1)"):e&&a.push("rotate("+e+" "+(q.getAttribute("x")||0)+" "+(q.getAttribute("y")||0)+")"),(t(c)||t(w))&&a.push("scale("+L(c,1)+" "+L(w,1)+")"),a.length&&q.setAttribute("transform",a.join(" "))},toFront:function(){var a=this.element;return a.parentNode.appendChild(a),this},align:function(a,h,c){var x,w,p,e,b,d,q={};return p=(w=this.renderer).alignedObjects,a?(this.alignOptions=a,this.alignByTranslate=h,(!c||B(c))&&(this.alignTo=x=c||"renderer",v(p,this),p.push(this),c=null)):(a=this.alignOptions,h=this.alignByTranslate,x=this.alignTo),c=L(c,w[x],w),x=a.align,w=a.verticalAlign,p=(c.x||0)+(a.x||0),e=(c.y||0)+(a.y||0),"right"===x?b=1:"center"===x&&(b=2),b&&(p+=(c.width-(a.width||0))/b),q[h?"translateX":"x"]=Math.round(p),"bottom"===w?d=1:"middle"===w&&(d=2),d&&(e+=(c.height-(a.height||0))/d),q[h?"translateY":"y"]=Math.round(e),this[this.placed?"animate":"attr"](q),this.placed=!0,this.alignAttr=q,this},getBBox:function(a,h){var x,w,d,k,G,c=this.renderer,p=this.element,q=this.styles,n=this.textStr,N=c.cache,H=c.cacheKeys;if(w=(h=L(h,this.rotation))*g,d=q&&q.fontSize,void 0!==n&&(-1===(G=n.toString()).indexOf("<")&&(G=G.replace(/[0-9]/g,"0")),G+=["",h||0,d,q&&q.width,q&&q.textOverflow].join()),G&&!a&&(x=N[G]),!x){if(p.namespaceURI===this.SVG_NS||c.forExport){try{(k=this.fakeTS&&function(a){b(p.querySelectorAll(".highcharts-text-outline"),function(x){x.style.display=a})})&&k("none"),x=p.getBBox?e({},p.getBBox()):{width:p.offsetWidth,height:p.offsetHeight},k&&k("")}catch(W){}(!x||x.width<0)&&(x={width:0,height:0})}else x=this.htmlGetBBox();if(c.isSVG&&(a=x.width,c=x.height,q&&"11px"===q.fontSize&&17===Math.round(c)&&(x.height=c=14),h&&(x.width=Math.abs(c*Math.sin(w))+Math.abs(a*Math.cos(w)),x.height=Math.abs(c*Math.cos(w))+Math.abs(a*Math.sin(w)))),G&&0<x.height){for(;250<H.length;)delete N[H.shift()];N[G]||H.push(G),N[G]=x}}return x},show:function(a){return this.attr({visibility:a?"inherit":"visible"})},hide:function(){return this.attr({visibility:"hidden"})},fadeOut:function(a){var x=this;x.animate({opacity:0},{duration:a||150,complete:function(){x.attr({y:-9999})}})},add:function(a){var c,x=this.renderer,h=this.element;return a&&(this.parentGroup=a),this.parentInverted=a&&a.inverted,void 0!==this.textStr&&x.buildText(this),this.added=!0,(!a||a.handleZ||this.zIndex)&&(c=this.zIndexSetter()),c||(a?a.element:x.box).appendChild(h),this.onAdd&&this.onAdd(),this},safeRemoveChild:function(a){var x=a.parentNode;x&&x.removeChild(a)},destroy:function(){var a=this,h=a.element||{},c=a.renderer.isSVG&&"SPAN"===h.nodeName&&a.parentGroup,w=h.ownerSVGElement;if(h.onclick=h.onmouseout=h.onmouseover=h.onmousemove=h.point=null,P(a),a.clipPath&&w&&(b(w.querySelectorAll("[clip-path]"),function(x){-1<x.getAttribute("clip-path").indexOf(a.clipPath.element.id+")")&&x.removeAttribute("clip-path")}),a.clipPath=a.clipPath.destroy()),a.stops){for(w=0;w<a.stops.length;w++)a.stops[w]=a.stops[w].destroy();a.stops=null}for(a.safeRemoveChild(h),a.destroyShadows();c&&c.div&&0===c.div.childNodes.length;)h=c.parentGroup,a.safeRemoveChild(c.div),delete c.div,c=h;return a.alignTo&&v(a.renderer.alignedObjects,a),I(a,function(x,h){delete a[h]}),null},shadow:function(a,h,c){var w,p,e,b,d,n,x=[],q=this.element;if(a){if(!this.shadows){for(b=L(a.width,3),d=(a.opacity||.15)/b,n=this.parentInverted?"(-1,-1)":"("+L(a.offsetX,1)+", "+L(a.offsetY,1)+")",w=1;w<=b;w++)p=q.cloneNode(0),e=2*b+1-2*w,m(p,{isShadow:"true",stroke:a.color||"#000000","stroke-opacity":d*w,"stroke-width":e,transform:"translate"+n,fill:"none"}),c&&(m(p,"height",Math.max(m(p,"height")-e,0)),p.cutHeight=e),h?h.element.appendChild(p):q.parentNode.insertBefore(p,q),x.push(p);this.shadows=x}}else this.destroyShadows();return this},destroyShadows:function(){b(this.shadows||[],function(a){this.safeRemoveChild(a)},this),this.shadows=void 0},xGetter:function(a){return"circle"===this.element.nodeName&&("x"===a?a="cx":"y"===a&&(a="cy")),this._defaultGetter(a)},_defaultGetter:function(a){return a=L(this[a],this.element?this.element.getAttribute(a):null,0),/^[\-0-9\.]+$/.test(a)&&(a=parseFloat(a)),a},dSetter:function(a,h,c){a&&a.join&&(a=a.join(" ")),/(NaN| {2}|^$)/.test(a)&&(a="M 0 0"),this[h]!==a&&(c.setAttribute(h,a),this[h]=a)},dashstyleSetter:function(a){var x,c=this["stroke-width"];if("inherit"===c&&(c=1),a=a&&a.toLowerCase()){for(x=(a=a.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(",")).length;x--;)a[x]=h(a[x])*c;a=a.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",a)}},alignSetter:function(a){this.element.setAttribute("text-anchor",{left:"start",center:"middle",right:"end"}[a])},opacitySetter:function(a,h,c){this[h]=a,c.setAttribute(h,a)},titleSetter:function(a){var h=this.element.getElementsByTagName("title")[0];h||(h=k.createElementNS(this.SVG_NS,"title"),this.element.appendChild(h)),h.firstChild&&h.removeChild(h.firstChild),h.appendChild(k.createTextNode(String(L(a),"").replace(/<[^>]*>/g,"")))},textSetter:function(a){a!==this.textStr&&(delete this.bBox,this.textStr=a,this.added&&this.renderer.buildText(this))},fillSetter:function(a,h,c){"string"==typeof a?c.setAttribute(h,a):a&&this.colorGradient(a,h,c)},visibilitySetter:function(a,h,c){"inherit"===a?c.removeAttribute(h):this[h]!==a&&c.setAttribute(h,a),this[h]=a},zIndexSetter:function(a,c){var q,b,d,x=this.renderer,w=this.parentGroup,p=(w||x).element||x.box,e=this.element;if(q=this.added,t(a)&&(a=+(e.zIndex=a),this[c]===a&&(q=!1),this[c]=a),q){for((a=this.zIndex)&&w&&(w.handleZ=!0),c=p.childNodes,d=0;d<c.length&&!b;d++)q=(w=c[d]).zIndex,w!==e&&(h(q)>a||!t(a)&&t(q)||a<0&&!t(q)&&p!==x.box)&&(p.insertBefore(e,w),b=!0);b||p.appendChild(e)}return b},_defaultSetter:function(a,h,c){c.setAttribute(h,a)}}),C.prototype.yGetter=C.prototype.xGetter,C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.rotationSetter=C.prototype.verticalAlignSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=function(a,h){this[h]=a,this.doTransform=!0},C.prototype["stroke-widthSetter"]=C.prototype.strokeSetter=function(a,h,c){this[h]=a,this.stroke&&this["stroke-width"]?(C.prototype.fillSetter.call(this,this.stroke,"stroke",c),c.setAttribute("stroke-width",this["stroke-width"]),this.hasStroke=!0):"stroke-width"===h&&0===a&&this.hasStroke&&(c.removeAttribute("stroke"),this.hasStroke=!1)},A=a.SVGRenderer=function(){this.init.apply(this,arguments)},e(A.prototype,{Element:C,SVG_NS:O,init:function(a,h,w,p,q,e){var x,b;x=(p=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}).css(this.getStyle(p))).element,a.appendChild(x),-1===a.innerHTML.indexOf("xmlns")&&m(x,"xmlns",this.SVG_NS),this.isSVG=!0,this.box=x,this.boxWrapper=p,this.alignedObjects=[],this.url=(c||K)&&k.getElementsByTagName("base").length?R.location.href.replace(/#.*?$/,"").replace(/<[^>]*>/g,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"",this.createElement("desc").add().element.appendChild(k.createTextNode("Created with Highcharts 5.0.14")),this.defs=this.createElement("defs").add(),this.allowHTML=e,this.forExport=q,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.setSize(h,w,!1),c&&a.getBoundingClientRect&&((h=function(){r(a,{left:0,top:0}),b=a.getBoundingClientRect(),r(a,{left:Math.ceil(b.left)-b.left+"px",top:Math.ceil(b.top)-b.top+"px"})})(),this.unSubPixelFix=F(R,"resize",h))},getStyle:function(a){return this.style=e({fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif',fontSize:"12px"},a)},setStyle:function(a){this.boxWrapper.css(this.getStyle(a))},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var a=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),d(this.gradients||{}),this.gradients=null,a&&(this.defs=a.destroy()),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null},createElement:function(a){var h=new this.Element;return h.init(this,a),h},draw:z,getRadialAttr:function(a,h){return{cx:a[0]-a[2]/2+h.cx*a[2],cy:a[1]-a[2]/2+h.cy*a[2],r:h.r*a[2]}},getSpanWidth:function(a,h){var c=a.getBBox(!0).width;return!H&&this.forExport&&(c=this.measureSpanWidth(h.firstChild.data,a.styles)),c},applyEllipsis:function(a,h,c,w){var q,n,x=a.rotation,p=c,e=0,b=c.length,d=function(a){h.removeChild(h.firstChild),a&&h.appendChild(k.createTextNode(a))};if(a.rotation=0,n=w<(p=this.getSpanWidth(a,h))){for(;e<=b;)q=Math.ceil((e+b)/2),d(p=c.substring(0,q)+"…"),p=this.getSpanWidth(a,h),e===b?e=b+1:w<p?b=q-1:e=q;0===b&&d("")}return a.rotation=x,n},buildText:function(a){var d,n,g,G,t,J,c=a.element,w=this,x=w.forExport,p=L(a.textStr,"").toString(),q=-1!==p.indexOf("<"),e=c.childNodes,v=m(c,"x"),z=a.styles,f=a.textWidth,I=z&&z.lineHeight,B=z&&z.textOutline,D=z&&"ellipsis"===z.textOverflow,l=z&&"nowrap"===z.whiteSpace,P=z&&z.fontSize,u=e.length,K=(z=f&&!a.added&&this.box,function(a){var x;return x=/(px|em)$/.test(a&&a.style.fontSize)?a.style.fontSize:P||w.style.fontSize||12,I?h(I):w.fontMetrics(x,a.getAttribute("style")?a:c).h});if((t=[p,D,l,I,B,P,f].join())!==a.textCache){for(a.textCache=t;u--;)c.removeChild(e[u]);q||B||D||f||-1!==p.indexOf(" ")?(d=/<.*class="([^"]+)".*>/,n=/<.*style="([^"]+)".*>/,g=/<.*href="([^"]+)".*>/,z&&z.appendChild(c),p=q?p.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):[p],p=y(p,function(a){return""!==a}),b(p,function(h,p){var q,e=0;h=h.replace(/^\s+|\s+$/g,"").replace(/<span/g,"|||<span").replace(/<\/span>/g,"</span>|||"),q=h.split("|||"),b(q,function(h){if(""!==h||1===q.length){var y,I,b={},z=k.createElementNS(w.SVG_NS,"tspan");if(d.test(h)&&(y=h.match(d)[1],m(z,"class",y)),n.test(h)&&(I=h.match(n)[1].replace(/(;| |^)color([ :])/,"$1fill$2"),m(z,"style",I)),g.test(h)&&!x&&(m(z,"onclick",'location.href="'+h.match(g)[1]+'"'),r(z,{cursor:"pointer"}))," "!==(h=(h.replace(/<(.|\n)*?>/g,"")||" ").replace(/&lt;/g,"<").replace(/&gt;/g,">"))){if(z.appendChild(k.createTextNode(h)),e?b.dx=0:p&&null!==v&&(b.x=v),m(z,b),c.appendChild(z),!e&&J&&(!H&&x&&r(z,{display:"block"}),m(z,"dy",K(z))),f){b=h.replace(/([^\^])-/g,"$1- ").split(" "),y=1<q.length||p||1<b.length&&!l;var N,B=[],P=K(z),t=a.rotation;for(D&&(G=w.applyEllipsis(a,z,h,f));!D&&y&&(b.length||B.length);)a.rotation=0,N=w.getSpanWidth(a,z),h=f<N,void 0===G&&(G=h),h&&1!==b.length?(z.removeChild(z.firstChild),B.unshift(b.pop())):(b=B,B=[],b.length&&!l&&(z=k.createElementNS(O,"tspan"),m(z,{dy:P,x:v}),I&&m(z,"style",I),c.appendChild(z)),f<N&&(f=N)),b.length&&z.appendChild(k.createTextNode(b.join(" ").replace(/- /g,"-")));a.rotation=t}e++}}}),J=J||c.childNodes.length}),G&&a.attr("title",a.textStr),z&&z.removeChild(c),B&&a.applyTextOutline&&a.applyTextOutline(B)):c.appendChild(k.createTextNode(p.replace(/&lt;/g,"<").replace(/&gt;/g,">")))}},getContrast:function(a){return 510<(a=l(a).rgba)[0]+a[1]+a[2]?"#000000":"#FFFFFF"},button:function(a,h,c,w,q,b,d,n,g){var z,H,v,f,x=this.label(a,h,c,g,null,null,null,null,"button"),k=0;return x.attr(p({padding:8,r:2},q)),q=p({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1,style:{color:"#333333",cursor:"pointer",fontWeight:"normal"}},q),z=q.style,delete q.style,b=p(q,{fill:"#e6e6e6"},b),H=b.style,delete b.style,d=p(q,{fill:"#e6ebf5",style:{color:"#000000",fontWeight:"bold"}},d),v=d.style,delete d.style,n=p(q,{style:{color:"#cccccc"}},n),f=n.style,delete n.style,F(x.element,G?"mouseover":"mouseenter",function(){3!==k&&x.setState(1)}),F(x.element,G?"mouseout":"mouseleave",function(){3!==k&&x.setState(k)}),x.setState=function(a){1!==a&&(x.state=k=a),x.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][a||0]),x.attr([q,b,d,n][a||0]).css([z,H,v,f][a||0])},x.attr(q).css(e({cursor:"default"},z)),x.on("click",function(a){3!==k&&w.call(x,a)})},crispLine:function(a,h){return a[1]===a[4]&&(a[1]=a[4]=Math.round(a[1])-h%2/2),a[2]===a[5]&&(a[2]=a[5]=Math.round(a[2])+h%2/2),a},path:function(a){var h={fill:"none"};return J(a)?h.d=a:q(a)&&e(h,a),this.createElement("path").attr(h)},circle:function(a,h,c){return a=q(a)?a:{x:a,y:h,r:c},(h=this.createElement("circle")).xSetter=h.ySetter=function(a,h,c){c.setAttribute("c"+h,a)},h.attr(a)},arc:function(a,h,c,w,p,b){return q(a)?(h=(w=a).y,c=w.r,a=w.x):w={innerR:w,start:p,end:b},(a=this.symbol("arc",a,h,c,c,w)).r=c,a},rect:function(a,h,c,w,p,b){p=q(a)?a.r:p;var x=this.createElement("rect");return a=q(a)?a:void 0===a?{}:{x:a,y:h,width:Math.max(c,0),height:Math.max(w,0)},void 0!==b&&(a.strokeWidth=b,a=x.crisp(a)),a.fill="none",p&&(a.r=p),x.rSetter=function(a,h,c){m(c,{rx:a,ry:a})},x.attr(a)},setSize:function(a,h,c){var w=this.alignedObjects,p=w.length;for(this.width=a,this.height=h,this.boxWrapper.animate({width:a,height:h},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:L(c,!0)?void 0:0});p--;)w[p].align()},g:function(a){var h=this.createElement("g");return a?h.attr({class:"highcharts-"+a}):h},image:function(a,h,c,w,p){var x={preserveAspectRatio:"none"};return 1<arguments.length&&e(x,{x:h,y:c,width:w,height:p}),(x=this.createElement("image").attr(x)).element.setAttributeNS?x.element.setAttributeNS("http://www.w3.org/1999/xlink","href",a):x.element.setAttribute("hc-svg-href",a),x},symbol:function(a,h,c,w,p,q){var d,v,y,x=this,n=/^url\((.*?)\)$/,g=n.test(a),z=!g&&(this.symbols[a]?a:"circle"),G=z&&this.symbols[z],H=t(h)&&G&&G.call(this.symbols,Math.round(h),Math.round(c),w,p,q);return G?((d=this.path(H)).attr("fill","none"),e(d,{symbolName:z,x:h,y:c,width:w,height:p}),q&&e(d,q)):g&&(v=a.match(n)[1],(d=this.image(v)).imgwidth=L(Q[v]&&Q[v].width,q&&q.width),d.imgheight=L(Q[v]&&Q[v].height,q&&q.height),y=function(){d.attr({width:d.width,height:d.height})},b(["width","height"],function(a){d[a+"Setter"]=function(a,h){var c={},w=this["img"+h],p="width"===h?"translateX":"translateY";this[h]=a,t(w)&&(this.element&&this.element.setAttribute(h,w),this.alignByTranslate||(c[p]=((this[h]||0)-w)/2,this.attr(c)))}}),t(h)&&d.attr({x:h,y:c}),d.isImg=!0,t(d.imgwidth)&&t(d.imgheight)?y():(d.attr({width:0,height:0}),u("img",{onload:function(){var a=f[x.chartIndex];0===this.width&&(r(this,{position:"absolute",top:"-999em"}),k.body.appendChild(this)),Q[v]={width:this.width,height:this.height},d.imgwidth=this.width,d.imgheight=this.height,d.element&&y(),this.parentNode&&this.parentNode.removeChild(this),x.imgCount--,!x.imgCount&&a&&a.onload&&a.onload()},src:v}),this.imgCount++)),d},symbols:{circle:function(a,h,c,w){return this.arc(a+c/2,h+w/2,c/2,w/2,{start:0,end:2*Math.PI,open:!1})},square:function(a,h,c,w){return["M",a,h,"L",a+c,h,a+c,h+w,a,h+w,"Z"]},triangle:function(a,h,c,w){return["M",a+c/2,h,"L",a+c,h+w,a,h+w,"Z"]},"triangle-down":function(a,h,c,w){return["M",a,h,"L",a+c,h,a+c/2,h+w,"Z"]},diamond:function(a,h,c,w){return["M",a+c/2,h,"L",a+c,h+w/2,a+c/2,h+w,a,h+w/2,"Z"]},arc:function(a,h,c,w,p){var q=p.start,b=p.r||c,x=p.r||w||c,e=p.end-.001;c=p.innerR,w=L(p.open,Math.abs(p.end-p.start-2*Math.PI)<.001);var d=Math.cos(q),n=Math.sin(q),g=Math.cos(e);e=Math.sin(e);return b=["M",a+b*d,h+x*n,"A",b,x,0,p=p.end-q-Math.PI<.001?0:1,1,a+b*g,h+x*e],t(c)&&b.push(w?"M":"L",a+c*g,h+c*e,"A",c,c,0,p,0,a+c*d,h+c*n),b.push(w?"":"Z"),b},callout:function(a,h,c,w,p){var d,q=Math.min(p&&p.r||0,c,w),b=q+6,e=p&&p.anchorX;return p=p&&p.anchorY,d=["M",a+q,h,"L",a+c-q,h,"C",a+c,h,a+c,h,a+c,h+q,"L",a+c,h+w-q,"C",a+c,h+w,a+c,h+w,a+c-q,h+w,"L",a+q,h+w,"C",a,h+w,a,h+w,a,h+w-q,"L",a,h+q,"C",a,h,a,h,a+q,h],e&&c<e?h+b<p&&p<h+w-b?d.splice(13,3,"L",a+c,p-6,a+c+6,p,a+c,p+6,a+c,h+w-q):d.splice(13,3,"L",a+c,w/2,e,p,a+c,w/2,a+c,h+w-q):e&&e<0?h+b<p&&p<h+w-b?d.splice(33,3,"L",a,p+6,a-6,p,a,p-6,a,h+q):d.splice(33,3,"L",a,w/2,e,p,a,w/2,a,h+q):p&&w<p&&a+b<e&&e<a+c-b?d.splice(23,3,"L",e+6,h+w,e,h+w+6,e-6,h+w,a+q,h+w):p&&p<0&&a+b<e&&e<a+c-b&&d.splice(3,3,"L",e-6,h,e,h-6,e+6,h,c-q,h),d}},clipRect:function(h,c,w,p){var q=a.uniqueKey(),b=this.createElement("clipPath").attr({id:q}).add(this.defs);return(h=this.rect(h,c,w,p,0).add(b)).id=q,h.clipPath=b,h.count=0,h},text:function(a,h,c,w){var p=!H&&this.forExport,q={};return!w||!this.allowHTML&&this.forExport?(q.x=Math.round(h||0),c&&(q.y=Math.round(c)),(a||0===a)&&(q.text=a),a=this.createElement("text").attr(q),p&&a.css({position:"absolute"}),w||(a.xSetter=function(a,h,c){var p,b,w=c.getElementsByTagName("tspan"),q=c.getAttribute(h);for(b=0;b<w.length;b++)(p=w[b]).getAttribute(h)===q&&p.setAttribute(h,a);c.setAttribute(h,a)}),a):this.html(a,h,c)},fontMetrics:function(a,c){return a=a||c&&c.style&&c.style.fontSize||this.style&&this.style.fontSize,{h:c=(a=/px/.test(a)?h(a):/em/.test(a)?parseFloat(a)*(c?this.fontMetrics(null,c.parentNode).f:16):12)<24?a+3:Math.round(1.2*a),b:Math.round(.8*c),f:a}},rotCorr:function(a,h,c){var w=a;return h&&c&&(w=Math.max(w*Math.cos(h*g),4)),{x:-a/3*Math.sin(h*g),y:w}},label:function(h,c,q,d,n,g,k,z,G){var f,y,r,l,P,m,J,L,u,U,T,Q,R,x=this,H=x.g("button"!==G&&"label"),v=H.text=x.text("",0,0,k).attr({zIndex:1}),I=0,B=3,D=0,O={},N=/^url\((.*?)\)$/.test(d),K=N;G&&H.addClass("highcharts-"+G),K=N,U=function(){return(L||0)%2/2},T=function(){var a=v.element.style,h={};y=(void 0===r||void 0===l||J)&&t(v.textStr)&&v.getBBox(),H.width=(r||y.width||0)+2*B+D,H.height=(l||y.height||0)+2*B,u=B+x.fontMetrics(a&&a.fontSize,v).b,K&&(f||(H.box=f=x.symbols[d]||N?x.symbol(d):x.rect(),f.addClass(("button"===G?"":"highcharts-label-box")+(G?" highcharts-"+G+"-box":"")),f.add(H),a=U(),h.x=a,h.y=(z?-u:0)+a),h.width=Math.round(H.width),h.height=Math.round(H.height),f.attr(e(h,O)),O={})},Q=function(){var h,a=D+B;h=z?0:u,t(r)&&y&&("center"===J||"right"===J)&&(a+={center:.5,right:1}[J]*(r-y.width)),a===v.x&&h===v.y||(v.attr("x",a),void 0!==h&&v.attr("y",h)),v.x=a,v.y=h},R=function(a,h){f?f.attr(a,h):O[a]=h},H.onAdd=function(){v.add(H),H.attr({text:h||0===h?h:"",x:c,y:q}),f&&t(n)&&H.attr({anchorX:n,anchorY:g})},H.widthSetter=function(h){r=a.isNumber(h)?h:null},H.heightSetter=function(a){l=a},H["text-alignSetter"]=function(a){J=a},H.paddingSetter=function(a){t(a)&&a!==B&&(B=H.padding=a,Q())},H.paddingLeftSetter=function(a){t(a)&&a!==D&&(D=a,Q())},H.alignSetter=function(a){(a={left:0,center:.5,right:1}[a])!==I&&(I=a,y&&H.attr({x:P}))},H.textSetter=function(a){void 0!==a&&v.textSetter(a),T(),Q()},H["stroke-widthSetter"]=function(a,h){a&&(K=!0),L=this["stroke-width"]=a,R(h,a)},H.strokeSetter=H.fillSetter=H.rSetter=function(a,h){"r"!==h&&("fill"===h&&a&&(K=!0),H[h]=a),R(h,a)},H.anchorXSetter=function(a,h){n=H.anchorX=a,R(h,Math.round(a)-U()-P)},H.anchorYSetter=function(a,h){g=H.anchorY=a,R(h,a-m)},H.xSetter=function(a){H.x=a,I&&(a-=I*((r||y.width)+2*B)),P=Math.round(a),H.attr("translateX",P)},H.ySetter=function(a){m=H.y=Math.round(a),H.attr("translateY",m)};var V=H.css;return e(H,{css:function(a){if(a){var h={};a=p(a),b(H.textProps,function(c){void 0!==a[c]&&(h[c]=a[c],delete a[c])}),v.css(h)}return V.call(H,a)},getBBox:function(){return{width:y.width+2*B,height:y.height+2*B,x:y.x-B,y:y.y-B}},shadow:function(a){return a&&(T(),f&&f.shadow(a)),H},destroy:function(){w(H.element,"mouseenter"),w(H.element,"mouseleave"),v&&(v=v.destroy()),f&&(f=f.destroy()),C.prototype.destroy.call(H),H=x=T=Q=R=null}})}}),a.Renderer=A}(M),function(a){var C=a.attr,A=a.createElement,F=a.css,E=a.defined,m=a.each,f=a.extend,l=a.isFirefox,r=a.isMS,u=a.isWebKit,t=a.pInt,g=a.SVGRenderer,d=a.win,k=a.wrap;f(a.SVGElement.prototype,{htmlCss:function(a){var b=this.element;return(b=a&&"SPAN"===b.tagName&&a.width)&&(delete a.width,this.textWidth=b,this.updateTransform()),a&&"ellipsis"===a.textOverflow&&(a.whiteSpace="nowrap",a.overflow="hidden"),this.styles=f(this.styles,a),F(this.element,a),this},htmlGetBBox:function(){var a=this.element;return"text"===a.nodeName&&(a.style.position="absolute"),{x:a.offsetLeft,y:a.offsetTop,width:a.offsetWidth,height:a.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var a=this.renderer,e=this.element,d=this.translateX||0,g=this.translateY||0,n=this.x||0,k=this.y||0,f=this.textAlign||"left",c={left:0,center:.5,right:1}[f],G=this.styles;if(F(e,{marginLeft:d,marginTop:g}),this.shadows&&m(this.shadows,function(a){F(a,{marginLeft:d+1,marginTop:g+1})}),this.inverted&&m(e.childNodes,function(c){a.invertChild(c,e)}),"SPAN"===e.tagName){var q=this.rotation,B=t(this.textWidth),r=G&&G.whiteSpace,p=[q,f,e.innerHTML,this.textWidth,this.textAlign].join();p!==this.cTT&&(G=a.fontMetrics(e.style.fontSize).b,E(q)&&this.setSpanRotation(q,c,G),F(e,{width:"",whiteSpace:r||"nowrap"}),e.offsetWidth>B&&/[ \-]/.test(e.textContent||e.innerText)&&F(e,{width:B+"px",display:"block",whiteSpace:r||"normal"}),this.getSpanCorrection(e.offsetWidth,G,c,q,f)),F(e,{left:n+(this.xCorr||0)+"px",top:k+(this.yCorr||0)+"px"}),u&&(G=e.offsetHeight),this.cTT=p}}else this.alignOnAdd=!0},setSpanRotation:function(a,e,g){var b={},n=r?"-ms-transform":u?"-webkit-transform":l?"MozTransform":d.opera?"-o-transform":"";b[n]=b.transform="rotate("+a+"deg)",b[n+(l?"Origin":"-origin")]=b.transformOrigin=100*e+"% "+g+"px",F(this.element,b)},getSpanCorrection:function(a,e,d){this.xCorr=-a*d,this.yCorr=-e}}),f(g.prototype,{html:function(a,e,d){var b=this.createElement("span"),n=b.element,g=b.renderer,v=g.isSVG,c=function(a,c){m(["opacity","visibility"],function(q){k(a,q+"Setter",function(a,p,q,b){a.call(this,p,q,b),c[q]=p})})};return b.textSetter=function(a){a!==n.innerHTML&&delete this.bBox,n.innerHTML=this.textStr=a,b.htmlUpdateTransform()},v&&c(b,b.element.style),b.xSetter=b.ySetter=b.alignSetter=b.rotationSetter=function(a,c){"align"===c&&(c="textAlign"),b[c]=a,b.htmlUpdateTransform()},b.attr({text:a,x:Math.round(e),y:Math.round(d)}).css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize,position:"absolute"}),n.style.whiteSpace="nowrap",b.css=b.htmlCss,v&&(b.add=function(a){var q,e=g.box.parentNode,d=[];if(this.parentGroup=a){if(!(q=a.div)){for(;a;)d.push(a),a=a.parentGroup;m(d.reverse(),function(a){var p,n=C(a.element,"class");n&&(n={className:n}),q=a.div=a.div||A("div",n,{position:"absolute",left:(a.translateX||0)+"px",top:(a.translateY||0)+"px",display:a.display,opacity:a.opacity,pointerEvents:a.styles&&a.styles.pointerEvents},q||e),p=q.style,f(a,{classSetter:function(a){this.element.setAttribute("class",a),q.className=a},on:function(){return d[0].div&&b.on.apply({element:d[0].div},arguments),a},translateXSetter:function(c,h){p.left=c+"px",a[h]=c,a.doTransform=!0},translateYSetter:function(c,h){p.top=c+"px",a[h]=c,a.doTransform=!0}}),c(a,p)})}}else q=e;return q.appendChild(n),b.added=!0,b.alignOnAdd&&b.htmlUpdateTransform(),b}),b}})}(M),function(a){var C,A,F=a.createElement,E=a.css,m=a.defined,f=a.deg2rad,l=a.discardElement,r=a.doc,u=a.each,t=a.erase,g=a.extend;C=a.extendClass;var d=a.isArray,k=a.isNumber,b=a.isObject,e=a.merge;A=a.noop;var v=a.pick,y=a.pInt,n=a.SVGElement,D=a.SVGRenderer,J=a.win;a.svg||((A={docMode8:r&&8===r.documentMode,init:function(a,b){var c=["<",b,' filled="f" stroked="f"'],e=["position: ","absolute",";"],d="div"===b;("shape"===b||d)&&e.push("left:0;top:0;width:1px;height:1px;"),e.push("visibility: ",d?"hidden":"visible"),c.push(' style="',e.join(""),'"/>'),b&&(c=d||"span"===b||"img"===b?c.join(""):a.prepVML(c),this.element=F(c)),this.renderer=a},add:function(a){var c=this.renderer,b=this.element,e=c.box,d=a&&a.inverted;e=a?a.element||a:e;return a&&(this.parentGroup=a),d&&c.invertChild(b,e),e.appendChild(b),this.added=!0,this.alignOnAdd&&!this.deferUpdateTransform&&this.updateTransform(),this.onAdd&&this.onAdd(),this.className&&this.attr("class",this.className),this},updateTransform:n.prototype.htmlUpdateTransform,setSpanRotation:function(){var a=this.rotation,b=Math.cos(a*f),q=Math.sin(a*f);E(this.element,{filter:a?["progid:DXImageTransform.Microsoft.Matrix(M11=",b,", M12=",-q,", M21=",q,", M22=",b,", sizingMethod='auto expand')"].join(""):"none"})},getSpanCorrection:function(a,b,q,e,d){var k,c=e?Math.cos(e*f):1,n=e?Math.sin(e*f):0,g=v(this.elemHeight,this.element.offsetHeight);this.xCorr=c<0&&-a,this.yCorr=n<0&&-g,k=c*n<0,this.xCorr+=n*b*(k?1-q:q),this.yCorr-=c*b*(e?k?q:1-q:1),d&&"left"!==d&&(this.xCorr-=a*q*(c<0?-1:1),e&&(this.yCorr-=g*q*(n<0?-1:1)),E(this.element,{textAlign:d}))},pathToVML:function(a){for(var c=a.length,b=[];c--;)k(a[c])?b[c]=Math.round(10*a[c])-5:"Z"===a[c]?b[c]="x":(b[c]=a[c],!a.isArc||"wa"!==a[c]&&"at"!==a[c]||(b[c+5]===b[c+7]&&(b[c+7]+=a[c+7]>a[c+5]?1:-1),b[c+6]===b[c+8]&&(b[c+8]+=a[c+8]>a[c+6]?1:-1)));return b.join(" ")||"x"},clip:function(a){var b,c=this;return a=a?(b=a.members,t(b,c),b.push(c),c.destroyClip=function(){t(b,c)},a.getCSS(c)):(c.destroyClip&&c.destroyClip(),{clip:c.docMode8?"inherit":"rect(auto)"}),c.css(a)},css:n.prototype.htmlCss,safeRemoveChild:function(a){a.parentNode&&l(a)},destroy:function(){return this.destroyClip&&this.destroyClip(),n.prototype.destroy.apply(this)},on:function(a,b){return this.element["on"+a]=function(){var a=J.event;a.target=a.srcElement,b(a)},this},cutOffPath:function(a,b){var c;return 9!==(c=(a=a.split(/[ ,]/)).length)&&11!==c||(a[c-4]=a[c-2]=y(a[c-2])-10*b),a.join(" ")},shadow:function(a,b,e){var q,n,h,k,H,f,D,c=[],p=this.element,d=this.renderer,g=p.style,w=p.path;if(w&&"string"!=typeof w.value&&(w="x"),H=w,a){for(f=v(a.width,3),D=(a.opacity||.15)/f,q=1;q<=3;q++)k=2*f+1-2*q,e&&(H=this.cutOffPath(w.value,k+.5)),h=['<shape isShadow="true" strokeweight="',k,'" filled="false" path="',H,'" coordsize="10 10" style="',p.style.cssText,'" />'],n=F(d.prepVML(h),null,{left:y(g.left)+v(a.offsetX,1),top:y(g.top)+v(a.offsetY,1)}),e&&(n.cutOff=k+1),h=['<stroke color="',a.color||"#000000",'" opacity="',D*q,'"/>'],F(d.prepVML(h),null,null,n),b?b.element.appendChild(n):p.parentNode.insertBefore(n,p),c.push(n);this.shadows=c}return this},updateShadows:A,setAttr:function(a,b){this.docMode8?this.element[a]=b:this.element.setAttribute(a,b)},classSetter:function(a){(this.added?this.element:this).className=a},dashstyleSetter:function(a,b,e){(e.getElementsByTagName("stroke")[0]||F(this.renderer.prepVML(["<stroke/>"]),null,null,e))[b]=a||"solid",this[b]=a},dSetter:function(a,b,e){var c=this.shadows;if(a=a||[],this.d=a.join&&a.join(" "),e.path=a=this.pathToVML(a),c)for(e=c.length;e--;)c[e].path=c[e].cutOff?this.cutOffPath(a,c[e].cutOff):a;this.setAttr(b,a)},fillSetter:function(a,b,e){var c=e.nodeName;"SPAN"===c?e.style.color=a:"IMG"!==c&&(e.filled="none"!==a,this.setAttr("fillcolor",this.renderer.color(a,e,b,this)))},"fill-opacitySetter":function(a,b,e){F(this.renderer.prepVML(["<",b.split("-")[0],' opacity="',a,'"/>']),null,null,e)},opacitySetter:A,rotationSetter:function(a,b,e){e=e.style,this[b]=e[b]=a,e.left=-Math.round(Math.sin(a*f)+1)+"px",e.top=Math.round(Math.cos(a*f))+"px"},strokeSetter:function(a,b,e){this.setAttr("strokecolor",this.renderer.color(a,e,b,this))},"stroke-widthSetter":function(a,b,e){e.stroked=!!a,this[b]=a,k(a)&&(a+="px"),this.setAttr("strokeweight",a)},titleSetter:function(a,b){this.setAttr(b,a)},visibilitySetter:function(a,b,e){"inherit"===a&&(a="visible"),this.shadows&&u(this.shadows,function(c){c.style[b]=a}),"DIV"===e.nodeName&&(a="hidden"===a?"-999em":0,this.docMode8||(e.style[b]=a?"visible":"hidden"),b="top"),e.style[b]=a},xSetter:function(a,b,e){this[b]=a,"x"===b?b="left":"y"===b&&(b="top"),this.updateClipping?(this[b]=a,this.updateClipping()):e.style[b]=a},zIndexSetter:function(a,b,e){e.style[b]=a}})["stroke-opacitySetter"]=A["fill-opacitySetter"],a.VMLElement=A=C(n,A),A.prototype.ySetter=A.prototype.widthSetter=A.prototype.heightSetter=A.prototype.xSetter,A={Element:A,isIE8:-1<J.navigator.userAgent.indexOf("MSIE 8.0"),init:function(a,b,e){var c,d;if(this.alignedObjects=[],d=(c=this.createElement("div").css({position:"relative"})).element,a.appendChild(c.element),this.isVML=!0,this.box=d,this.boxWrapper=c,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.setSize(b,e,!1),!r.namespaces.hcv){r.namespaces.add("hcv","urn:schemas-microsoft-com:vml");try{r.createStyleSheet().cssText="hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } "}catch(p){r.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(a,e,d,n){var c=this.createElement(),p=b(a);return g(c,{members:[],count:0,left:(p?a.x:a)+1,top:(p?a.y:e)+1,width:(p?a.width:d)-1,height:(p?a.height:n)-1,getCSS:function(a){var b=(c=a.element).nodeName,h=a.inverted,w=this.top-("shape"===b?c.offsetTop:0),p=this.left,c=p+this.width,e=w+this.height;w={clip:"rect("+Math.round(h?p:w)+"px,"+Math.round(h?e:c)+"px,"+Math.round(h?c:e)+"px,"+Math.round(h?w:p)+"px)"};return!h&&a.docMode8&&"DIV"===b&&g(w,{width:c+"px",height:e+"px"}),w},updateClipping:function(){u(c.members,function(a){a.element&&a.css(c.getCSS(a))})}})},color:function(c,b,e,d){var p,g,k,q=this,n=/^rgba/,h="none";if(c&&c.linearGradient?k="gradient":c&&c.radialGradient&&(k="pattern"),k){var w,v,f,D,y,x,r,H=c.linearGradient||c.radialGradient,B="";c=c.stops;var l,G=[],m=function(){g=['<fill colors="'+G.join(",")+'" opacity="',y,'" o:opacity2="',D,'" type="',k,'" ',B,'focus="100%" method="any" />'],F(q.prepVML(g),null,null,b)};if(f=c[0],l=c[c.length-1],0<f[0]&&c.unshift([0,f[1]]),l[0]<1&&c.push([1,l[1]]),u(c,function(h,c){v=n.test(h[1])?(p=a.color(h[1]),w=p.get("rgb"),p.get("a")):(w=h[1],1),G.push(100*h[0]+"% "+w),c?(y=v,x=w):(D=v,r=w)}),"fill"===e)if("gradient"===k)e=H.x1||H[0]||0,c=H.y1||H[1]||0,f=H.x2||H[2]||0,H=H.y2||H[3]||0,B='angle="'+(90-180*Math.atan((H-c)/(f-e))/Math.PI)+'"',m();else{var M,t=2*(h=H.r),J=2*h,A=H.cx,C=H.cy,E=b.radialReference;h=function(){E&&(M=d.getBBox(),A+=(E[0]-M.x)/M.width-.5,C+=(E[1]-M.y)/M.height-.5,t*=E[2]/M.width,J*=E[2]/M.height),B='src="'+a.getOptions().global.VMLRadialGradientURL+'" size="'+t+","+J+'" origin="0.5,0.5" position="'+A+","+C+'" color2="'+r+'" ',m()};d.added?h():d.onAdd=h,h=x}else h=w}else h=n.test(c)&&"IMG"!==b.tagName?(p=a.color(c),d[e+"-opacitySetter"](p.get("a"),e,b),p.get("rgb")):((h=b.getElementsByTagName(e)).length&&(h[0].opacity=1,h[0].type="solid"),c);return h},prepVML:function(a){var c=this.isIE8;return a=a.join(""),a=c?-1===(a=a.replace("/>",' xmlns="urn:schemas-microsoft-com:vml" />')).indexOf('style="')?a.replace("/>",' style="display:inline-block;behavior:url(#default#VML);" />'):a.replace('style="','style="display:inline-block;behavior:url(#default#VML);'):a.replace("<","<hcv:")},text:D.prototype.html,path:function(a){var c={coordsize:"10 10"};return d(a)?c.d=a:b(a)&&g(c,a),this.createElement("shape").attr(c)},circle:function(a,e,d){var c=this.symbol("circle");return b(a)&&(d=a.r,e=a.y,a=a.x),c.isCircle=!0,c.r=d,c.attr({x:a,y:e})},g:function(a){var c;return a&&(c={className:"highcharts-"+a,class:"highcharts-"+a}),this.createElement("div").attr(c)},image:function(a,b,e,d,n){var c=this.createElement("img").attr({src:a});return 1<arguments.length&&c.attr({x:b,y:e,width:d,height:n}),c},createElement:function(a){return"rect"===a?this.symbol(a):D.prototype.createElement.call(this,a)},invertChild:function(a,b){var c=this;b=b.style;var e="IMG"===a.tagName&&a.style;E(a,{flip:"x",left:y(b.width)-(e?y(e.top):1),top:y(b.height)-(e?y(e.left):1),rotation:-90}),u(a.childNodes,function(b){c.invertChild(b,a)})},symbols:{arc:function(a,b,e,d,n){var c=n.start,q=n.end,g=n.r||e||d;e=n.innerR,d=Math.cos(c);var k=Math.sin(c),h=Math.cos(q),w=Math.sin(q);return 0==q-c?["x"]:(c=["wa",a-g,b-g,a+g,b+g,a+g*d,b+g*k,a+g*h,b+g*w],n.open&&!e&&c.push("e","M",a,b),c.push("at",a-e,b-e,a+e,b+e,a+e*h,b+e*w,a+e*d,b+e*k,"x","e"),c.isArc=!0,c)},circle:function(a,b,e,d,n){return n&&m(n.r)&&(e=d=2*n.r),n&&n.isCircle&&(a-=e/2,b-=d/2),["wa",a,b,a+e,b+d,a+e,b+d/2,a+e,b+d/2,"e"]},rect:function(a,b,e,d,n){return D.prototype.symbols[m(n)&&n.r?"callout":"square"].call(0,a,b,e,d,n)}}},a.VMLRenderer=C=function(){this.init.apply(this,arguments)},C.prototype=e(D.prototype,A),a.Renderer=C),D.prototype.measureSpanWidth=function(a,b){var c=r.createElement("span");return a=r.createTextNode(a),c.appendChild(a),E(c,b),this.box.appendChild(c),b=c.offsetWidth,l(c),b}}(M),function(a){function A(){var t,f=a.defaultOptions.global,g=f.useUTC,d=g?"getUTC":"get",k=g?"setUTC":"set";a.Date=t=f.Date||r.Date,t.hcTimezoneOffset=g&&f.timezoneOffset,t.hcGetTimezoneOffset=function(){var f=a.defaultOptions.global,l=r.moment;if(f.timezone){if(l)return function(a){return-l.tz(a,f.timezone).utcOffset()};a.error(25)}return f.useUTC&&f.getTimezoneOffset}(),t.hcMakeTime=function(a,e,d,k,n,f){var b;return g?(b=t.UTC.apply(0,arguments),b+=m(b)):b=new t(a,e,l(d,1),l(k,0),l(n,0),l(f,0)).getTime(),b},E("Minutes Hours Day Date Month FullYear".split(" "),function(a){t["hcGet"+a]=d+a}),E("Milliseconds Seconds Minutes Hours Date Month FullYear".split(" "),function(a){t["hcSet"+a]=k+a})}var F=a.color,E=a.each,m=a.getTZOffset,f=a.merge,l=a.pick,r=a.win;a.defaultOptions={colors:"#7cb5ec #434348 #90ed7d #f7a35c #8085e9 #f15c80 #e4d354 #2b908f #f45b5b #91e8e1".split(" "),symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:"January February March April May June July August September October November December".split(" "),shortMonths:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),weekdays:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),decimalPoint:".",numericSymbols:"kMGTPE".split(""),resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{useUTC:!0,VMLRadialGradientURL:"http://code.highcharts.com/5.0.14/gfx/vml-radial-gradient.png"},chart:{borderRadius:0,defaultSeriesType:"line",ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{zIndex:20},position:{align:"right",x:-10,y:10}},width:null,height:null,borderColor:"#335cad",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"},title:{text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{text:"",align:"center",widthAdjust:-44},plotOptions:{},labels:{style:{position:"absolute",color:"#333333"}},legend:{enabled:!0,align:"center",layout:"horizontal",labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{activeColor:"#003399",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",fontSize:"12px",fontWeight:"bold",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#cccccc"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:a.svg,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %b %e, %H:%M:%S.%L",second:"%A, %b %e, %H:%M:%S",minute:"%A, %b %e, %H:%M",hour:"%A, %b %e, %H:%M",day:"%A, %b %e, %Y",week:"Week from %A, %b %e, %Y",month:"%B %Y",year:"%Y"},footerFormat:"",padding:8,snap:a.isTouchDevice?25:10,backgroundColor:F("#f7f7f7").setOpacity(.85).get(),borderWidth:1,headerFormat:'<span style="font-size: 10px">{point.key}</span><br/>',pointFormat:'<span style="color:{point.color}">●</span> {series.name}: <b>{point.y}</b><br/>',shadow:!0,style:{color:"#333333",cursor:"default",fontSize:"12px",pointerEvents:"none",whiteSpace:"nowrap"}},credits:{enabled:!0,href:"http://www.highcharts.com",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"9px"},text:"Highcharts.com"}},a.setOptions=function(r){return a.defaultOptions=f(!0,a.defaultOptions,r),A(),a.defaultOptions},a.getOptions=function(){return a.defaultOptions},a.defaultPlotOptions=a.defaultOptions.plotOptions,A()}(M),function(a){var C=a.correctFloat,A=a.defined,F=a.destroyObjectProperties,E=a.isNumber,m=a.merge,f=a.pick,l=a.deg2rad;a.Tick=function(a,f,l,g){this.axis=a,this.pos=f,this.type=l||"",this.isNewLabel=this.isNew=!0,l||g||this.addLabel()},a.Tick.prototype={addLabel:function(){var n,a=this.axis,l=a.options,t=a.chart,g=a.categories,d=a.names,k=this.pos,b=l.labels,v=k===(e=a.tickPositions)[0],y=k===e[e.length-1],e=(d=g?f(g[k],d[k],k):k,g=this.label,e.info);a.isDatetimeAxis&&e&&(n=l.dateTimeLabelFormats[e.higherRanks[k]||e.unitName]),this.isFirst=v,this.isLast=y,l=a.labelFormatter.call({axis:a,chart:t,isFirst:v,isLast:y,dateTimeLabelFormat:n,value:a.isLog?C(a.lin2log(d)):d,pos:k}),A(g)?g&&g.attr({text:l}):(this.labelLength=(this.label=g=A(l)&&b.enabled?t.renderer.text(l,0,0,b.useHTML).css(m(b.style)).add(a.labelGroup):null)&&g.getBBox().width,this.rotation=0)},getLabelSize:function(){return this.label?this.label.getBBox()[this.axis.horiz?"height":"width"]:0},handleOverflow:function(a){var c,r=this.axis,m=a.x,g=r.chart.chartWidth,d=r.chart.spacing,k=f(r.labelLeft,Math.min(r.pos,d[3])),b=(d=f(r.labelRight,Math.max(r.pos+r.len,g-d[1])),this.label),e=this.rotation,v={left:0,center:.5,right:1}[r.labelAlign],y=b.getBBox().width,n=r.getSlotWidth(),D=n,J=1,G={};e?e<0&&m-v*y<k?c=Math.round(m/Math.cos(e*l)-k):0<e&&d<m+v*y&&(c=Math.round((g-m)/Math.cos(e*l))):(g=m+(1-v)*y,m-v*y<k?D=a.x+D*(1-v)-k:d<g&&(D=d-a.x+D*v,J=-1),(D=Math.min(n,D))<n&&"center"===r.labelAlign&&(a.x+=J*(n-D-v*(n-Math.min(y,D)))),(D<y||r.autoRotation&&(b.styles||{}).width)&&(c=D)),c&&(G.width=c,(r.options.labels.style||{}).textOverflow||(G.textOverflow="ellipsis"),b.css(G))},getPosition:function(a,f,l,g){var d=this.axis,k=d.chart,b=g&&k.oldChartHeight||k.chartHeight;return{x:a?d.translate(f+l,null,null,g)+d.transB:d.left+d.offset+(d.opposite?(g&&k.oldChartWidth||k.chartWidth)-d.right-d.left:0),y:a?b-d.bottom+d.offset-(d.opposite?d.height:0):b-d.translate(f+l,null,null,g)-d.transB}},getLabelPosition:function(a,f,m,g,d,k,b,e){var v=this.axis,y=v.transA,n=v.reversed,D=v.staggerLines,r=v.tickRotCorr||{x:0,y:0},c=d.y;return A(c)||(c=0===v.side?m.rotation?-8:-m.getBBox().height:2===v.side?r.y+8:Math.cos(m.rotation*l)*(r.y-m.getBBox(!1,0).height/2)),a=a+d.x+r.x-(k&&g?k*y*(n?-1:1):0),f=f+c-(k&&!g?k*y*(n?1:-1):0),D&&(m=b/(e||1)%D,v.opposite&&(m=D-m-1),f+=v.labelOffset/D*m),{x:a,y:Math.round(f)}},getMarkPath:function(a,f,l,g,d,k){return k.crispLine(["M",a,f,"L",a+(d?0:-l),f+(d?l:0)],g)},renderGridLine:function(a,f,l){var g=this.axis,d=g.options,k=this.gridLine,b={},e=this.pos,v=this.type,y=g.tickmarkOffset,n=g.chart.renderer,D=v?v+"Grid":"grid",r=d[D+"LineWidth"],c=d[D+"LineColor"];d=d[D+"LineDashStyle"];k||(b.stroke=c,b["stroke-width"]=r,d&&(b.dashstyle=d),v||(b.zIndex=1),a&&(b.opacity=0),this.gridLine=k=n.path().attr(b).addClass("highcharts-"+(v?v+"-":"")+"grid-line").add(g.gridGroup)),!a&&k&&(a=g.getPlotLinePath(e+y,k.strokeWidth()*l,a,!0))&&k[this.isNew?"attr":"animate"]({d:a,opacity:f})},renderMark:function(a,l,m){var g=this.axis,d=g.options,k=g.chart.renderer,b=this.type,e=b?b+"Tick":"tick",v=g.tickSize(e),y=this.mark,n=!y,D=a.x;a=a.y;var r=f(d[e+"Width"],!b&&g.isXAxis?1:0);d=d[e+"Color"];v&&(g.opposite&&(v[0]=-v[0]),n&&(this.mark=y=k.path().addClass("highcharts-"+(b?b+"-":"")+"tick").add(g.axisGroup),y.attr({stroke:d,"stroke-width":r})),y[n?"attr":"animate"]({d:this.getMarkPath(D,a,v[0],y.strokeWidth()*m,g.horiz,k),opacity:l}))},renderLabel:function(a,l,m,g){var d=this.axis,k=d.horiz,b=d.options,e=this.label,v=b.labels,y=v.step,n=d.tickmarkOffset,D=!0,r=a.x;a=a.y,e&&E(r)&&(e.xy=a=this.getLabelPosition(r,a,e,k,v,n,g,y),this.isFirst&&!this.isLast&&!f(b.showFirstLabel,1)||this.isLast&&!this.isFirst&&!f(b.showLastLabel,1)?D=!1:!k||d.isRadial||v.step||v.rotation||l||0===m||this.handleOverflow(a),y&&g%y&&(D=!1),D&&E(a.y)?(a.opacity=m,e[this.isNewLabel?"attr":"animate"](a),this.isNewLabel=!1):(e.attr("y",-9999),this.isNewLabel=!0),this.isNew=!1)},render:function(a,l,m){var d=(g=this.axis).horiz,k=this.getPosition(d,this.pos,g.tickmarkOffset,l),b=k.x,e=k.y,g=d&&b===g.pos+g.len||!d&&e===g.pos?-1:1;m=f(m,1),this.isActive=!0,this.renderGridLine(l,m,g),this.renderMark(k,m,g),this.renderLabel(k,l,m,a)},destroy:function(){F(this,this.axis)}}}(M);var S=function(a){var C=a.addEvent,A=a.animObject,F=a.arrayMax,E=a.arrayMin,m=a.color,f=a.correctFloat,l=a.defaultOptions,r=a.defined,u=a.deg2rad,t=a.destroyObjectProperties,g=a.each,d=a.extend,k=a.fireEvent,b=a.format,e=a.getMagnitude,v=a.grep,y=a.inArray,n=a.isArray,D=a.isNumber,J=a.isString,c=a.merge,G=a.normalizeTickInterval,q=a.objectEach,B=a.pick,K=a.removeEvent,p=a.splat,z=a.syncTimeout,I=a.Tick,L=function(){this.init.apply(this,arguments)};return a.extend(L.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,labels:{enabled:!0,style:{color:"#666666",cursor:"default",fontSize:"11px"},x:0},minPadding:.01,maxPadding:.01,minorTickLength:2,minorTickPosition:"outside",startOfWeek:1,startOnTick:!1,tickLength:10,tickmarkPlacement:"between",tickPixelInterval:100,tickPosition:"outside",title:{align:"middle",style:{color:"#666666"}},type:"linear",minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#ccd6eb",lineWidth:1,gridLineColor:"#e6e6e6",tickColor:"#ccd6eb"},defaultYAxisOptions:{endOnTick:!0,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8},maxPadding:.05,minPadding:.05,startOnTick:!0,title:{rotation:270,text:"Values"},stackLabels:{allowOverlap:!1,enabled:!1,formatter:function(){return a.numberFormat(this.total,-1)},style:{fontSize:"11px",fontWeight:"bold",color:"#000000",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},defaultLeftAxisOptions:{labels:{x:-15},title:{rotation:270}},defaultRightAxisOptions:{labels:{x:15},title:{rotation:90}},defaultBottomAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},defaultTopAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},init:function(a,c){var h=c.isX,b=this;b.chart=a,b.horiz=a.inverted&&!b.isZAxis?!h:h,b.isXAxis=h,b.coll=b.coll||(h?"xAxis":"yAxis"),b.opposite=c.opposite,b.side=c.side||(b.horiz?b.opposite?0:2:b.opposite?1:3),b.setOptions(c);var w=this.options,e=w.type;b.labelFormatter=w.labels.formatter||b.defaultLabelFormatter,b.userOptions=c,b.minPixelPadding=0,b.reversed=w.reversed,b.visible=!1!==w.visible,b.zoomEnabled=!1!==w.zoomEnabled,b.hasNames="category"===e||!0===w.categories,b.categories=w.categories||b.hasNames,b.names=b.names||[],b.plotLinesAndBandsGroups={},b.isLog="logarithmic"===e,b.isDatetimeAxis="datetime"===e,b.positiveValuesOnly=b.isLog&&!b.allowNegativeLog,b.isLinked=r(w.linkedTo),b.ticks={},b.labelEdge=[],b.minorTicks={},b.plotLinesAndBands=[],b.alternateBands={},b.len=0,b.minRange=b.userMinRange=w.minRange||w.maxZoom,b.range=w.range,b.offset=w.offset||0,b.stacks={},b.oldStacks={},b.stacksTouched=0,b.max=null,b.min=null,b.crosshair=B(w.crosshair,p(a.options.tooltip.crosshairs)[h?0:1],!1),c=b.options.events,-1===y(b,a.axes)&&(h?a.axes.splice(a.xAxis.length,0,b):a.axes.push(b),a[b.coll].push(b)),b.series=b.series||[],a.inverted&&!b.isZAxis&&h&&void 0===b.reversed&&(b.reversed=!0),q(c,function(a,h){C(b,h,a)}),b.lin2log=w.linearToLogConverter||b.lin2log,b.isLog&&(b.val2lin=b.log2lin,b.lin2val=b.lin2log)},setOptions:function(a){this.options=c(this.defaultOptions,"yAxis"===this.coll&&this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],c(l[this.coll],a))},defaultLabelFormatter:function(){var x,h=this.axis,c=this.value,e=h.categories,p=this.dateTimeLabelFormat,n=(d=l.lang).numericSymbols,d=d.numericSymbolMagnitude||1e3,q=n&&n.length,g=h.options.labels.format;h=h.isLog?Math.abs(c):h.tickInterval;if(g)x=b(g,this);else if(e)x=c;else if(p)x=a.dateFormat(p,c);else if(q&&1e3<=h)for(;q--&&void 0===x;)(e=Math.pow(d,q+1))<=h&&0==10*c%e&&null!==n[q]&&0!==c&&(x=a.numberFormat(c/e,-1)+n[q]);return void 0===x&&(x=1e4<=Math.abs(c)?a.numberFormat(c,-1):a.numberFormat(c,-1,void 0,"")),x},getSeriesExtremes:function(){var a=this,b=a.chart;a.hasVisibleSeries=!1,a.dataMin=a.dataMax=a.threshold=null,a.softThreshold=!a.isXAxis,a.buildStacks&&a.buildStacks(),g(a.series,function(h){if(h.visible||!b.options.chart.ignoreHiddenSeries){var e,c=h.options,w=c.threshold;a.hasVisibleSeries=!0,a.positiveValuesOnly&&w<=0&&(w=null),a.isXAxis?(c=h.xData).length&&(h=E(c),D(h)||h instanceof Date||(c=v(c,function(a){return D(a)}),h=E(c)),a.dataMin=Math.min(B(a.dataMin,c[0]),h),a.dataMax=Math.max(B(a.dataMax,c[0]),F(c))):(h.getExtremes(),e=h.dataMax,h=h.dataMin,r(h)&&r(e)&&(a.dataMin=Math.min(B(a.dataMin,h),h),a.dataMax=Math.max(B(a.dataMax,e),e)),r(w)&&(a.threshold=w),(!c.softThreshold||a.positiveValuesOnly)&&(a.softThreshold=!1))}})},translate:function(a,b,c,e,p,d){var h=this.linkedParent||this,w=1,n=0,q=e?h.oldTransA:h.transA;e=e?h.oldMin:h.min;var g=h.minPixelPadding;return p=(h.isOrdinal||h.isBroken||h.isLog&&p)&&h.lin2val,q||(q=h.transA),c&&(w*=-1,n=h.len),h.reversed&&(n-=(w*=-1)*(h.sector||h.len)),b?(a=(a*w+n-g)/q+e,p&&(a=h.lin2val(a))):(p&&(a=h.val2lin(a)),a=w*(a-e)*q+n+w*g+(D(d)?q*d:0)),a},toPixels:function(a,b){return this.translate(a,!1,!this.horiz,null,!0)+(b?0:this.pos)},toValue:function(a,b){return this.translate(a-(b?0:this.pos),!0,!this.horiz,null,!0)},getPlotLinePath:function(a,b,c,e,p){var n,q,f,h=this.chart,w=this.left,d=this.top,g=c&&h.oldChartHeight||h.chartHeight,k=c&&h.oldChartWidth||h.chartWidth;n=this.transB;var v=function(a,h,b){return(a<h||b<a)&&(e?a=Math.min(Math.max(h,a),b):f=!0),a};return p=B(p,this.translate(a,null,null,c)),a=c=Math.round(p+n),n=q=Math.round(g-p-n),D(p)?this.horiz?(n=d,q=g-this.bottom,a=c=v(a,w,w+this.width)):(a=w,c=k-this.right,n=q=v(n,d,d+this.height)):f=!0,f&&!e?null:h.renderer.crispLine(["M",a,n,"L",c,q],b||1)},getLinearTickPositions:function(a,b,c){var h,w=f(Math.floor(b/a)*a);c=f(Math.ceil(c/a)*a);var e=[];if(this.single)return[b];for(b=w;b<=c&&(e.push(b),(b=f(b+a))!==h);)h=b;return e},getMinorTickPositions:function(){var a=this,b=a.options,c=a.tickPositions,e=a.minorTickInterval,p=[],d=a.pointRangePadding||0,n=a.min-d,q=(d=a.max+d)-n;if(q&&q/e<a.len/3)if(a.isLog)g(this.paddedTicks,function(h,b,c){b&&p.push.apply(p,a.getLogTickPositions(e,c[b-1],c[b],!0))});else if(a.isDatetimeAxis&&"auto"===b.minorTickInterval)p=p.concat(a.getTimeTicks(a.normalizeTimeTickInterval(e),n,d,b.startOfWeek));else for(b=n+(c[0]-n)%e;b<=d&&b!==p[0];b+=e)p.push(b);return 0!==p.length&&a.trimTicks(p),p},adjustForMinRange:function(){var e,p,d,n,q,k,v,a=this.options,b=this.min,c=this.max;this.isXAxis&&void 0===this.minRange&&!this.isLog&&(r(a.min)||r(a.max)?this.minRange=null:(g(this.series,function(a){for(k=a.xData,n=a.xIncrement?1:k.length-1;0<n;n--)q=k[n]-k[n-1],(void 0===d||q<d)&&(d=q)}),this.minRange=Math.min(5*d,this.dataMax-this.dataMin))),c-b<this.minRange&&(p=this.dataMax-this.dataMin>=this.minRange,e=[b-(e=((v=this.minRange)-c+b)/2),B(a.min,b-e)],p&&(e[2]=this.isLog?this.log2lin(this.dataMin):this.dataMin),c=[(b=F(e))+v,B(a.max,b+v)],p&&(c[2]=this.isLog?this.log2lin(this.dataMax):this.dataMax),(c=E(c))-b<v&&(e[0]=c-v,e[1]=B(a.min,c-v),b=F(e))),this.min=b,this.max=c},getClosest:function(){var a;return this.categories?a=1:g(this.series,function(h){var b=h.closestPointRange,c=h.visible||!h.chart.options.chart.ignoreHiddenSeries;!h.noSharedTooltip&&r(b)&&c&&(a=r(a)?Math.min(a,b):b)}),a},nameToX:function(a){var e,h=n(this.categories),b=h?this.categories:this.names,c=a.options.x;return a.series.requireSorting=!1,r(c)||(c=!1===this.options.uniqueNames?a.series.autoIncrement():y(a.name,b)),-1===c?h||(e=b.length):e=c,void 0!==e&&(this.names[e]=a.name),e},updateNames:function(){var a=this;0<this.names.length&&(this.names.length=0,this.minRange=this.userMinRange,g(this.series||[],function(h){h.xIncrement=null,h.points&&!h.isDirtyData||(h.processData(),h.generatePoints()),g(h.points,function(b,c){var e;b.options&&(void 0!==(e=a.nameToX(b))&&e!==b.x&&(b.x=e,h.xData[c]=e))})}))},setAxisTranslation:function(a){var e,h=this,b=h.max-h.min,c=h.axisPointRange||0,p=0,d=0,n=h.linkedParent,q=!!h.categories,k=h.transA,f=h.isXAxis;(f||q||c)&&(e=h.getClosest(),n?(p=n.minPointOffset,d=n.pointRangePadding):g(h.series,function(a){var b=q?1:f?B(a.options.pointRange,e,0):h.axisPointRange||0;a=a.options.pointPlacement,c=Math.max(c,b),h.single||(p=Math.max(p,J(a)?0:b/2),d=Math.max(d,"on"===a?0:b))}),n=h.ordinalSlope&&e?h.ordinalSlope/e:1,h.minPointOffset=p*=n,h.pointRangePadding=d*=n,h.pointRange=Math.min(c,b),f&&(h.closestPointRange=e)),a&&(h.oldTransA=k),h.translationSlope=h.transA=k=h.options.staticScale||h.len/(b+d||1),h.transB=h.horiz?h.left:h.bottom,h.minPixelPadding=k*p},minFromRange:function(){return this.max-this.range},setTickInterval:function(h){var L,u,K,A,b=this,c=b.chart,p=b.options,d=b.isLog,n=b.log2lin,q=b.isDatetimeAxis,x=b.isXAxis,v=b.isLinked,z=p.maxPadding,y=p.minPadding,l=p.tickInterval,I=p.tickPixelInterval,m=b.categories,J=b.threshold,t=b.softThreshold;q||m||v||this.getTickAmount(),K=B(b.userMin,p.min),A=B(b.userMax,p.max),v?(b.linkedParent=c[b.coll][p.linkedTo],c=b.linkedParent.getExtremes(),b.min=B(c.min,c.dataMin),b.max=B(c.max,c.dataMax),p.type!==b.linkedParent.options.type&&a.error(11,1)):(!t&&r(J)&&(b.dataMin>=J?(L=J,y=0):b.dataMax<=J&&(u=J,z=0)),b.min=B(K,L,b.dataMin),b.max=B(A,u,b.dataMax)),d&&(b.positiveValuesOnly&&!h&&Math.min(b.min,B(b.dataMin,b.min))<=0&&a.error(10,1),b.min=f(n(b.min),15),b.max=f(n(b.max),15)),b.range&&r(b.max)&&(b.userMin=b.min=K=Math.max(b.dataMin,b.minFromRange()),b.userMax=A=b.max,b.range=null),k(b,"foundExtremes"),b.beforePadding&&b.beforePadding(),b.adjustForMinRange(),!(m||b.axisPointRange||b.usePercentage||v)&&r(b.min)&&r(b.max)&&(n=b.max-b.min)&&(!r(K)&&y&&(b.min-=n*y),!r(A)&&z&&(b.max+=n*z)),D(p.softMin)&&(b.min=Math.min(b.min,p.softMin)),D(p.softMax)&&(b.max=Math.max(b.max,p.softMax)),D(p.floor)&&(b.min=Math.max(b.min,p.floor)),D(p.ceiling)&&(b.max=Math.min(b.max,p.ceiling)),t&&r(b.dataMin)&&(J=J||0,!r(K)&&b.min<J&&b.dataMin>=J?b.min=J:!r(A)&&b.max>J&&b.dataMax<=J&&(b.max=J)),b.tickInterval=b.min===b.max||void 0===b.min||void 0===b.max?1:v&&!l&&I===b.linkedParent.options.tickPixelInterval?l=b.linkedParent.tickInterval:B(l,this.tickAmount?(b.max-b.min)/Math.max(this.tickAmount-1,1):void 0,m?1:(b.max-b.min)*I/Math.max(b.len,I)),x&&!h&&g(b.series,function(a){a.processData(b.min!==b.oldMin||b.max!==b.oldMax)}),b.setAxisTranslation(!0),b.beforeSetTickPositions&&b.beforeSetTickPositions(),b.postProcessTickInterval&&(b.tickInterval=b.postProcessTickInterval(b.tickInterval)),b.pointRange&&!l&&(b.tickInterval=Math.max(b.pointRange,b.tickInterval)),h=B(p.minTickInterval,b.isDatetimeAxis&&b.closestPointRange),!l&&b.tickInterval<h&&(b.tickInterval=h),q||d||l||(b.tickInterval=G(b.tickInterval,null,e(b.tickInterval),B(p.allowDecimals,!(.5<b.tickInterval&&b.tickInterval<5&&1e3<b.max&&b.max<9999)),!!this.tickAmount)),this.tickAmount||(b.tickInterval=b.unsquish()),this.setTickPositions()},setTickPositions:function(){var b,a=this.options,c=a.tickPositions,e=a.tickPositioner,p=a.startOnTick,d=a.endOnTick;this.tickmarkOffset=this.categories&&"between"===a.tickmarkPlacement&&1===this.tickInterval?.5:0,this.minorTickInterval="auto"===a.minorTickInterval&&this.tickInterval?this.tickInterval/5:a.minorTickInterval,this.single=this.min===this.max&&r(this.min)&&!this.tickAmount&&(parseInt(this.min,10)===this.min||!1!==a.allowDecimals),this.tickPositions=b=c&&c.slice(),!b&&((b=this.isDatetimeAxis?this.getTimeTicks(this.normalizeTimeTickInterval(this.tickInterval,a.units),this.min,this.max,a.startOfWeek,this.ordinalPositions,this.closestPointRange,!0):this.isLog?this.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max)).length>this.len&&(b=[b[0],b.pop()]),this.tickPositions=b,e&&(e=e.apply(this,[this.min,this.max])))&&(this.tickPositions=b=e),this.paddedTicks=b.slice(0),this.trimTicks(b,p,d),this.isLinked||(this.single&&b.length<2&&(this.min-=.5,this.max+=.5),c||e||this.adjustTickAmount())},trimTicks:function(a,b,c){var h=a[0],e=a[a.length-1],p=this.minPointOffset||0;if(!this.isLinked){if(b&&-1/0!==h)this.min=h;else for(;this.min-p>a[0];)a.shift();if(c)this.max=e;else for(;this.max+p<a[a.length-1];)a.pop();0===a.length&&r(h)&&a.push((e+h)/2)}},alignToOthers:function(){var b,a={},c=this.options;return!1===this.chart.options.chart.alignTicks||!1===c.alignTicks||this.isLog||g(this.chart[this.coll],function(h){var c=h.options;c=[h.horiz?c.left:c.top,c.width,c.height,c.pane].join();h.series.length&&(a[c]?b=!0:a[c]=1)}),b},getTickAmount:function(){var a=this.options,b=a.tickAmount,c=a.tickPixelInterval;!r(a.tickInterval)&&this.len<c&&!this.isRadial&&!this.isLog&&a.startOnTick&&a.endOnTick&&(b=2),!b&&this.alignToOthers()&&(b=Math.ceil(this.len/c)+1),b<4&&(this.finalTickAmt=b,b=5),this.tickAmount=b},adjustTickAmount:function(){var a=this.tickInterval,b=this.tickPositions,c=this.tickAmount,e=this.finalTickAmt,p=b&&b.length;if(p<c){for(;b.length<c;)b.push(f(b[b.length-1]+a));this.transA*=(p-1)/(c-1),this.max=b[b.length-1]}else c<p&&(this.tickInterval*=2,this.setTickPositions());if(r(e)){for(a=c=b.length;a--;)(3===e&&1==a%2||e<=2&&0<a&&a<c-1)&&b.splice(a,1);this.finalTickAmt=void 0}},setScale:function(){var a,b;this.oldMin=this.min,this.oldMax=this.max,this.oldAxisLength=this.len,this.setAxisSize(),b=this.len!==this.oldAxisLength,g(this.series,function(b){(b.isDirtyData||b.isDirty||b.xAxis.isDirty)&&(a=!0)}),b||a||this.isLinked||this.forceRedraw||this.userMin!==this.oldUserMin||this.userMax!==this.oldUserMax||this.alignToOthers()?(this.resetStacks&&this.resetStacks(),this.forceRedraw=!1,this.getSeriesExtremes(),this.setTickInterval(),this.oldUserMin=this.userMin,this.oldUserMax=this.userMax,this.isDirty||(this.isDirty=b||this.min!==this.oldMin||this.max!==this.oldMax)):this.cleanStacks&&this.cleanStacks()},setExtremes:function(a,b,c,e,p){var h=this,n=h.chart;c=B(c,!0),g(h.series,function(a){delete a.kdTree}),p=d(p,{min:a,max:b}),k(h,"setExtremes",p,function(){h.userMin=a,h.userMax=b,h.eventArgs=p,c&&n.redraw(e)})},zoom:function(a,b){var h=this.dataMin,c=this.dataMax,e=this.options,p=Math.min(h,B(e.min,h));e=Math.max(c,B(e.max,c));return a===this.min&&b===this.max||(this.allowZoomOutside||(r(h)&&(a<p&&(a=p),e<a&&(a=e)),r(c)&&(b<p&&(b=p),e<b&&(b=e))),this.displayBtn=void 0!==a||void 0!==b,this.setExtremes(a,b,!1,void 0,{trigger:"zoom"})),!0},setAxisSize:function(){var b=this.chart,e=(c=this.options).offsets||[0,0,0,0],p=this.horiz,d=this.width=Math.round(a.relativeLength(B(c.width,b.plotWidth-e[3]+e[1]),b.plotWidth)),n=this.height=Math.round(a.relativeLength(B(c.height,b.plotHeight-e[0]+e[2]),b.plotHeight)),q=this.top=Math.round(a.relativeLength(B(c.top,b.plotTop+e[0]),b.plotHeight,b.plotTop)),c=this.left=Math.round(a.relativeLength(B(c.left,b.plotLeft+e[3]),b.plotWidth,b.plotLeft));this.bottom=b.chartHeight-n-q,this.right=b.chartWidth-d-c,this.len=Math.max(p?d:n,0),this.pos=p?c:q},getExtremes:function(){var a=this.isLog,b=this.lin2log;return{min:a?f(b(this.min)):this.min,max:a?f(b(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(a){var b=this.isLog,h=this.lin2log,c=b?h(this.min):this.min;b=b?h(this.max):this.max;return null===a?a=c:a<c?a=c:b<a&&(a=b),this.translate(a,0,1,0,1)},autoLabelAlign:function(a){return 15<(a=(B(a,0)-90*this.side+720)%360)&&a<165?"right":195<a&&a<345?"left":"center"},tickSize:function(a){var b=this.options,h=b[a+"Length"],c=B(b[a+"Width"],"tick"===a&&this.isXAxis?1:0);if(c&&h)return"inside"===b[a+"Position"]&&(h=-h),[h,c]},labelMetrics:function(){var a=this.tickPositions&&this.tickPositions[0]||0;return this.chart.renderer.fontMetrics(this.options.labels.style&&this.options.labels.style.fontSize,this.ticks[a]&&this.ticks[a].label)},unsquish:function(){var d,k,v,a=this.options.labels,b=this.horiz,c=this.tickInterval,e=c,p=this.len/(((this.categories?1:0)+this.max-this.min)/c),n=a.rotation,q=this.labelMetrics(),f=Number.MAX_VALUE,z=function(a){return(a=1<(a/=p||1)?Math.ceil(a):1)*c};return b?(v=!a.staggerLines&&!a.step&&(r(n)?[n]:p<B(a.autoRotationLimit,80)&&a.autoRotation))&&g(v,function(a){var b;(a===n||a&&-90<=a&&a<=90)&&((b=(k=z(Math.abs(q.h/Math.sin(u*a))))+Math.abs(a/360))<f&&(f=b,d=a,e=k))}):a.step||(e=z(q.h)),this.autoRotation=v,this.labelRotation=B(d,n),e},getSlotWidth:function(){var a=this.chart,b=this.horiz,c=this.options.labels,e=Math.max(this.tickPositions.length-(this.categories?0:1),1),p=a.margin[3];return b&&(c.step||0)<2&&!c.rotation&&(this.staggerLines||1)*this.len/e||!b&&(p&&p-a.spacing[3]||.33*a.chartWidth)},renderUnsquish:function(){var D,l,I,a=this.chart,b=a.renderer,e=this.tickPositions,p=this.ticks,d=this.options.labels,n=this.horiz,q=this.getSlotWidth(),k=Math.max(1,Math.round(q-2*(d.padding||5))),f={},v=this.labelMetrics(),z=d.style&&d.style.textOverflow,y=0;if(J(d.rotation)||(f.rotation=d.rotation||0),g(e,function(a){(a=p[a])&&a.labelLength>y&&(y=a.labelLength)}),this.maxLabelLength=y,this.autoRotation)k<y&&y>v.h?f.rotation=this.labelRotation:this.labelRotation=0;else if(q&&(D={width:k+"px"},!z))for(D.textOverflow="clip",l=e.length;!n&&l--;)I=e[l],(k=p[I].label)&&(k.styles&&"ellipsis"===k.styles.textOverflow?k.css({textOverflow:"clip"}):p[I].labelLength>q&&k.css({width:q+"px"}),k.getBBox().height>this.len/e.length-(v.h-v.f)&&(k.specCss={textOverflow:"ellipsis"}));f.rotation&&(D={width:(y>.5*a.chartHeight?.33*a.chartHeight:a.chartHeight)+"px"},z||(D.textOverflow="ellipsis")),(this.labelAlign=d.align||this.autoLabelAlign(this.labelRotation))&&(f.align=this.labelAlign),g(e,function(a){var b=(a=p[a])&&a.label;b&&(b.attr(f),D&&b.css(c(D,b.specCss)),delete b.specCss,a.rotation=f.rotation)}),this.tickRotCorr=b.rotCorr(v.b,this.labelRotation||0,0!==this.side)},hasData:function(){return this.hasVisibleSeries||r(this.min)&&r(this.max)&&!!this.tickPositions},addTitle:function(a){var p,b=this.chart.renderer,c=this.horiz,h=this.opposite,e=this.options.title;this.axisTitle||((p=e.textAlign)||(p=(c?{low:"left",middle:"center",high:"right"}:{low:h?"right":"left",middle:"center",high:h?"left":"right"})[e.align]),this.axisTitle=b.text(e.text,0,0,e.useHTML).attr({zIndex:7,rotation:e.rotation||0,align:p}).addClass("highcharts-axis-title").css(e.style).add(this.axisGroup),this.axisTitle.isNew=!0),e.style.width||this.isRadial||this.axisTitle.css({width:this.len}),this.axisTitle[a?"show":"hide"](!0)},generateTick:function(a){var b=this.ticks;b[a]?b[a].addLabel():b[a]=new I(this,a)},getOffset:function(){var v,z,y,a=this,c=(b=a.chart).renderer,e=a.options,p=a.tickPositions,d=a.ticks,n=a.horiz,k=a.side,f=b.inverted&&!a.isZAxis?[1,0,3,2][k]:k,D=0,l=0,I=e.title,m=e.labels,G=0,J=b.axisOffset,b=b.clipOffset,t=[-1,1,1,-1][k],L=e.className,u=a.axisParent,K=this.tickSize("tick");v=a.hasData(),a.showAxis=z=v||B(e.showEmpty,!0),a.staggerLines=a.horiz&&m.staggerLines,a.axisGroup||(a.gridGroup=c.g("grid").attr({zIndex:e.gridZIndex||1}).addClass("highcharts-"+this.coll.toLowerCase()+"-grid "+(L||"")).add(u),a.axisGroup=c.g("axis").attr({zIndex:e.zIndex||2}).addClass("highcharts-"+this.coll.toLowerCase()+" "+(L||"")).add(u),a.labelGroup=c.g("axis-labels").attr({zIndex:m.zIndex||7}).addClass("highcharts-"+a.coll.toLowerCase()+"-labels "+(L||"")).add(u)),v||a.isLinked?(g(p,function(b,c){a.generateTick(b,c)}),a.renderUnsquish(),!1===m.reserveSpace||0!==k&&2!==k&&{1:"left",3:"right"}[k]!==a.labelAlign&&"center"!==a.labelAlign||g(p,function(a){G=Math.max(d[a].getLabelSize(),G)}),a.staggerLines&&(G*=a.staggerLines,a.labelOffset=G*(a.opposite?-1:1))):q(d,function(a,b){a.destroy(),delete d[b]}),I&&I.text&&!1!==I.enabled&&(a.addTitle(z),z&&!1!==I.reserveSpace&&(a.titleOffset=D=a.axisTitle.getBBox()[n?"height":"width"],y=I.offset,l=r(y)?0:B(I.margin,n?5:10))),a.renderLine(),a.offset=t*B(e.offset,J[k]),a.tickRotCorr=a.tickRotCorr||{x:0,y:0},c=0===k?-a.labelMetrics().h:2===k?a.tickRotCorr.y:0,l=Math.abs(G)+l,G&&(l=l-c+t*(n?B(m.y,a.tickRotCorr.y+8*t):m.x)),a.axisTitleMargin=B(y,l),J[k]=Math.max(J[k],a.axisTitleMargin+D+t*a.offset,l,v&&p.length&&K?K[0]+t*a.offset:0),p=2*Math.floor(a.axisLine.strokeWidth()/2),0<e.offset&&(p-=2*e.offset),b[f]=Math.max(b[f]||p,p)},getLinePath:function(a){var b=this.chart,c=this.opposite,h=this.offset,e=this.horiz,p=this.left+(c?this.width:0)+h;h=b.chartHeight-this.bottom-(c?this.height:0)+h;return c&&(a*=-1),b.renderer.crispLine(["M",e?this.left:p,e?h:this.top,"L",e?b.chartWidth-this.right:p,e?h:b.chartHeight-this.bottom],a)},renderLine:function(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))},getTitlePosition:function(){var a=this.horiz,b=this.left,c=this.top,e=this.len,p=this.options.title,d=a?b:c,n=this.opposite,q=this.offset,k=p.x||0,g=p.y||0,f=this.axisTitle,v=this.chart.renderer.fontMetrics(p.style&&p.style.fontSize,f);f=Math.max(f.getBBox(null,0).height-v.h-1,0),e={low:d+(a?0:e),middle:d+e/2,high:d+(a?e:0)}[p.align],b=(a?c+this.height:b)+(a?1:-1)*(n?-1:1)*this.axisTitleMargin+[-f,f,v.f,-f][this.side];return{x:a?e+k:b+(n?this.width:0)+q+k,y:a?b+g-(n?this.height:0)+q:e+g}},renderMinorTick:function(a){var b=this.chart.hasRendered&&D(this.oldMin),c=this.minorTicks;c[a]||(c[a]=new I(this,a,"minor")),b&&c[a].isNew&&c[a].render(null,!0),c[a].render(null,!1,1)},renderTick:function(a,b){var c=this.isLinked,e=this.ticks,h=this.chart.hasRendered&&D(this.oldMin);(!c||a>=this.min&&a<=this.max)&&(e[a]||(e[a]=new I(this,a)),h&&e[a].isNew&&e[a].render(b,!0,.1),e[a].render(b))},render:function(){var L,u,b=this,c=b.chart,e=b.options,p=b.isLog,d=b.lin2log,n=b.isLinked,k=b.tickPositions,f=b.axisTitle,v=b.ticks,y=b.minorTicks,l=b.alternateBands,m=e.stackLabels,r=e.alternateGridColor,B=b.tickmarkOffset,G=b.axisLine,J=b.showAxis,t=A(c.renderer.globalAnimation);b.labelEdge.length=0,b.overlap=!1,g([v,y,l],function(a){q(a,function(a){a.isActive=!1})}),(b.hasData()||n)&&(b.minorTickInterval&&!b.categories&&g(b.getMinorTickPositions(),function(a){b.renderMinorTick(a)}),k.length&&(g(k,function(a,c){b.renderTick(a,c)}),B&&(0===b.min||b.single)&&(v[-1]||(v[-1]=new I(b,-1,null,!0)),v[-1].render(-1))),r&&g(k,function(e,h){u=void 0!==k[h+1]?k[h+1]+B:b.max-B,0==h%2&&e<b.max&&u<=b.max+(c.polar?-B:B)&&(l[e]||(l[e]=new a.PlotLineOrBand(b)),L=e+B,l[e].options={from:p?d(L):L,to:p?d(u):u,color:r},l[e].render(),l[e].isActive=!0)}),b._addedPlotLB||(g((e.plotLines||[]).concat(e.plotBands||[]),function(a){b.addPlotBandOrLine(a)}),b._addedPlotLB=!0)),g([v,y,l],function(a){var b,e=[],h=t.duration;q(a,function(a,b){a.isActive||(a.render(b,!1,0),a.isActive=!1,e.push(b))}),z(function(){for(b=e.length;b--;)a[e[b]]&&!a[e[b]].isActive&&(a[e[b]].destroy(),delete a[e[b]])},a!==l&&c.hasRendered&&h?h:0)}),G&&(G[G.isPlaced?"animate":"attr"]({d:this.getLinePath(G.strokeWidth())}),G.isPlaced=!0,G[J?"show":"hide"](!0)),f&&J&&(e=b.getTitlePosition(),D(e.y)?(f[f.isNew?"attr":"animate"](e),f.isNew=!1):(f.attr("y",-9999),f.isNew=!0)),m&&m.enabled&&b.renderStackTotals(),b.isDirty=!1},redraw:function(){this.visible&&(this.render(),g(this.plotLinesAndBands,function(a){a.render()})),g(this.series,function(a){a.isDirty=!0})},keepProps:"extKey hcEvents names series userMax userMin".split(" "),destroy:function(a){var h,b=this,c=b.stacks,e=b.plotLinesAndBands;if(a||K(b),q(c,function(a,b){t(a),c[b]=null}),g([b.ticks,b.minorTicks,b.alternateBands],function(a){t(a)}),e)for(a=e.length;a--;)e[a].destroy();for(h in g("stackTotalGroup axisLine axisTitle axisGroup gridGroup labelGroup cross".split(" "),function(a){b[a]&&(b[a]=b[a].destroy())}),b.plotLinesAndBandsGroups)b.plotLinesAndBandsGroups[h]=b.plotLinesAndBandsGroups[h].destroy();q(b,function(a,c){-1===y(c,b.keepProps)&&delete b[c]})},drawCrosshair:function(a,b){var c,p,e=this.crosshair,h=B(e.snap,!0),d=this.cross;a||(a=this.cross&&this.cross.e),this.crosshair&&!1!==(r(b)||!h)?(h?r(b)&&(p=this.isXAxis?b.plotX:this.len-b.plotY):p=a&&(this.horiz?a.chartX-this.pos:this.len-a.chartY+this.pos),r(p)&&(c=this.getPlotLinePath(b&&(this.isXAxis?b.x:B(b.stackY,b.y)),null,null,null,p)||null),r(c)?(b=this.categories&&!this.isRadial,d||(this.cross=d=this.chart.renderer.path().addClass("highcharts-crosshair highcharts-crosshair-"+(b?"category ":"thin ")+e.className).attr({zIndex:B(e.zIndex,2)}).add(),d.attr({stroke:e.color||(b?m("#ccd6eb").setOpacity(.25).get():"#cccccc"),"stroke-width":B(e.width,1)}),e.dashStyle&&d.attr({dashstyle:e.dashStyle})),d.show().attr({d:c}),b&&!e.width&&d.attr({"stroke-width":this.transA}),this.cross.e=a):this.hideCrosshair()):this.hideCrosshair()},hideCrosshair:function(){this.cross&&this.cross.hide()}}),a.Axis=L}(M);return function(a){var C=a.Axis,A=a.Date,F=a.dateFormat,E=a.defaultOptions,m=a.defined,f=a.each,l=a.extend,r=a.getMagnitude,u=a.getTZOffset,t=a.normalizeTickInterval,g=a.pick,d=a.timeUnits;C.prototype.getTimeTicks=function(a,b,e,v){var r,t,p,k=[],n={},D=E.global.useUTC,c=new A(b-Math.max(u(b),u(e))),G=A.hcMakeTime,q=a.unitRange,B=a.count;if(m(b)){c[A.hcSetMilliseconds](q>=d.second?0:B*Math.floor(c.getMilliseconds()/B)),q>=d.second&&c[A.hcSetSeconds](q>=d.minute?0:B*Math.floor(c.getSeconds()/B)),q>=d.minute&&c[A.hcSetMinutes](q>=d.hour?0:B*Math.floor(c[A.hcGetMinutes]()/B)),q>=d.hour&&c[A.hcSetHours](q>=d.day?0:B*Math.floor(c[A.hcGetHours]()/B)),q>=d.day&&c[A.hcSetDate](q>=d.month?1:B*Math.floor(c[A.hcGetDate]()/B)),q>=d.month&&(c[A.hcSetMonth](q>=d.year?0:B*Math.floor(c[A.hcGetMonth]()/B)),r=c[A.hcGetFullYear]()),q>=d.year&&c[A.hcSetFullYear](r-r%B),q===d.week&&c[A.hcSetDate](c[A.hcGetDate]()-c[A.hcGetDay]()+g(v,1)),r=c[A.hcGetFullYear](),v=c[A.hcGetMonth]();var z=c[A.hcGetDate](),I=c[A.hcGetHours]();for((A.hcTimezoneOffset||A.hcGetTimezoneOffset)&&(p=(!D||!!A.hcGetTimezoneOffset)&&(e-b>4*d.month||u(b)!==u(e)),c=c.getTime(),t=u(c),c=new A(c+t)),D=c.getTime(),b=1;D<e;)k.push(D),D=q===d.year?G(r+b*B,0):q===d.month?G(r,v+b*B):!p||q!==d.day&&q!==d.week?p&&q===d.hour?G(r,v,z,I+b*B,0,0,t)-t:D+q*B:G(r,v,z+b*B*(q===d.day?1:7)),b++;k.push(D),q<=d.hour&&k.length<1e4&&f(k,function(a){0==a%18e5&&"000000000"===F("%H%M%S%L",a)&&(n[a]="day")})}return k.info=l(a,{higherRanks:n,totalRange:q*B}),k},C.prototype.normalizeTimeTickInterval=function(a,b){var e=b||[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2]],["week",[1,2]],["month",[1,2,3,4,6]],["year",null]];b=e[e.length-1];var n,k=d[b[0]],g=b[1];for(n=0;n<e.length&&(b=e[n],k=d[b[0]],g=b[1],!(e[n+1]&&a<=(k*g[g.length-1]+d[e[n+1][0]])/2));n++);return k===d.year&&a<5*k&&(g=[1,2,5]),{unitRange:k,count:a=t(a/k,g,"year"===b[0]?Math.max(r(a/k),1):1),unitName:b[0]}}}(M),function(a){var C=a.Axis,A=a.getMagnitude,F=a.map,E=a.normalizeTickInterval,m=a.pick;C.prototype.getLogTickPositions=function(a,l,r,u){var f=this.options,g=this.len,d=this.lin2log,k=this.log2lin,b=[];if(u||(this._minorAutoInterval=null),.5<=a)a=Math.round(a),b=this.getLinearTickPositions(a,l,r);else if(.08<=a){var e,v,y,n,D;for(g=Math.floor(l),f=.3<a?[1,2,4]:.15<a?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9];g<r+1&&!D;g++)for(v=f.length,e=0;e<v&&!D;e++)l<(y=k(d(g)*f[e]))&&(!u||n<=r)&&void 0!==n&&b.push(n),r<n&&(D=!0),n=y}else l=d(l),r=d(r),a=f[u?"minorTickInterval":"tickInterval"],a=m("auto"===a?null:a,this._minorAutoInterval,f.tickPixelInterval/(u?5:1)*(r-l)/((u?g/this.tickPositions.length:g)||1)),a=E(a,null,A(a)),b=F(this.getLinearTickPositions(a,l,r),k),u||(this._minorAutoInterval=a/5);return u||(this.tickInterval=a),b},C.prototype.log2lin=function(a){return Math.log(a)/Math.LN10},C.prototype.lin2log=function(a){return Math.pow(10,a)}}(M),function(a,C){var A=a.arrayMax,F=a.arrayMin,E=a.defined,m=a.destroyObjectProperties,f=a.each,l=a.erase,r=a.merge,u=a.pick;a.PlotLineOrBand=function(a,g){this.axis=a,g&&(this.options=g,this.id=g.id)},a.PlotLineOrBand.prototype={render:function(){var f=this,g=f.axis,d=g.horiz,k=f.options,b=k.label,e=f.label,v=k.to,l=k.from,n=k.value,D=E(l)&&E(v),m=E(n),c=f.svgElem,G=!c,q=[],B=k.color,K=u(k.zIndex,0),p=k.events,z=(q={class:"highcharts-plot-"+(D?"band ":"line ")+(k.className||"")},{}),I=g.chart.renderer,L=D?"bands":"lines",h=g.log2lin;if(g.isLog&&(l=h(l),v=h(v),n=h(n)),m?(q={stroke:B,"stroke-width":k.width},k.dashStyle&&(q.dashstyle=k.dashStyle)):D&&(B&&(q.fill=B),k.borderWidth&&(q.stroke=k.borderColor,q["stroke-width"]=k.borderWidth)),L+="-"+(z.zIndex=K),(B=g.plotLinesAndBandsGroups[L])||(g.plotLinesAndBandsGroups[L]=B=I.g("plot-"+L).attr(z).add()),G&&(f.svgElem=c=I.path().attr(q).add(B)),m)q=g.getPlotLinePath(n,c.strokeWidth());else{if(!D)return;q=g.getPlotBandPath(l,v,k)}return G&&q&&q.length?(c.attr({d:q}),p&&a.objectEach(p,function(a,b){c.on(b,function(a){p[b].apply(f,[a])})})):c&&(q?(c.show(),c.animate({d:q})):(c.hide(),e&&(f.label=e=e.destroy()))),b&&E(b.text)&&q&&q.length&&0<g.width&&0<g.height&&!q.flat?(b=r({align:d&&D&&"center",x:d?!D&&4:10,verticalAlign:!d&&D&&"middle",y:d?D?16:10:D?6:-4,rotation:d&&!D&&90},b),this.renderLabel(b,q,D,K)):e&&e.hide(),f},renderLabel:function(a,g,d,k){var b=this.label,e=this.axis.chart.renderer;b||((b={align:a.textAlign||a.align,rotation:a.rotation,class:"highcharts-plot-"+(d?"band":"line")+"-label "+(a.className||"")}).zIndex=k,this.label=b=e.text(a.text,0,0,a.useHTML).attr(b).add(),b.css(a.style)),k=[g[1],g[4],d?g[6]:g[1]],g=[g[2],g[5],d?g[7]:g[2]],d=F(k),e=F(g),b.align(a,!1,{x:d,y:e,width:A(k)-d,height:A(g)-e}),b.show()},destroy:function(){l(this.axis.plotLinesAndBands,this),delete this.axis,m(this)}},a.extend(C.prototype,{getPlotBandPath:function(a,g){var d=this.getPlotLinePath(g,null,null,!0),k=this.getPlotLinePath(a,null,null,!0),b=this.horiz,e=1;return a=a<this.min&&g<this.min||a>this.max&&g>this.max,k&&d?(a&&(k.flat=k.toString()===d.toString(),e=0),k.push(b&&d[4]===k[4]?d[4]+e:d[4],b||d[5]!==k[5]?d[5]:d[5]+e,b&&d[1]===k[1]?d[1]+e:d[1],b||d[2]!==k[2]?d[2]:d[2]+e)):k=null,k},addPlotBand:function(a){return this.addPlotBandOrLine(a,"plotBands")},addPlotLine:function(a){return this.addPlotBandOrLine(a,"plotLines")},addPlotBandOrLine:function(f,g){var d=new a.PlotLineOrBand(this,f).render(),k=this.userOptions;return d&&(g&&(k[g]=k[g]||[],k[g].push(f)),this.plotLinesAndBands.push(d)),d},removePlotBandOrLine:function(a){for(var g=this.plotLinesAndBands,d=this.options,k=this.userOptions,b=g.length;b--;)g[b].id===a&&g[b].destroy();f([d.plotLines||[],k.plotLines||[],d.plotBands||[],k.plotBands||[]],function(e){for(b=e.length;b--;)e[b].id===a&&l(e,e[b])})},removePlotBand:function(a){this.removePlotBandOrLine(a)},removePlotLine:function(a){this.removePlotBandOrLine(a)}})}(M,S),function(a){var C=a.dateFormat,A=a.each,F=a.extend,E=a.format,m=a.isNumber,f=a.map,l=a.merge,r=a.pick,u=a.splat,t=a.syncTimeout,g=a.timeUnits;a.Tooltip=function(){this.init.apply(this,arguments)},a.Tooltip.prototype={init:function(a,k){this.chart=a,this.options=k,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=k.split&&!a.inverted,this.shared=k.shared||this.split},cleanSplit:function(a){A(this.chart.series,function(d){var b=d&&d.tt;b&&(!b.isActive||a?d.tt=b.destroy():b.isActive=!1)})},getLabel:function(){var a=this.chart.renderer,k=this.options;return this.label||(this.split?this.label=a.g("tooltip"):(this.label=a.label("",0,0,k.shape||"callout",null,null,k.useHTML,null,"tooltip").attr({padding:k.padding,r:k.borderRadius}),this.label.attr({fill:k.backgroundColor,"stroke-width":k.borderWidth}).css(k.style).shadow(k.shadow)),this.label.attr({zIndex:8}).add()),this.label},update:function(a){this.destroy(),l(!0,this.chart.options.tooltip.userOptions,a),this.init(this.chart,l(!0,this.options,a))},destroy:function(){this.label&&(this.label=this.label.destroy()),this.split&&this.tt&&(this.cleanSplit(this.chart,!0),this.tt=this.tt.destroy()),clearTimeout(this.hideTimer),clearTimeout(this.tooltipTimeout)},move:function(a,k,b,e){var d=this,g=d.now,n=!1!==d.options.animation&&!d.isHidden&&(1<Math.abs(a-g.x)||1<Math.abs(k-g.y)),f=d.followPointer||1<d.len;F(g,{x:n?(2*g.x+a)/3:a,y:n?(g.y+k)/2:k,anchorX:f?void 0:n?(2*g.anchorX+b)/3:b,anchorY:f?void 0:n?(g.anchorY+e)/2:e}),d.getLabel().attr(g),n&&(clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){d&&d.move(a,k,b,e)},32))},hide:function(a){var d=this;clearTimeout(this.hideTimer),a=r(a,this.options.hideDelay,500),this.isHidden||(this.hideTimer=t(function(){d.getLabel()[a?"fadeOut":"hide"](),d.isHidden=!0},a))},getAnchor:function(a,k){var b,c,r,e=this.chart,d=e.inverted,g=e.plotTop,n=e.plotLeft,l=0,m=0;return b=(a=u(a))[0].tooltipPos,this.followPointer&&k&&(void 0===k.chartX&&(k=e.pointer.normalize(k)),b=[k.chartX-e.plotLeft,k.chartY-g]),b||(A(a,function(a){c=a.series.yAxis,r=a.series.xAxis,l+=a.plotX+(!d&&r?r.left-n:0),m+=(a.plotLow?(a.plotLow+a.plotHigh)/2:a.plotY)+(!d&&c?c.top-g:0)}),l/=a.length,m/=a.length,b=[d?e.plotWidth-m:l,this.shared&&!d&&1<a.length&&k?k.chartY-g:d?e.plotHeight-l:m]),f(b,Math.round)},getPosition:function(a,g,b){var f,e=this.chart,d=this.distance,k={},n=b.h||0,l=["y",e.chartHeight,g,b.plotY+e.plotTop,e.plotTop,e.plotTop+e.plotHeight],c=["x",e.chartWidth,a,b.plotX+e.plotLeft,e.plotLeft,e.plotLeft+e.plotWidth],m=!this.followPointer&&r(b.ttBelow,!e.inverted==!!b.negative),t=function(a){var b=l;l=c,c=b,f=a},p=function(){!1!==function(a,b,c,e,p,q){var h=c<e-d,g=e+d+c<b,f=e-d-c;if(e+=d,m&&g)k[a]=e;else if(!m&&h)k[a]=f;else if(h)k[a]=Math.min(q-c,f-n<0?f:f-n);else{if(!g)return!1;k[a]=Math.max(p,b<e+n+c?e:e+n)}}.apply(0,l)?!1!==function(a,b,c,e){var h;return e<d||b-d<e?h=!1:k[a]=e<c/2?1:b-c/2<e?b-c-2:e-c/2,h}.apply(0,c)||f||(t(!0),p()):f?k.x=k.y=0:(t(!0),p())};return(e.inverted||1<this.len)&&t(),p(),k},defaultFormatter:function(a){var b,d=this.points||u(this);return(b=(b=[a.tooltipFooterHeaderFormatter(d[0])]).concat(a.bodyFormatter(d))).push(a.tooltipFooterHeaderFormatter(d[0],!0)),b},refresh:function(a,g){var b,d,n,e=this.options,k=a,f={},l=[];b=e.formatter||this.defaultFormatter;var c;f=this.shared;e.enabled&&(clearTimeout(this.hideTimer),this.followPointer=u(k)[0].series.tooltipOptions.followPointer,g=(n=this.getAnchor(k,g))[0],d=n[1],!f||k.series&&k.series.noSharedTooltip?f=k.getLabelConfig():(A(k,function(a){a.setState("hover"),l.push(a.getLabelConfig())}),(f={x:k[0].category,y:k[0].y}).points=l,k=k[0]),this.len=l.length,f=b.call(f,this),c=k.series,this.distance=r(c.tooltipOptions.distance,16),!1===f?this.hide():(b=this.getLabel(),this.isHidden&&b.attr({opacity:1}).show(),this.split?this.renderSplit(f,a):(e.style.width||b.css({width:this.chart.spacingBox.width}),b.attr({text:f&&f.join?f.join(""):f}),b.removeClass(/highcharts-color-[\d]+/g).addClass("highcharts-color-"+r(k.colorIndex,c.colorIndex)),b.attr({stroke:e.borderColor||k.color||c.color||"#666666"}),this.updatePosition({plotX:g,plotY:d,negative:k.negative,ttBelow:k.ttBelow,h:n[2]||0})),this.isHidden=!1))},renderSplit:function(d,k){var b=this,e=[],g=this.chart,f=g.renderer,n=!0,l=this.options,m=0,c=this.getLabel();A(d.slice(0,k.length+1),function(a,d){if(!1!==a){var q=(d=k[d-1]||{isHeader:!0,plotX:k[0].plotX}).series||b,v=q.tt,p=d.series||{},z="highcharts-color-"+r(d.colorIndex,p.colorIndex,"none");v||(q.tt=v=f.label(null,null,null,"callout").addClass("highcharts-tooltip-box "+z).attr({padding:l.padding,r:l.borderRadius,fill:l.backgroundColor,stroke:l.borderColor||d.color||p.color||"#333333","stroke-width":l.borderWidth}).add(c)),v.isActive=!0,v.attr({text:a}),v.css(l.style).shadow(l.shadow),p=(a=v.getBBox()).width+v.strokeWidth(),(p=d.isHeader?(m=a.height,Math.max(0,Math.min(d.plotX+g.plotLeft-p/2,g.chartWidth-p))):d.plotX+g.plotLeft-r(l.distance,16)-p)<0&&(n=!1),a=(d.series&&d.series.yAxis&&d.series.yAxis.pos)+(d.plotY||0),a-=g.plotTop,e.push({target:d.isHeader?g.plotHeight+m:a,rank:d.isHeader?1:0,size:q.tt.getBBox().height+1,point:d,x:p,tt:v})}}),this.cleanSplit(),a.distribute(e,g.plotHeight+m),A(e,function(a){var b=a.point,c=b.series;a.tt.attr({visibility:void 0===a.pos?"hidden":"inherit",x:n||b.isHeader?a.x:b.plotX+g.plotLeft+r(l.distance,16),y:a.pos+g.plotTop,anchorX:b.isHeader?b.plotX+g.plotLeft:b.plotX+c.xAxis.pos,anchorY:b.isHeader?a.pos+g.plotTop-15:b.plotY+c.yAxis.pos})})},updatePosition:function(a){var d=this.chart,b=this.getLabel();b=(this.options.positioner||this.getPosition).call(this,b.width,b.height,a);this.move(Math.round(b.x),Math.round(b.y||0),a.plotX+d.plotLeft,a.plotY+d.plotTop)},getDateFormat:function(a,k,b,e){var f,n,d=C("%m-%d %H:%M:%S.%L",k),l={millisecond:15,second:12,minute:9,hour:6,day:3},m="millisecond";for(n in g){if(a===g.week&&+C("%w",k)===b&&"00:00:00.000"===d.substr(6)){n="week";break}if(g[n]>a){n=m;break}if(l[n]&&d.substr(l[n])!=="01-01 00:00:00.000".substr(l[n]))break;"week"!==n&&(m=n)}return n&&(f=e[n]),f},getXDateFormat:function(a,g,b){g=g.dateTimeLabelFormats;var e=b&&b.closestPointRange;return(e?this.getDateFormat(e,a.x,b.options.startOfWeek,g):g.day)||g.year},tooltipFooterHeaderFormatter:function(a,g){var b=g?"footer":"header",e=(g=a.series).tooltipOptions,d=e.xDateFormat,k=g.xAxis,n=k&&"datetime"===k.options.type&&m(a.key);b=e[b+"Format"];return n&&!d&&(d=this.getXDateFormat(a,e,k)),n&&d&&(b=b.replace("{point.key}","{point.key:"+d+"}")),E(b,{point:a,series:g})},bodyFormatter:function(a){return f(a,function(a){var b=a.series.tooltipOptions;return(b.pointFormatter||a.point.tooltipFormatter).call(a.point,b.pointFormat)})}}}(M),function(a){var C=a.addEvent,A=a.attr,F=a.charts,E=a.color,m=a.css,f=a.defined,l=a.each,r=a.extend,u=a.find,t=a.fireEvent,g=a.isObject,d=a.offset,k=a.pick,b=a.removeEvent,e=a.splat,v=a.Tooltip,y=a.win;a.Pointer=function(a,b){this.init(a,b)},a.Pointer.prototype={init:function(a,b){this.options=b,this.chart=a,this.runChartClick=b.chart.events&&!!b.chart.events.click,this.pinchDown=[],this.lastValidTouch={},v&&(a.tooltip=new v(a,b.tooltip),this.followTouchMove=k(b.tooltip.followTouchMove,!0)),this.setDOMEvents()},zoomOption:function(a){var e=(b=this.chart).options.chart,c=e.zoomType||"",b=b.inverted;/touch/.test(a.type)&&(c=k(e.pinchType,c)),this.zoomX=a=/x/.test(c),this.zoomY=c=/y/.test(c),this.zoomHor=a&&!b||c&&b,this.zoomVert=c&&!b||a&&b,this.hasZoom=a||c},normalize:function(a,b){var e,c;return(a=a||y.event).target||(a.target=a.srcElement),c=a.touches?a.touches.length?a.touches.item(0):a.changedTouches[0]:a,b||(this.chartPosition=b=d(this.chart.container)),b=void 0===c.pageX?(e=Math.max(a.x,a.clientX-b.left),a.y):(e=c.pageX-b.left,c.pageY-b.top),r(a,{chartX:Math.round(e),chartY:Math.round(b)})},getCoordinates:function(a){var b={xAxis:[],yAxis:[]};return l(this.chart.axes,function(e){b[e.isXAxis?"xAxis":"yAxis"].push({axis:e,value:e.toValue(a[e.horiz?"chartX":"chartY"])})}),b},findNearestKDPoint:function(a,b,e){var c;return l(a,function(a){var d=!(a.noSharedTooltip&&b)&&a.options.findNearestPointBy.indexOf("y")<0;if(a=a.searchPoint(e,d),(d=g(a,!0))&&!(d=!g(c,!0))){d=c.distX-a.distX;var n=c.dist-a.dist,k=(a.series.group&&a.series.group.zIndex)-(c.series.group&&c.series.group.zIndex);d=0<(0!==d&&b?d:0!==n?n:0!==k?k:c.series.index>a.series.index?-1:1)}d&&(c=a)}),c},getPointFromEvent:function(a){a=a.target;for(var b;a&&!b;)b=a.point,a=a.parentNode;return b},getChartCoordinatesFromPoint:function(a,b){var c=(e=a.series).xAxis,e=e.yAxis;if(c&&e)return b?{chartX:c.len+c.pos-a.clientX,chartY:e.len+e.pos-a.plotY}:{chartX:a.clientX+c.pos,chartY:a.plotY+e.pos}},getHoverData:function(b,e,d,c,f,q){var n,v=[];c=!(!c||!b);var p=e&&!e.stickyTracking?[e]:a.grep(d,function(a){return a.visible&&!(!f&&a.directTouch)&&k(a.options.enableMouseTracking,!0)&&a.stickyTracking});return e=(n=c?b:this.findNearestKDPoint(p,f,q))&&n.series,n&&(f&&!e.noSharedTooltip?(p=a.grep(d,function(a){return a.visible&&!(!f&&a.directTouch)&&k(a.options.enableMouseTracking,!0)&&!a.noSharedTooltip}),l(p,function(a){a=u(a.points,function(a){return a.x===n.x}),g(a)&&!a.isNull&&v.push(a)})):v.push(n)),{hoverPoint:n,hoverSeries:e,hoverPoints:v}},runPointActions:function(b,e){var v,d=this.chart,c=d.tooltip,g=!!c&&c.shared,f=(n=e||d.hoverPoint)&&n.series||d.hoverSeries,n=(f=this.getHoverData(n,f,d.series,!!e||f&&f.directTouch&&this.isDirectTouch,g,b)).hoverPoint;v=f.hoverPoints,e=(f=f.hoverSeries)&&f.tooltipOptions.followPointer,g=g&&f&&!f.noSharedTooltip,n&&(n!==d.hoverPoint||c&&c.isHidden)?(l(d.hoverPoints||[],function(b){-1===a.inArray(b,v)&&b.setState()}),l(v||[],function(a){a.setState("hover")}),d.hoverSeries!==f&&f.onMouseOver(),d.hoverPoint&&d.hoverPoint.firePointEvent("mouseOut"),n.firePointEvent("mouseOver"),d.hoverPoints=v,d.hoverPoint=n,c&&c.refresh(g?v:n,b)):e&&c&&!c.isHidden&&(n=c.getAnchor([{}],b),c.updatePosition({plotX:n[0],plotY:n[1]})),this.unDocMouseMove||(this.unDocMouseMove=C(d.container.ownerDocument,"mousemove",function(b){var c=F[a.hoverChartIndex];c&&c.pointer.onDocumentMouseMove(b)})),l(d.axes,function(c){var e=k(c.crosshair.snap,!0),p=e?a.find(v,function(a){return a.series[c.coll]===c}):void 0;p||!e?c.drawCrosshair(b,p):c.hideCrosshair()})},reset:function(a,b){var d=this.chart,c=d.hoverSeries,g=d.hoverPoint,n=d.hoverPoints,f=d.tooltip,k=f&&f.shared?n:g;a&&k&&l(e(k),function(b){b.series.isCartesian&&void 0===b.plotX&&(a=!1)}),a?f&&k&&(f.refresh(k),g&&(g.setState(g.state,!0),l(d.axes,function(a){a.crosshair&&a.drawCrosshair(null,g)}))):(g&&g.onMouseOut(),n&&l(n,function(a){a.setState()}),c&&c.onMouseOut(),f&&f.hide(b),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),l(d.axes,function(a){a.hideCrosshair()}),this.hoverX=d.hoverPoints=d.hoverPoint=null)},scaleGroups:function(a,b){var c,e=this.chart;l(e.series,function(d){c=a||d.getPlotBox(),d.xAxis&&d.xAxis.zoomEnabled&&d.group&&(d.group.attr(c),d.markerGroup&&(d.markerGroup.attr(c),d.markerGroup.clip(b?e.clipRect:null)),d.dataLabelsGroup&&d.dataLabelsGroup.attr(c))}),e.clipRect.attr(b||e.clipBox)},dragStart:function(a){var b=this.chart;b.mouseIsDown=a.type,b.cancelClick=!1,b.mouseDownX=this.mouseDownX=a.chartX,b.mouseDownY=this.mouseDownY=a.chartY},drag:function(a){var l,b=this.chart,e=b.options.chart,c=a.chartX,d=a.chartY,g=this.zoomHor,n=this.zoomVert,f=b.plotLeft,p=b.plotTop,k=b.plotWidth,v=b.plotHeight,h=this.selectionMarker,w=this.mouseDownX,m=this.mouseDownY,r=e.panKey&&a[e.panKey+"Key"];h&&h.touch||(c<f?c=f:f+k<c&&(c=f+k),d<p?d=p:p+v<d&&(d=p+v),this.hasDragged=Math.sqrt(Math.pow(w-c,2)+Math.pow(m-d,2)),10<this.hasDragged&&(l=b.isInsidePlot(w-f,m-p),b.hasCartesianSeries&&(this.zoomX||this.zoomY)&&l&&!r&&!h&&(this.selectionMarker=h=b.renderer.rect(f,p,g?1:k,n?1:v,0).attr({fill:e.selectionMarkerFill||E("#335cad").setOpacity(.25).get(),class:"highcharts-selection-marker",zIndex:7}).add()),h&&g&&(c-=w,h.attr({width:Math.abs(c),x:(0<c?0:c)+w})),h&&n&&(c=d-m,h.attr({height:Math.abs(c),y:(0<c?0:c)+m})),l&&!h&&e.panning&&b.pan(a,e.panning)))},drop:function(a){var b=this,e=this.chart,c=this.hasPinched;if(this.selectionMarker){var I,d={originalEvent:a,xAxis:[],yAxis:[]},g=this.selectionMarker,n=g.attr?g.attr("x"):g.x,k=g.attr?g.attr("y"):g.y,p=g.attr?g.attr("width"):g.width,v=g.attr?g.attr("height"):g.height;(this.hasDragged||c)&&(l(e.axes,function(e){if(e.zoomEnabled&&f(e.min)&&(c||b[{xAxis:"zoomX",yAxis:"zoomY"}[e.coll]])){var h=e.horiz,g="touchend"===a.type?e.minPixelPadding:0,q=e.toValue((h?n:k)+g);h=e.toValue((h?n+p:k+v)-g);d[e.coll].push({axis:e,min:Math.min(q,h),max:Math.max(q,h)}),I=!0}}),I&&t(e,"selection",d,function(a){e.zoom(r(a,c?{animation:!1}:null))})),this.selectionMarker=this.selectionMarker.destroy(),c&&this.scaleGroups()}e&&(m(e.container,{cursor:e._cursor}),e.cancelClick=10<this.hasDragged,e.mouseIsDown=this.hasDragged=this.hasPinched=!1,this.pinchDown=[])},onContainerMouseDown:function(a){a=this.normalize(a),this.zoomOption(a),a.preventDefault&&a.preventDefault(),this.dragStart(a)},onDocumentMouseUp:function(b){F[a.hoverChartIndex]&&F[a.hoverChartIndex].pointer.drop(b)},onDocumentMouseMove:function(a){var b=this.chart,e=this.chartPosition;a=this.normalize(a,e),!e||this.inClass(a.target,"highcharts-tracker")||b.isInsidePlot(a.chartX-b.plotLeft,a.chartY-b.plotTop)||this.reset()},onContainerMouseLeave:function(b){var e=F[a.hoverChartIndex];e&&(b.relatedTarget||b.toElement)&&(e.pointer.reset(),e.pointer.chartPosition=null)},onContainerMouseMove:function(b){var e=this.chart;f(a.hoverChartIndex)&&F[a.hoverChartIndex]&&F[a.hoverChartIndex].mouseIsDown||(a.hoverChartIndex=e.index),(b=this.normalize(b)).returnValue=!1,"mousedown"===e.mouseIsDown&&this.drag(b),!this.inClass(b.target,"highcharts-tracker")&&!e.isInsidePlot(b.chartX-e.plotLeft,b.chartY-e.plotTop)||e.openMenu||this.runPointActions(b)},inClass:function(a,b){for(var e;a;){if(e=A(a,"class")){if(-1!==e.indexOf(b))return!0;if(-1!==e.indexOf("highcharts-container"))return!1}a=a.parentNode}},onTrackerMouseOut:function(a){var b=this.chart.hoverSeries;a=a.relatedTarget||a.toElement,this.isDirectTouch=!1,!b||!a||b.stickyTracking||this.inClass(a,"highcharts-tooltip")||this.inClass(a,"highcharts-series-"+b.index)&&this.inClass(a,"highcharts-tracker")||b.onMouseOut()},onContainerClick:function(a){var b=this.chart,e=b.hoverPoint,c=b.plotLeft,d=b.plotTop;a=this.normalize(a),b.cancelClick||(e&&this.inClass(a.target,"highcharts-tracker")?(t(e.series,"click",r(a,{point:e})),b.hoverPoint&&e.firePointEvent("click",a)):(r(a,this.getCoordinates(a)),b.isInsidePlot(a.chartX-c,a.chartY-d)&&t(b,"click",a)))},setDOMEvents:function(){var b=this,e=b.chart.container,d=e.ownerDocument;e.onmousedown=function(a){b.onContainerMouseDown(a)},e.onmousemove=function(a){b.onContainerMouseMove(a)},e.onclick=function(a){b.onContainerClick(a)},C(e,"mouseleave",b.onContainerMouseLeave),1===a.chartCount&&C(d,"mouseup",b.onDocumentMouseUp),a.hasTouch&&(e.ontouchstart=function(a){b.onContainerTouchStart(a)},e.ontouchmove=function(a){b.onContainerTouchMove(a)},1===a.chartCount&&C(d,"touchend",b.onDocumentTouchEnd))},destroy:function(){var e=this,d=this.chart.container.ownerDocument;e.unDocMouseMove&&e.unDocMouseMove(),b(e.chart.container,"mouseleave",e.onContainerMouseLeave),a.chartCount||(b(d,"mouseup",e.onDocumentMouseUp),a.hasTouch&&b(d,"touchend",e.onDocumentTouchEnd)),clearInterval(e.tooltipTimeout),a.objectEach(e,function(a,b){e[b]=null})}}}(M),function(a){var C=a.charts,A=a.each,F=a.extend,E=a.map,m=a.noop,f=a.pick;F(a.Pointer.prototype,{pinchTranslate:function(a,f,m,t,g,d){this.zoomHor&&this.pinchTranslateDirection(!0,a,f,m,t,g,d),this.zoomVert&&this.pinchTranslateDirection(!1,a,f,m,t,g,d)},pinchTranslateDirection:function(a,f,m,t,g,d,k,b){var c,G,w,e=this.chart,v=a?"x":"y",l=a?"X":"Y",n="chart"+l,r=a?"width":"height",u=e["plot"+(a?"Left":"Top")],q=b||1,B=e.inverted,K=e.bounds[a?"h":"v"],p=1===f.length,z=f[0][n],I=m[0][n],L=!p&&f[1][n],h=!p&&m[1][n];(m=function(){!p&&20<Math.abs(z-L)&&(q=b||Math.abs(I-h)/Math.abs(z-L)),G=(u-I)/q+z,c=e["plot"+(a?"Width":"Height")]/q})(),(f=G)<K.min?(f=K.min,w=!0):f+c>K.max&&(f=K.max-c,w=!0),w?(I-=.8*(I-k[v][0]),p||(h-=.8*(h-k[v][1])),m()):k[v]=[I,h],B||(d[v]=G-u,d[r]=c),d=B?1/q:q,g[r]=c,g[v]=f,t[B?a?"scaleY":"scaleX":"scale"+l]=q,t["translate"+l]=d*u+(I-d*z)},pinch:function(a){var l=this,u=l.chart,t=l.pinchDown,g=a.touches,d=g.length,k=l.lastValidTouch,b=l.hasZoom,e=l.selectionMarker,v={},y=1===d&&(l.inClass(a.target,"highcharts-tracker")&&u.runTrackerClick||l.runChartClick),n={};1<d&&(l.initiated=!0),b&&l.initiated&&!y&&a.preventDefault(),E(g,function(a){return l.normalize(a)}),"touchstart"===a.type?(A(g,function(a,b){t[b]={chartX:a.chartX,chartY:a.chartY}}),k.x=[t[0].chartX,t[1]&&t[1].chartX],k.y=[t[0].chartY,t[1]&&t[1].chartY],A(u.axes,function(a){if(a.zoomEnabled){var b=u.bounds[a.horiz?"h":"v"],e=a.minPixelPadding,d=a.toPixels(f(a.options.min,a.dataMin)),g=a.toPixels(f(a.options.max,a.dataMax)),k=Math.max(d,g);b.min=Math.min(a.pos,Math.min(d,g)-e),b.max=Math.max(a.pos+a.len,k+e)}}),l.res=!0):l.followTouchMove&&1===d?this.runPointActions(l.normalize(a)):t.length&&(e||(l.selectionMarker=e=F({destroy:m,touch:!0},u.plotBox)),l.pinchTranslate(t,g,v,e,n,k),l.hasPinched=b,l.scaleGroups(v,n),l.res&&(l.res=!1,this.reset(!1,0)))},touch:function(l,m){var t,r=this.chart;r.index!==a.hoverChartIndex&&this.onContainerMouseLeave({relatedTarget:!0}),a.hoverChartIndex=r.index,1===l.touches.length?(l=this.normalize(l),r.isInsidePlot(l.chartX-r.plotLeft,l.chartY-r.plotTop)&&!r.openMenu?(m&&this.runPointActions(l),"touchmove"===l.type&&(t=!!(m=this.pinchDown)[0]&&4<=Math.sqrt(Math.pow(m[0].chartX-l.chartX,2)+Math.pow(m[0].chartY-l.chartY,2))),f(t,!0)&&this.pinch(l)):m&&this.reset()):2===l.touches.length&&this.pinch(l)},onContainerTouchStart:function(a){this.zoomOption(a),this.touch(a,!0)},onContainerTouchMove:function(a){this.touch(a)},onDocumentTouchEnd:function(f){C[a.hoverChartIndex]&&C[a.hoverChartIndex].pointer.drop(f)}})}(M),function(a){var C=a.addEvent,A=a.charts,F=a.css,E=a.doc,m=a.extend,f=a.noop,l=a.Pointer,r=a.removeEvent,u=a.win,t=a.wrap;if(!a.hasTouch&&(u.PointerEvent||u.MSPointerEvent)){var g={},d=!!u.PointerEvent,k=function(){var b=[];return b.item=function(a){return this[a]},a.objectEach(g,function(a){b.push({pageX:a.pageX,pageY:a.pageY,target:a.target})}),b},b=function(b,d,g,n){"touch"!==b.pointerType&&b.pointerType!==b.MSPOINTER_TYPE_TOUCH||!A[a.hoverChartIndex]||(n(b),(n=A[a.hoverChartIndex].pointer)[d]({type:g,target:b.currentTarget,preventDefault:f,touches:k()}))};m(l.prototype,{onContainerPointerDown:function(a){b(a,"onContainerTouchStart","touchstart",function(a){g[a.pointerId]={pageX:a.pageX,pageY:a.pageY,target:a.currentTarget}})},onContainerPointerMove:function(a){b(a,"onContainerTouchMove","touchmove",function(a){g[a.pointerId]={pageX:a.pageX,pageY:a.pageY},g[a.pointerId].target||(g[a.pointerId].target=a.currentTarget)})},onDocumentPointerUp:function(a){b(a,"onDocumentTouchEnd","touchend",function(a){delete g[a.pointerId]})},batchMSEvents:function(a){a(this.chart.container,d?"pointerdown":"MSPointerDown",this.onContainerPointerDown),a(this.chart.container,d?"pointermove":"MSPointerMove",this.onContainerPointerMove),a(E,d?"pointerup":"MSPointerUp",this.onDocumentPointerUp)}}),t(l.prototype,"init",function(a,b,d){a.call(this,b,d),this.hasZoom&&F(b.container,{"-ms-touch-action":"none","touch-action":"none"})}),t(l.prototype,"setDOMEvents",function(a){a.apply(this),(this.hasZoom||this.followTouchMove)&&this.batchMSEvents(C)}),t(l.prototype,"destroy",function(a){this.batchMSEvents(r),a.call(this)})}}(M),function(a){var C=a.addEvent,A=a.css,F=a.discardElement,E=a.defined,m=a.each,f=a.isFirefox,l=a.marginNames,r=a.merge,u=a.pick,t=a.setAnimation,g=a.stableSort,d=a.win,k=a.wrap;a.Legend=function(a,e){this.init(a,e)},a.Legend.prototype={init:function(a,e){this.chart=a,this.setOptions(e),e.enabled&&(this.render(),C(this.chart,"endResize",function(){this.legend.positionCheckboxes()}))},setOptions:function(a){var b=u(a.padding,8);this.options=a,this.itemStyle=a.itemStyle,this.itemHiddenStyle=r(this.itemStyle,a.itemHiddenStyle),this.itemMarginTop=a.itemMarginTop||0,this.padding=b,this.initialItemY=b-5,this.itemHeight=this.maxItemWidth=0,this.symbolWidth=u(a.symbolWidth,16),this.pages=[]},update:function(a,e){var b=this.chart;this.setOptions(r(!0,this.options,a)),this.destroy(),b.isDirtyLegend=b.isDirtyBox=!0,u(e,!0)&&b.redraw()},colorizeItem:function(a,e){a.legendGroup[e?"removeClass":"addClass"]("highcharts-legend-item-hidden");var b=this.options,d=a.legendItem,g=a.legendLine,f=a.legendSymbol,k=this.itemHiddenStyle.color,c=(b=e?b.itemStyle.color:k,e&&a.color||k),l=a.options&&a.options.marker,q={fill:c};d&&d.css({fill:b,color:b}),g&&g.attr({stroke:c}),f&&(l&&f.isMarker&&(q=a.pointAttribs(),e||(q.stroke=q.fill=k)),f.attr(q))},positionItem:function(a){var d=(b=this.options).symbolPadding,b=!b.rtl,f=(g=a._legendItemPos)[0],g=g[1],k=a.checkbox;(a=a.legendGroup)&&a.element&&a.translate(b?f:this.legendWidth-f-2*d-4,g),k&&(k.x=f,k.y=g)},destroyItem:function(a){var b=a.checkbox;m(["legendItem","legendLine","legendSymbol","legendGroup"],function(b){a[b]&&(a[b]=a[b].destroy())}),b&&F(a.checkbox)},destroy:function(){function a(a){this[a]&&(this[a]=this[a].destroy())}m(this.getAllItems(),function(b){m(["legendItem","legendGroup"],a,b)}),m("clipRect up down pager nav box title group".split(" "),a,this),this.display=null},positionCheckboxes:function(a){var d,b=this.group&&this.group.alignAttr,g=this.clipHeight||this.legendHeight,f=this.titleHeight;b&&(d=b.translateY,m(this.allItems,function(e){var c,k=e.checkbox;k&&(c=d+f+k.y+(a||0)+3,A(k,{left:b.translateX+e.checkboxOffset+k.x-20+"px",top:c+"px",display:d-6<c&&c<d+g-6?"":"none"}))}))},renderTitle:function(){var a=this.options,e=this.padding,d=a.title,g=0;d.text&&(this.title||(this.title=this.chart.renderer.label(d.text,e-3,e-4,null,null,null,a.useHTML,null,"legend-title").attr({zIndex:1}).css(d.style).add(this.group)),g=(a=this.title.getBBox()).height,this.offsetWidth=a.width,this.contentGroup.attr({translateY:g})),this.titleHeight=g},setText:function(b){var e=this.options;b.legendItem.attr({text:e.labelFormat?a.format(e.labelFormat,b):e.labelFormatter.call(b)})},renderItem:function(a){var b=this.chart,d=b.renderer,g=this.options,f="horizontal"===g.layout,k=this.symbolWidth,l=g.symbolPadding,c=this.itemStyle,m=this.itemHiddenStyle,q=this.padding,B=f?u(g.itemDistance,20):0,t=!g.rtl,p=g.width,z=g.itemMarginBottom||0,I=this.itemMarginTop,L=a.legendItem,h=!a.series,w=!h&&a.series.drawLegendSymbol?a.series:a,P=w.options,H=this.createCheckboxForItem&&P&&P.showCheckbox,O=(P=k+l+B+(H?20:0),g.useHTML),A=a.options.className;L||(a.legendGroup=d.g("legend-item").addClass("highcharts-"+w.type+"-series highcharts-color-"+a.colorIndex+(A?" "+A:"")+(h?" highcharts-series-"+a.index:"")).attr({zIndex:1}).add(this.scrollGroup),a.legendItem=L=d.text("",t?k+l:-l,this.baseline||0,O).css(r(a.visible?c:m)).attr({align:t?"left":"right",zIndex:2}).add(a.legendGroup),this.baseline||(k=c.fontSize,this.fontMetrics=d.fontMetrics(k,L),this.baseline=this.fontMetrics.f+3+I,L.attr("y",this.baseline)),this.symbolHeight=g.symbolHeight||this.fontMetrics.f,w.drawLegendSymbol(this,a),this.setItemEvents&&this.setItemEvents(a,L,O),H&&this.createCheckboxForItem(a)),this.colorizeItem(a,a.visible),c.width||L.css({width:(g.itemWidth||g.width||b.spacingBox.width)-P}),this.setText(a),d=L.getBBox(),c=a.checkboxOffset=g.itemWidth||a.legendItemWidth||d.width+P,this.itemHeight=d=Math.round(a.legendItemHeight||d.height||this.symbolHeight),f&&this.itemX-q+c>(p||b.spacingBox.width-2*q-g.x)&&(this.itemX=q,this.itemY+=I+this.lastLineHeight+z,this.lastLineHeight=0),this.maxItemWidth=Math.max(this.maxItemWidth,c),this.lastItemY=I+this.itemY+z,this.lastLineHeight=Math.max(d,this.lastLineHeight),a._legendItemPos=[this.itemX,this.itemY],f?this.itemX+=c:(this.itemY+=I+d+z,this.lastLineHeight=d),this.offsetWidth=p||Math.max((f?this.itemX-q-(a.checkbox?0:B):c)+q,this.offsetWidth)},getAllItems:function(){var a=[];return m(this.chart.series,function(b){var e=b&&b.options;b&&u(e.showInLegend,!E(e.linkedTo)&&void 0,!0)&&(a=a.concat(b.legendItems||("point"===e.legendType?b.data:b)))}),a},adjustMargins:function(a,e){var b=this.chart,d=this.options,g=d.align.charAt(0)+d.verticalAlign.charAt(0)+d.layout.charAt(0);d.floating||m([/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/],function(f,k){f.test(g)&&!E(a[k])&&(b[l[k]]=Math.max(b[l[k]],b.legend[(k+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][k]*d[k%2?"x":"y"]+u(d.margin,12)+e[k]))})},render:function(){var k,l,t,c,a=this,e=a.chart,d=e.renderer,f=a.group,u=a.box,q=a.options,B=a.padding;a.itemX=B,a.itemY=a.initialItemY,a.offsetWidth=0,a.lastItemY=0,f||(a.group=f=d.g("legend").attr({zIndex:7}).add(),a.contentGroup=d.g().attr({zIndex:1}).add(f),a.scrollGroup=d.g().add(a.contentGroup)),a.renderTitle(),k=a.getAllItems(),g(k,function(a,b){return(a.options&&a.options.legendIndex||0)-(b.options&&b.options.legendIndex||0)}),q.reversed&&k.reverse(),a.allItems=k,a.display=l=!!k.length,a.lastLineHeight=0,m(k,function(b){a.renderItem(b)}),t=(q.width||a.offsetWidth)+B,c=a.lastItemY+a.lastLineHeight+a.titleHeight,c=a.handleOverflow(c),c+=B,u||(a.box=u=d.rect().addClass("highcharts-legend-box").attr({r:q.borderRadius}).add(f),u.isNew=!0),u.attr({stroke:q.borderColor,"stroke-width":q.borderWidth||0,fill:q.backgroundColor||"none"}).shadow(q.shadow),0<t&&0<c&&(u[u.isNew?"attr":"animate"](u.crisp({x:0,y:0,width:t,height:c},u.strokeWidth())),u.isNew=!1),u[l?"show":"hide"](),a.legendWidth=t,a.legendHeight=c,m(k,function(b){a.positionItem(b)}),l&&f.align(r(q,{width:t,height:c}),!0,"spacingBox"),e.isResizing||this.positionCheckboxes()},handleOverflow:function(a){var c,I,b=this,g=(d=this.chart).renderer,f=this.options,k=f.y,l=this.padding,d=d.spacingBox.height+("top"===f.verticalAlign?-k:k)-l,r=(k=f.maxHeight,this.clipRect),q=f.navigation,B=u(q.animation,!0),t=q.arrowSize||12,p=this.nav,z=this.pages,L=this.allItems,h=function(a){"number"==typeof a?r.attr({height:a}):r&&(b.clipRect=r.destroy(),b.contentGroup.clip()),b.contentGroup.div&&(b.contentGroup.div.style.clip=a?"rect("+l+"px,9999px,"+(l+a)+"px,0)":"auto")};return"horizontal"!==f.layout||"middle"===f.verticalAlign||f.floating||(d/=2),k&&(d=Math.min(d,k)),z.length=0,d<a&&!1!==q.enabled?(this.clipHeight=c=Math.max(d-20-this.titleHeight-l,0),this.currentPage=u(this.currentPage,1),this.fullHeight=a,m(L,function(a,b){var e=a._legendItemPos[1];a=Math.round(a.legendItem.getBBox().height);var d=z.length;(!d||e-z[d-1]>c&&(I||e)!==z[d-1])&&(z.push(I||e),d++),b===L.length-1&&e+a-z[d-1]>c&&z.push(e),e!==I&&(I=e)}),r||(r=b.clipRect=g.clipRect(0,l,9999,0),b.contentGroup.clip(r)),h(c),p||(this.nav=p=g.g().attr({zIndex:1}).add(this.group),this.up=g.symbol("triangle",0,0,t,t).on("click",function(){b.scroll(-1,B)}).add(p),this.pager=g.text("",15,10).addClass("highcharts-legend-navigation").css(q.style).add(p),this.down=g.symbol("triangle-down",0,0,t,t).on("click",function(){b.scroll(1,B)}).add(p)),b.scroll(0),a=d):p&&(h(),this.nav=p.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),a},scroll:function(a,e){var b=this.pages,d=b.length;a=this.currentPage+a;var g=this.clipHeight,f=this.options.navigation,k=this.pager,c=this.padding;d<a&&(a=d),0<a&&(void 0!==e&&t(e,this.chart),this.nav.attr({translateX:c,translateY:g+this.padding+7+this.titleHeight,visibility:"visible"}),this.up.attr({class:1===a?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"}),k.attr({text:a+"/"+d}),this.down.attr({x:18+this.pager.getBBox().width,class:a===d?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"}),this.up.attr({fill:1===a?f.inactiveColor:f.activeColor}).css({cursor:1===a?"default":"pointer"}),this.down.attr({fill:a===d?f.inactiveColor:f.activeColor}).css({cursor:a===d?"default":"pointer"}),e=-b[a-1]+this.initialItemY,this.scrollGroup.animate({translateY:e}),this.currentPage=a,this.positionCheckboxes(e))}},a.LegendSymbolMixin={drawRectangle:function(a,e){var b=a.symbolHeight,d=a.options.squareSymbol;e.legendSymbol=this.chart.renderer.rect(d?(a.symbolWidth-b)/2:0,a.baseline-b+1,d?b:a.symbolWidth,b,u(a.options.symbolRadius,b/2)).addClass("highcharts-point").attr({zIndex:3}).add(e.legendGroup)},drawLineMarker:function(a){var m,b=this.options,d=b.marker,g=a.symbolWidth,f=a.symbolHeight,k=f/2,l=this.chart.renderer,c=this.legendGroup;a=a.baseline-Math.round(.3*a.fontMetrics.b),m={"stroke-width":b.lineWidth||0},b.dashStyle&&(m.dashstyle=b.dashStyle),this.legendLine=l.path(["M",0,a,"L",g,a]).addClass("highcharts-graph").attr(m).add(c),d&&!1!==d.enabled&&(b=Math.min(u(d.radius,k),k),0===this.symbol.indexOf("url")&&(d=r(d,{width:f,height:f}),b=0),this.legendSymbol=d=l.symbol(this.symbol,g/2-b,a-b,2*b,2*b,d).addClass("highcharts-point").add(c),d.isMarker=!0)}},(/Trident\/7\.0/.test(d.navigator.userAgent)||f)&&k(a.Legend.prototype,"positionItem",function(a,e){var b=this,d=function(){e._legendItemPos&&a.call(b,e)};d(),setTimeout(d)})}(M),function(a){var C=a.addEvent,A=a.animate,F=a.animObject,E=a.attr,m=a.doc,f=a.Axis,l=a.createElement,r=a.defaultOptions,u=a.discardElement,t=a.charts,g=a.css,d=a.defined,k=a.each,b=a.extend,e=a.find,v=a.fireEvent,y=a.getStyle,n=a.grep,D=a.isNumber,J=a.isObject,c=a.isString,G=a.Legend,q=a.marginNames,B=a.merge,K=a.objectEach,p=a.Pointer,z=a.pick,I=a.pInt,L=a.removeEvent,h=a.seriesTypes,w=a.splat,P=a.svg,H=a.syncTimeout,O=a.win,Q=a.Renderer,R=a.Chart=function(){this.getArgs.apply(this,arguments)};a.chart=function(a,b,c){return new R(a,b,c)},b(R.prototype,{callbacks:[],getArgs:function(){var a=[].slice.call(arguments);(c(a[0])||a[0].nodeName)&&(this.renderTo=a.shift()),this.init(a[0],a[1])},init:function(b,c){var e,d,h=b.series,p=b.plotOptions||{};for(d in b.series=null,(e=B(r,b)).plotOptions)e.plotOptions[d].tooltip=p[d]&&B(p[d].tooltip)||void 0;e.tooltip.userOptions=b.chart&&b.chart.forExport&&b.tooltip.userOptions||b.tooltip,e.series=b.series=h,this.userOptions=b,d=(b=e.chart).events,this.margin=[],this.spacing=[],this.bounds={h:{},v:{}},this.callback=c,this.isResizing=0,this.options=e,this.axes=[],this.series=[],this.hasCartesianSeries=b.showAxes;var g=this;g.index=t.length,t.push(g),a.chartCount++,d&&K(d,function(a,b){C(g,b,a)}),g.xAxis=[],g.yAxis=[],g.pointCount=g.colorCounter=g.symbolCounter=0,g.firstRender()},initSeries:function(b){var c=this.options.chart;return(c=h[b.type||c.type||c.defaultSeriesType])||a.error(17,!0),(c=new c).init(this,b),c},orderSeries:function(a){var b=this.series;for(a=a||0;a<b.length;a++)b[a]&&(b[a].index=a,b[a].name=b[a].name||"Series "+(b[a].index+1))},isInsidePlot:function(a,b,c){var e=c?b:a;return a=c?a:b,0<=e&&e<=this.plotWidth&&0<=a&&a<=this.plotHeight},redraw:function(c){var f,q,z,e=this.axes,d=this.series,h=this.pointer,p=this.legend,g=this.isDirtyLegend,l=this.hasCartesianSeries,n=this.isDirtyBox,m=this.renderer,x=m.isHidden(),w=[];for(this.setResponsive&&this.setResponsive(!1),a.setAnimation(c,this),x&&this.temporaryDisplay(),this.layOutTitles(),c=d.length;c--;)if((z=d[c]).options.stacking&&(f=!0,z.isDirty)){q=!0;break}if(q)for(c=d.length;c--;)(z=d[c]).options.stacking&&(z.isDirty=!0);k(d,function(a){a.isDirty&&"point"===a.options.legendType&&(a.updateTotals&&a.updateTotals(),g=!0),a.isDirtyData&&v(a,"updatedData")}),g&&p.options.enabled&&(p.render(),this.isDirtyLegend=!1),f&&this.getStacks(),l&&k(e,function(a){a.updateNames(),a.setScale()}),this.getMargins(),l&&(k(e,function(a){a.isDirty&&(n=!0)}),k(e,function(a){var c=a.min+","+a.max;a.extKey!==c&&(a.extKey=c,w.push(function(){v(a,"afterSetExtremes",b(a.eventArgs,a.getExtremes())),delete a.eventArgs})),(n||f)&&a.redraw()})),n&&this.drawChartBox(),v(this,"predraw"),k(d,function(a){(n||a.isDirty)&&a.visible&&a.redraw(),a.isDirtyData=!1}),h&&h.reset(!0),m.draw(),v(this,"redraw"),v(this,"render"),x&&this.temporaryDisplay(!0),k(w,function(a){a.call()})},get:function(a){function b(b){return b.id===a||b.options&&b.options.id===a}var c,h,d=this.series;for(c=e(this.axes,b)||e(this.series,b),h=0;!c&&h<d.length;h++)c=e(d[h].points||[],b);return c},getAxes:function(){var a=this,c=(b=this.options).xAxis=w(b.xAxis||{}),b=b.yAxis=w(b.yAxis||{});k(c,function(a,b){a.index=b,a.isX=!0}),k(b,function(a,b){a.index=b}),c=c.concat(b),k(c,function(b){new f(a,b)})},getSelectedPoints:function(){var a=[];return k(this.series,function(b){a=a.concat(n(b.data||[],function(a){return a.selected}))}),a},getSelectedSeries:function(){return n(this.series,function(a){return a.selected})},setTitle:function(a,b,c){var h,e=this,d=e.options;h=d.title=B({style:{color:"#333333",fontSize:d.isStock?"16px":"18px"}},d.title,a),d=d.subtitle=B({style:{color:"#666666"}},d.subtitle,b),k([["title",a,h],["subtitle",b,d]],function(a,b){var c=a[0],d=e[c],h=a[1];a=a[2],d&&h&&(e[c]=d=d.destroy()),a&&a.text&&!d&&(e[c]=e.renderer.text(a.text,0,0,a.useHTML).attr({align:a.align,class:"highcharts-"+c,zIndex:a.zIndex||4}).add(),e[c].update=function(a){e.setTitle(!b&&a,b&&a)},e[c].css(a.style))}),e.layOutTitles(c)},layOutTitles:function(a){var e,c=0,d=this.renderer,h=this.spacingBox;k(["title","subtitle"],function(a){var g,e=this[a],p=this.options[a];a="title"===a?-3:p.verticalAlign?0:c+2,e&&(g=p.style.fontSize,g=d.fontMetrics(g,e).b,e.css({width:(p.width||h.width+p.widthAdjust)+"px"}).align(b({y:a+g},p),!1,"spacingBox"),p.floating||p.verticalAlign||(c=Math.ceil(c+e.getBBox(p.useHTML).height)))},this),e=this.titleOffset!==c,this.titleOffset=c,!this.isDirtyBox&&e&&(this.isDirtyBox=e,this.hasRendered&&z(a,!0)&&this.isDirtyBox&&this.redraw())},getChartSize:function(){var c=(b=this.options.chart).width,b=b.height,e=this.renderTo;d(c)||(this.containerWidth=y(e,"width")),d(b)||(this.containerHeight=y(e,"height")),this.chartWidth=Math.max(0,c||this.containerWidth||600),this.chartHeight=Math.max(0,a.relativeLength(b,this.chartWidth)||this.containerHeight||400)},temporaryDisplay:function(b){var c=this.renderTo;if(b)for(;c&&c.style;)c.hcOrigStyle&&(a.css(c,c.hcOrigStyle),delete c.hcOrigStyle),c.hcOrigDetached&&(m.body.removeChild(c),c.hcOrigDetached=!1),c=c.parentNode;else for(;c&&c.style&&(m.body.contains(c)||(c.hcOrigDetached=!0,m.body.appendChild(c)),("none"===y(c,"display",!1)||c.hcOricDetached)&&(c.hcOrigStyle={display:c.style.display,height:c.style.height,overflow:c.style.overflow},b={display:"block",overflow:"hidden"},c!==this.renderTo&&(b.height=0),a.css(c,b),c.offsetWidth||c.style.setProperty("display","block","important")),(c=c.parentNode)!==m.body););},setClassName:function(a){this.container.className="highcharts-container "+(a||"")},getContainer:function(){var e,p,g,d=this.options,h=d.chart;e=this.renderTo;var k,f=a.uniqueKey();e||(this.renderTo=e=h.renderTo),c(e)&&(this.renderTo=e=m.getElementById(e)),e||a.error(13,!0),p=I(E(e,"data-highcharts-chart")),D(p)&&t[p]&&t[p].hasRendered&&t[p].destroy(),E(e,"data-highcharts-chart",this.index),e.innerHTML="",h.skipClone||e.offsetWidth||this.temporaryDisplay(),this.getChartSize(),p=this.chartWidth,g=this.chartHeight,k=b({position:"relative",overflow:"hidden",width:p+"px",height:g+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)"},h.style),this.container=e=l("div",{id:f},k,e),this._cursor=e.style.cursor,this.renderer=new(a[h.renderer]||Q)(e,p,g,null,h.forExport,d.exporting&&d.exporting.allowHTML),this.setClassName(h.className),this.renderer.setStyle(h.style),this.renderer.chartIndex=this.index},getMargins:function(a){var b=this.spacing,c=this.margin,e=this.titleOffset;this.resetMargins(),e&&!d(c[0])&&(this.plotTop=Math.max(this.plotTop,e+this.options.title.margin+b[0])),this.legend.display&&this.legend.adjustMargins(c,b),this.extraMargin&&(this[this.extraMargin.type]=(this[this.extraMargin.type]||0)+this.extraMargin.value),this.extraTopMargin&&(this.plotTop+=this.extraTopMargin),a||this.getAxisMargins()},getAxisMargins:function(){var a=this,b=a.axisOffset=[0,0,0,0],c=a.margin;a.hasCartesianSeries&&k(a.axes,function(a){a.visible&&a.getOffset()}),k(q,function(e,h){d(c[h])||(a[e]+=b[h])}),a.setChartSize()},reflow:function(a){var b=this,c=b.options.chart,e=b.renderTo,h=d(c.width)&&d(c.height),p=c.width||y(e,"width");c=c.height||y(e,"height"),e=a?a.target:O;h||b.isPrinting||!p||!c||e!==O&&e!==m||(p===b.containerWidth&&c===b.containerHeight||(clearTimeout(b.reflowTimeout),b.reflowTimeout=H(function(){b.container&&b.setSize(void 0,void 0,!1)},a?100:0)),b.containerWidth=p,b.containerHeight=c)},initReflow:function(){var b,a=this;b=C(O,"resize",function(b){a.reflow(b)}),C(a,"destroy",b)},setSize:function(b,c,e){var d=this,h=d.renderer;d.isResizing+=1,a.setAnimation(e,d),d.oldChartHeight=d.chartHeight,d.oldChartWidth=d.chartWidth,void 0!==b&&(d.options.chart.width=b),void 0!==c&&(d.options.chart.height=c),d.getChartSize(),((b=h.globalAnimation)?A:g)(d.container,{width:d.chartWidth+"px",height:d.chartHeight+"px"},b),d.setChartSize(!0),h.setSize(d.chartWidth,d.chartHeight,e),k(d.axes,function(a){a.isDirty=!0,a.setScale()}),d.isDirtyLegend=!0,d.isDirtyBox=!0,d.layOutTitles(),d.getMargins(),d.redraw(e),d.oldChartHeight=null,v(d,"resize"),H(function(){d&&v(d,"endResize",null,function(){--d.isResizing})},F(b).duration)},setChartSize:function(a){function b(a){return a=f[a]||0,Math.max(m||a,a)/2}var q,n,l,z,m,c=this.inverted,e=this.renderer,d=this.chartWidth,h=this.chartHeight,p=this.options.chart,g=this.spacing,f=this.clipOffset;this.plotLeft=q=Math.round(this.plotLeft),this.plotTop=n=Math.round(this.plotTop),this.plotWidth=l=Math.max(0,Math.round(d-q-this.marginRight)),this.plotHeight=z=Math.max(0,Math.round(h-n-this.marginBottom)),this.plotSizeX=c?z:l,this.plotSizeY=c?l:z,this.plotBorderWidth=p.plotBorderWidth||0,this.spacingBox=e.spacingBox={x:g[3],y:g[0],width:d-g[3]-g[1],height:h-g[0]-g[2]},this.plotBox=e.plotBox={x:q,y:n,width:l,height:z},m=2*Math.floor(this.plotBorderWidth/2),c=Math.ceil(b(3)),e=Math.ceil(b(0)),this.clipBox={x:c,y:e,width:Math.floor(this.plotSizeX-b(1)-c),height:Math.max(0,Math.floor(this.plotSizeY-b(2)-e))},a||k(this.axes,function(a){a.setAxisSize(),a.setAxisTranslation()})},resetMargins:function(){var a=this,b=a.options.chart;k(["margin","spacing"],function(c){var e=b[c],d=J(e)?e:[e,e,e,e];k(["Top","Right","Bottom","Left"],function(e,h){a[c][h]=z(b[c+e],d[h])})}),k(q,function(b,c){a[b]=z(a.margin[c],a.spacing[c])}),a.axisOffset=[0,0,0,0],a.clipOffset=[]},drawChartBox:function(){var g,n,a=this.options.chart,b=this.renderer,c=this.chartWidth,e=this.chartHeight,d=this.chartBackground,h=this.plotBackground,p=this.plotBorder,f=this.plotBGImage,k=a.backgroundColor,q=a.plotBackgroundColor,l=a.plotBackgroundImage,z=this.plotLeft,m=this.plotTop,w=this.plotWidth,I=this.plotHeight,v=this.plotBox,r=this.clipRect,B=this.clipBox,y="animate";d||(this.chartBackground=d=b.rect().addClass("highcharts-background").add(),y="attr"),n=(g=a.borderWidth||0)+(a.shadow?8:0),k={fill:k||"none"},(g||d["stroke-width"])&&(k.stroke=a.borderColor,k["stroke-width"]=g),d.attr(k).shadow(a.shadow),d[y]({x:n/2,y:n/2,width:c-n-g%2,height:e-n-g%2,r:a.borderRadius}),y="animate",h||(y="attr",this.plotBackground=h=b.rect().addClass("highcharts-plot-background").add()),h[y](v),h.attr({fill:q||"none"}).shadow(a.plotShadow),l&&(f?f.animate(v):this.plotBGImage=b.image(l,z,m,w,I).add()),r?r.animate({width:B.width,height:B.height}):this.clipRect=b.clipRect(B),y="animate",p||(y="attr",this.plotBorder=p=b.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),p.attr({stroke:a.plotBorderColor,"stroke-width":a.plotBorderWidth||0,fill:"none"}),p[y](p.crisp({x:z,y:m,width:w,height:I},-p.strokeWidth())),this.isDirtyBox=!1},propFromSeries:function(){var c,d,p,a=this,b=a.options.chart,e=a.options.series;k(["inverted","angular","polar"],function(g){for(c=h[b.type||b.defaultSeriesType],p=b[g]||c&&c.prototype[g],d=e&&e.length;!p&&d--;)(c=h[e[d].type])&&c.prototype[g]&&(p=!0);a[g]=p})},linkSeries:function(){var a=this,b=a.series;k(b,function(a){a.linkedSeries.length=0}),k(b,function(b){var e=b.options.linkedTo;c(e)&&(e=":previous"===e?a.series[b.index-1]:a.get(e))&&e.linkedParent!==b&&(e.linkedSeries.push(b),b.linkedParent=e,b.visible=z(b.options.visible,e.options.visible,b.visible))})},renderSeries:function(){k(this.series,function(a){a.translate(),a.render()})},renderLabels:function(){var a=this,c=a.options.labels;c.items&&k(c.items,function(e){var d=b(c.style,e.style),h=I(d.left)+a.plotLeft,p=I(d.top)+a.plotTop+12;delete d.left,delete d.top,a.renderer.text(e.html,h,p).attr({zIndex:2}).css(d).add()})},render:function(){var e,d,h,a=this.axes,b=this.renderer,c=this.options;this.setTitle(),this.legend=new G(this,c.legend),this.getStacks&&this.getStacks(),this.getMargins(!0),this.setChartSize(),c=this.plotWidth,e=this.plotHeight-=21,k(a,function(a){a.setScale()}),this.getAxisMargins(),d=1.1<c/this.plotWidth,h=1.05<e/this.plotHeight,(d||h)&&(k(a,function(a){(a.horiz&&d||!a.horiz&&h)&&a.setTickInterval(!0)}),this.getMargins()),this.drawChartBox(),this.hasCartesianSeries&&k(a,function(a){a.visible&&a.render()}),this.seriesGroup||(this.seriesGroup=b.g("series-group").attr({zIndex:3}).add()),this.renderSeries(),this.renderLabels(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0},addCredits:function(a){var b=this;(a=B(!0,this.options.credits,a)).enabled&&!this.credits&&(this.credits=this.renderer.text(a.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){a.href&&(O.location.href=a.href)}).attr({align:a.position.align,zIndex:8}).css(a.style).add().align(a.position),this.credits.update=function(a){b.credits=b.credits.destroy(),b.addCredits(a)})},destroy:function(){var h,b=this,c=b.axes,e=b.series,d=b.container,p=d&&d.parentNode;for(v(b,"destroy"),b.renderer.forExport?a.erase(t,b):t[b.index]=void 0,a.chartCount--,b.renderTo.removeAttribute("data-highcharts-chart"),L(b),h=c.length;h--;)c[h]=c[h].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),h=e.length;h--;)e[h]=e[h].destroy();k("title subtitle chartBackground plotBackground plotBGImage plotBorder seriesGroup clipRect credits pointer rangeSelector legend resetZoomButton tooltip renderer".split(" "),function(a){var c=b[a];c&&c.destroy&&(b[a]=c.destroy())}),d&&(d.innerHTML="",L(d),p&&u(d)),K(b,function(a,c){delete b[c]})},isReadyToRender:function(){var a=this;return!(!P&&O==O.top&&"complete"!==m.readyState)||(m.attachEvent("onreadystatechange",function(){m.detachEvent("onreadystatechange",a.firstRender),"complete"===m.readyState&&a.firstRender()}),!1)},firstRender:function(){var a=this,b=a.options;a.isReadyToRender()&&(a.getContainer(),v(a,"init"),a.resetMargins(),a.setChartSize(),a.propFromSeries(),a.getAxes(),k(b.series||[],function(b){a.initSeries(b)}),a.linkSeries(),v(a,"beforeRender"),p&&(a.pointer=new p(a,b)),a.render(),!a.renderer.imgCount&&a.onload&&a.onload(),a.temporaryDisplay(!0))},onload:function(){k([this.callback].concat(this.callbacks),function(a){a&&void 0!==this.index&&a.apply(this,[this])},this),v(this,"load"),v(this,"render"),d(this.index)&&!1!==this.options.chart.reflow&&this.initReflow(),this.onload=null}})}(M),function(a){var C,A=a.each,F=a.extend,E=a.erase,m=a.fireEvent,f=a.format,l=a.isArray,r=a.isNumber,u=a.pick,t=a.removeEvent;a.Point=C=function(){},a.Point.prototype={init:function(a,d,f){return this.series=a,this.color=a.color,this.applyOptions(d,f),a.options.colorByPoint?(d=a.options.colors||a.chart.options.colors,this.color=this.color||d[a.colorCounter],d=d.length,f=a.colorCounter,a.colorCounter++,a.colorCounter===d&&(a.colorCounter=0)):f=a.colorIndex,this.colorIndex=u(this.colorIndex,f),a.chart.pointCount++,this},applyOptions:function(a,d){var g=this.series,b=g.options.pointValKey||g.pointValKey;return a=C.prototype.optionsToObject.call(this,a),F(this,a),this.options=this.options?F(this.options,a):a,a.group&&delete this.group,b&&(this.y=this[b]),this.isNull=u(this.isValid&&!this.isValid(),null===this.x||!r(this.y,!0)),this.selected&&(this.state="select"),"name"in this&&void 0===d&&g.xAxis&&g.xAxis.hasNames&&(this.x=g.xAxis.nameToX(this)),void 0===this.x&&g&&(this.x=void 0===d?g.autoIncrement(this):d),this},optionsToObject:function(a){var d={},g=this.series,b=g.options.keys,e=b||g.pointArrayMap||["y"],f=e.length,m=0,n=0;if(r(a)||null===a)d[e[0]]=a;else if(l(a))for(!b&&a.length>f&&("string"===(g=typeof a[0])?d.name=a[0]:"number"===g&&(d.x=a[0]),m++);n<f;)b&&void 0===a[m]||(d[e[n]]=a[m]),m++,n++;else"object"==typeof a&&((d=a).dataLabels&&(g._hasPointLabels=!0),a.marker&&(g._hasPointMarkers=!0));return d},getClassName:function(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")},getZone:function(){var b,d=(a=this.series).zones,a=a.zoneAxis||"y",f=0;for(b=d[f];this[a]>=b.value;)b=d[++f];return b&&b.color&&!this.options.color&&(this.color=b.color),b},destroy:function(){var f,a=this.series.chart,d=a.hoverPoints;for(f in a.pointCount--,d&&(this.setState(),E(d,this),d.length||(a.hoverPoints=null)),this===a.hoverPoint&&this.onMouseOut(),(this.graphic||this.dataLabel)&&(t(this),this.destroyElements()),this.legendItem&&a.legend.destroyItem(this),this)this[f]=null},destroyElements:function(){for(var d,a=["graphic","dataLabel","dataLabelUpper","connector","shadowGroup"],f=6;f--;)this[d=a[f]]&&(this[d]=this[d].destroy())},getLabelConfig:function(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}},tooltipFormatter:function(a){var d=this.series,g=d.tooltipOptions,b=u(g.valueDecimals,""),e=g.valuePrefix||"",l=g.valueSuffix||"";return A(d.pointArrayMap||["y"],function(d){d="{point."+d,(e||l)&&(a=a.replace(d+"}",e+d+"}"+l)),a=a.replace(d+"}",d+":,."+b+"f}")}),f(a,{point:this,series:this.series})},firePointEvent:function(a,d,f){var b=this,e=this.series.options;(e.point.events[a]||b.options&&b.options.events&&b.options.events[a])&&this.importEvents(),"click"===a&&e.allowPointSelect&&(f=function(a){b.select&&b.select(null,a.ctrlKey||a.metaKey||a.shiftKey)}),m(this,a,d,f)},visible:!0}}(M),function(a){var C=a.addEvent,A=a.animObject,F=a.arrayMax,E=a.arrayMin,m=a.correctFloat,f=a.Date,l=a.defaultOptions,r=a.defaultPlotOptions,u=a.defined,t=a.each,g=a.erase,d=a.extend,k=a.fireEvent,b=a.grep,e=a.isArray,v=a.isNumber,y=a.isString,n=a.merge,D=a.objectEach,J=a.pick,c=a.removeEvent,G=a.splat,q=a.SVGElement,B=a.syncTimeout,K=a.win;a.Series=a.seriesType("line",null,{lineWidth:2,allowPointSelect:!1,showCheckbox:!1,animation:{duration:1e3},events:{},marker:{lineWidth:0,lineColor:"#ffffff",radius:4,states:{hover:{animation:{duration:50},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{align:"center",formatter:function(){return null===this.y?"":a.numberFormat(this.y,-1)},style:{fontSize:"11px",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0,padding:5},cropThreshold:300,pointRange:0,softThreshold:!0,states:{hover:{animation:{duration:50},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{marker:{}}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"},{isCartesian:!0,pointClass:a.Point,sorted:!0,requireSorting:!0,directTouch:!1,axisTypes:["xAxis","yAxis"],colorCounter:0,parallelArrays:["x","y"],coll:"series",init:function(a,b){var e,p,c=this,h=a.series;c.chart=a,c.options=b=c.setOptions(b),c.linkedSeries=[],c.bindAxes(),d(c,{name:b.name,state:"",visible:!1!==b.visible,selected:!0===b.selected}),e=b.events,D(e,function(a,b){C(c,b,a)}),(e&&e.click||b.point&&b.point.events&&b.point.events.click||b.allowPointSelect)&&(a.runTrackerClick=!0),c.getColor(),c.getSymbol(),t(c.parallelArrays,function(a){c[a+"Data"]=[]}),c.setData(b.data,!1),c.isCartesian&&(a.hasCartesianSeries=!0),h.length&&(p=h[h.length-1]),c._i=J(p&&p._i,-1)+1,a.orderSeries(this.insert(h))},insert:function(a){var c,b=this.options.index;if(v(b)){for(c=a.length;c--;)if(b>=J(a[c].options.index,a[c]._i)){a.splice(c+1,0,this);break}-1===c&&a.unshift(this),c+=1}else a.push(this);return J(c,a.length-1)},bindAxes:function(){var d,b=this,c=b.options,e=b.chart;t(b.axisTypes||[],function(h){t(e[h],function(a){d=a.options,(c[h]===d.index||void 0!==c[h]&&c[h]===d.id||void 0===c[h]&&0===d.index)&&(b.insert(a.series),(b[h]=a).isDirty=!0)}),b[h]||b.optionalAxis===h||a.error(18,!0)})},updateParallelArrays:function(a,b){var c=a.series,e=arguments,d=v(b)?function(e){var d="y"===e&&c.toYData?c.toYData(a):a[e];c[e+"Data"][b]=d}:function(a){Array.prototype[b].apply(c[a+"Data"],Array.prototype.slice.call(e,2))};t(c.parallelArrays,d)},autoIncrement:function(){var c,a=this.options,b=this.xIncrement,e=a.pointIntervalUnit;b=J(b,a.pointStart,0);return this.pointInterval=c=J(this.pointInterval,a.pointInterval,1),e&&(a=new f(b),"day"===e?a=+a[f.hcSetDate](a[f.hcGetDate]()+c):"month"===e?a=+a[f.hcSetMonth](a[f.hcGetMonth]()+c):"year"===e&&(a=+a[f.hcSetFullYear](a[f.hcGetFullYear]()+c)),c=a-b),this.xIncrement=b+c,b},setOptions:function(a){var b=this.chart,c=b.options,e=c.plotOptions,d=(b.userOptions||{}).plotOptions||{},p=e[this.type];return this.userOptions=a,b=n(p,e.series,a),this.tooltipOptions=n(l.tooltip,l.plotOptions.series&&l.plotOptions.series.tooltip,l.plotOptions[this.type].tooltip,c.tooltip.userOptions,e.series&&e.series.tooltip,e[this.type].tooltip,a.tooltip),this.stickyTracking=J(a.stickyTracking,d[this.type]&&d[this.type].stickyTracking,d.series&&d.series.stickyTracking,!(!this.tooltipOptions.shared||this.noSharedTooltip)||b.stickyTracking),null===p.marker&&delete b.marker,this.zoneAxis=b.zoneAxis,a=this.zones=(b.zones||[]).slice(),!b.negativeColor&&!b.negativeFillColor||b.zones||a.push({value:b[this.zoneAxis+"Threshold"]||b.threshold||0,className:"highcharts-negative",color:b.negativeColor,fillColor:b.negativeFillColor}),a.length&&u(a[a.length-1].value)&&a.push({color:this.color,fillColor:this.fillColor}),b},getCyclic:function(a,b,c){var e,d=this.chart,p=this.userOptions,f=a+"Index",g=a+"Counter",k=c?c.length:J(d.options.chart[a+"Count"],d[a+"Count"]);b||(e=J(p[f],p["_"+f]),u(e)||(d.series.length||(d[g]=0),p["_"+f]=e=d[g]%k,d[g]+=1),c&&(b=c[e])),void 0!==e&&(this[f]=e),this[a]=b},getColor:function(){this.options.colorByPoint?this.options.color=null:this.getCyclic("color",this.options.color||r[this.type].color,this.chart.options.colors)},getSymbol:function(){this.getCyclic("symbol",this.options.marker.symbol,this.chart.options.symbols)},drawLegendSymbol:a.LegendSymbolMixin.drawLineMarker,setData:function(b,c,d,f){var k,h=this,p=h.points,g=p&&p.length||0,q=h.options,l=h.chart,n=null,m=h.xAxis,z=q.turboThreshold,r=this.xData,B=this.yData,I=(k=h.pointArrayMap)&&k.length;if(k=(b=b||[]).length,c=J(c,!0),!1!==f&&k&&g===k&&!h.cropped&&!h.hasGroupedData&&h.visible)t(b,function(a,b){p[b].update&&a!==q.data[b]&&p[b].update(a,!1,null,!1)});else{if(h.xIncrement=null,h.colorCounter=0,t(this.parallelArrays,function(a){h[a+"Data"].length=0}),z&&z<k){for(d=0;null===n&&d<k;)n=b[d],d++;if(v(n))for(d=0;d<k;d++)r[d]=this.autoIncrement(),B[d]=b[d];else if(e(n))if(I)for(d=0;d<k;d++)n=b[d],r[d]=n[0],B[d]=n.slice(1,I+1);else for(d=0;d<k;d++)n=b[d],r[d]=n[0],B[d]=n[1];else a.error(12)}else for(d=0;d<k;d++)void 0!==b[d]&&(n={series:h},h.pointClass.prototype.applyOptions.apply(n,[b[d]]),h.updateParallelArrays(n,d));for(y(B[0])&&a.error(14,!0),h.data=[],h.options.data=h.userOptions.data=b,d=g;d--;)p[d]&&p[d].destroy&&p[d].destroy();m&&(m.minRange=m.userMinRange),h.isDirty=l.isDirtyBox=!0,h.isDirtyData=!!p,d=!1}"point"===q.legendType&&(this.processData(),this.generatePoints()),c&&l.redraw(d)},processData:function(b){var h,c=this.xData,e=this.yData,d=c.length;h=0;var p,f,k,g=this.xAxis;k=(q=this.options).cropThreshold;var v,r,n=this.getExtremesFromAll||q.getExtremesFromAll,l=this.isCartesian,q=g&&g.val2lin,m=g&&g.isLog;if(l&&!this.isDirty&&!g.isDirty&&!this.yAxis.isDirty&&!b)return!1;for(g&&(v=(b=g.getExtremes()).min,r=b.max),l&&this.sorted&&!n&&(!k||k<d||this.forceCrop)&&(c[d-1]<v||c[0]>r?(c=[],e=[]):(c[0]<v||c[d-1]>r)&&(c=(h=this.cropData(this.xData,this.yData,v,r)).xData,e=h.yData,h=h.start,p=!0)),k=c.length||1;--k;)0<(d=m?q(c[k])-q(c[k-1]):c[k]-c[k-1])&&(void 0===f||d<f)?f=d:d<0&&this.requireSorting&&a.error(15);this.cropped=p,this.cropStart=h,this.processedXData=c,this.processedYData=e,this.closestPointRange=f},cropData:function(a,b,c,e){var k,d=a.length,p=0,g=d,f=J(this.cropShoulder,1);for(k=0;k<d;k++)if(a[k]>=c){p=Math.max(0,k-f);break}for(c=k;c<d;c++)if(a[c]>e){g=c+f;break}return{xData:a.slice(p,g),yData:b.slice(p,g),start:p,end:g}},generatePoints:function(){var e,n,m,r,b=(a=this.options).data,c=this.data,d=this.processedXData,g=this.processedYData,f=this.pointClass,k=d.length,q=this.cropStart||0,l=this.hasGroupedData,a=a.keys,v=[];for(c||l||((c=[]).length=b.length,c=this.data=c),a&&l&&(this.options.keys=!1),r=0;r<k;r++)n=q+r,l?(m=(new f).init(this,[d[r]].concat(G(g[r])))).dataGroup=this.groupMap[r]:(m=c[n])||void 0===b[n]||(c[n]=m=(new f).init(this,b[n],d[r])),m&&(m.index=n,v[r]=m);if(this.options.keys=a,c&&(k!==(e=c.length)||l))for(r=0;r<e;r++)r!==q||l||(r+=k),c[r]&&(c[r].destroyElements(),c[r].plotX=void 0);this.data=c,this.points=v},getExtremes:function(a){var d,k,q,n,l,b=this.yAxis,c=this.processedXData,h=[],p=0,g=(d=this.xAxis.getExtremes()).min,f=d.max;for(d=(a=a||this.stackedYData||this.processedYData||[]).length,l=0;l<d;l++)if(q=c[l],n=a[l],k=(v(n,!0)||e(n))&&(!b.positiveValuesOnly||n.length||0<n),q=this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||(c[l]||q)>=g&&(c[l]||q)<=f,k&&q)if(k=n.length)for(;k--;)null!==n[k]&&(h[p++]=n[k]);else h[p++]=n;this.dataMin=E(h),this.dataMax=F(h)},translate:function(){this.processedXData||this.processData(),this.generatePoints();var B,y,t,G,a=this.options,b=a.stacking,c=this.xAxis,e=c.categories,d=this.yAxis,g=this.points,f=g.length,k=!!this.modifyValue,q=a.pointPlacement,n="between"===q||v(q),l=a.threshold,r=a.startFromThreshold?l:0,D=Number.MAX_VALUE;for("between"===q&&(q=.5),v(q)&&(q*=J(a.pointRange||c.pointRange)),a=0;a<f;a++){var K=g[a],A=K.x,C=K.y;y=K.low;var F,E=b&&d.stacks[(this.negStacks&&C<(r?0:l)?"-":"")+this.stackKey];d.positiveValuesOnly&&null!==C&&C<=0&&(K.isNull=!0),K.plotX=B=m(Math.min(Math.max(-1e5,c.translate(A,0,0,0,1,q,"flags"===this.type)),1e5)),b&&this.visible&&!K.isNull&&E&&E[A]&&(G=this.getStackIndicator(G,A,this.index),y=(C=(F=E[A]).points[G.key])[0],C=C[1],y===r&&G.key===E[A].base&&(y=J(l,d.min)),d.positiveValuesOnly&&y<=0&&(y=null),K.total=K.stackTotal=F.total,K.percentage=F.total&&K.y/F.total*100,K.stackY=C,F.setOffset(this.pointXOffset||0,this.barW||0)),K.yBottom=u(y)?d.translate(y,0,1,0,1):null,k&&(C=this.modifyValue(C,K)),K.plotY=y="number"==typeof C&&1/0!==C?Math.min(Math.max(-1e5,d.translate(C,0,1,0,1)),1e5):void 0,K.isInside=void 0!==y&&0<=y&&y<=d.len&&0<=B&&B<=c.len,K.clientX=n?m(c.translate(A,0,0,0,1,q)):B,K.negative=K.y<(l||0),K.category=e&&void 0!==e[K.x]?e[K.x]:K.x,K.isNull||(void 0!==t&&(D=Math.min(D,Math.abs(B-t))),t=B),K.zone=this.zones.length&&K.getZone()}this.closestPointRangePx=D},getValidPoints:function(a,c){var e=this.chart;return b(a||this.points||[],function(a){return!(c&&!e.isInsidePlot(a.plotX,a.plotY,e.inverted))&&!a.isNull})},setClip:function(a){var b=this.chart,c=this.options,e=b.renderer,d=b.inverted,p=this.clipBox,g=p||b.clipBox,f=this.sharedClipKey||["_sharedClip",a&&a.duration,a&&a.easing,g.height,c.xAxis,c.yAxis].join(),k=b[f],q=b[f+"m"];k||(a&&(g.width=0,b[f+"m"]=q=e.clipRect(-99,d?-b.plotLeft:-b.plotTop,99,d?b.chartWidth:b.chartHeight)),b[f]=k=e.clipRect(g),k.count={length:0}),a&&!k.count[this.index]&&(k.count[this.index]=!0,k.count.length+=1),!1!==c.clip&&(this.group.clip(a||p?k:b.clipRect),this.markerGroup.clip(q),this.sharedClipKey=f),a||(k.count[this.index]&&(delete k.count[this.index],--k.count.length),0===k.count.length&&f&&b[f]&&(p||(b[f]=b[f].destroy()),b[f+"m"]&&(b[f+"m"]=b[f+"m"].destroy())))},animate:function(a){var e,b=this.chart,c=A(this.options.animation);a?this.setClip(c):((a=b[e=this.sharedClipKey])&&a.animate({width:b.plotSizeX},c),b[e+"m"]&&b[e+"m"].animate({width:b.plotSizeX+99},c),this.animate=null)},afterAnimate:function(){this.setClip(),k(this,"afterAnimate"),this.finishedAnimating=!0},drawPoints:function(){var c,e,d,f,k,q,n,l,a=this.points,b=this.chart,g=this.options.marker,m=this[this.specialGroup]||this.markerGroup,r=J(g.enabled,!!this.xAxis.isRadial||null,this.closestPointRangePx>=2*g.radius);if(!1!==g.enabled||this._hasPointMarkers)for(e=0;e<a.length;e++)c=(d=a[e]).plotY,f=d.graphic,k=d.marker||{},q=!!d.marker,n=r&&void 0===k.enabled||k.enabled,l=d.isInside,n&&v(c)&&null!==d.y?(c=J(k.symbol,this.symbol),d.hasImage=0===c.indexOf("url"),n=this.markerAttribs(d,d.selected&&"select"),f?f[l?"show":"hide"](!0).animate(n):l&&(0<n.width||d.hasImage)&&(d.graphic=f=b.renderer.symbol(c,n.x,n.y,n.width,n.height,q?k:g).add(m)),f&&f.attr(this.pointAttribs(d,d.selected&&"select")),f&&f.addClass(d.getClassName(),!0)):f&&(d.graphic=f.destroy())},markerAttribs:function(a,b){var c=this.options.marker,e=a.marker||{},d=J(e.radius,c.radius);return b&&(c=c.states[b],b=e.states&&e.states[b],d=J(b&&b.radius,c&&c.radius,d+(c&&c.radiusPlus||0))),a.hasImage&&(d=0),a={x:Math.floor(a.plotX)-d,y:a.plotY-d},d&&(a.width=a.height=2*d),a},pointAttribs:function(a,b){var c=this.options.marker,d=(e=a&&a.options)&&e.marker||{},f=this.color,g=e&&e.color,p=a&&a.color,e=J(d.lineWidth,c.lineWidth);return a=a&&a.zone&&a.zone.color,f=g||a||p||f,a=d.fillColor||c.fillColor||f,f=d.lineColor||c.lineColor||f,b&&(c=c.states[b],b=d.states&&d.states[b]||{},e=J(b.lineWidth,c.lineWidth,e+J(b.lineWidthPlus,c.lineWidthPlus,0)),a=b.fillColor||c.fillColor||a,f=b.lineColor||c.lineColor||f),{stroke:f,"stroke-width":e,fill:a}},destroy:function(){var h,n,l,a=this,b=a.chart,e=/AppleWebKit\/533/.test(K.navigator.userAgent),f=a.data||[];for(k(a,"destroy"),c(a),t(a.axisTypes||[],function(b){(l=a[b])&&l.series&&(g(l.series,a),l.isDirty=l.forceRedraw=!0)}),a.legendItem&&a.chart.legend.destroyItem(a),h=f.length;h--;)(n=f[h])&&n.destroy&&n.destroy();a.points=null,clearTimeout(a.animationTimeout),D(a,function(a,b){a instanceof q&&!a.survive&&a[e&&"group"===b?"hide":"destroy"]()}),b.hoverSeries===a&&(b.hoverSeries=null),g(b.series,a),b.orderSeries(),D(a,function(b,c){delete a[c]})},getGraphPath:function(a,b,c){var g,q,e=this,d=e.options,f=d.step,p=[],k=[];return(g=(a=a||e.points).reversed)&&a.reverse(),(f={right:1,center:2}[f]||f&&3)&&g&&(f=4-f),!d.connectNulls||b||c||(a=this.getValidPoints(a)),t(a,function(h,g){var n=h.plotX,l=h.plotY,m=a[g-1];(h.leftCliff||m&&m.rightCliff)&&!c&&(q=!0),q=h.isNull&&!u(b)&&0<g?!d.connectNulls:!(!h.isNull||b)||(0===g||q?g=["M",h.plotX,h.plotY]:e.getPointSpline?g=e.getPointSpline(a,h,g):f?(g=1===f?["L",m.plotX,l]:2===f?["L",(m.plotX+n)/2,m.plotY,"L",(m.plotX+n)/2,l]:["L",n,m.plotY]).push("L",n,l):g=["L",n,l],k.push(h.x),f&&k.push(h.x),p.push.apply(p,g),!1)}),p.xMap=k,e.graphPath=p},drawGraph:function(){var a=this,b=this.options,c=(this.gappedPath||this.getGraphPath).call(this),e=[["graph","highcharts-graph",b.lineColor||this.color,b.dashStyle]];t(this.zones,function(c,d){e.push(["zone-graph-"+d,"highcharts-graph highcharts-zone-graph-"+d+" "+(c.className||""),c.color||a.color,c.dashStyle||b.dashStyle])}),t(e,function(e,d){var h=e[0],f=a[h];f?(f.endX=c.xMap,f.animate({d:c})):c.length&&(a[h]=a.chart.renderer.path(c).addClass(e[1]).attr({zIndex:1}).add(a.group),f={stroke:e[2],"stroke-width":b.lineWidth,fill:a.fillGraph&&a.color||"none"},e[3]?f.dashstyle=e[3]:"square"!==b.linecap&&(f["stroke-linecap"]=f["stroke-linejoin"]="round"),f=a[h].attr(f).shadow(d<2&&b.shadow)),f&&(f.startX=c.xMap,f.isArea=c.isArea)})},applyZones:function(){var d,f,k,r,v,y,u,G,D,a=this,b=this.chart,c=b.renderer,e=this.zones,g=this.clips||[],q=this.graph,n=this.area,l=Math.max(b.chartWidth,b.chartHeight),m=this[(this.zoneAxis||"y")+"Axis"],B=b.inverted,K=!1;e.length&&(q||n)&&m&&void 0!==m.min&&(v=m.reversed,y=m.horiz,q&&q.hide(),n&&n.hide(),r=m.getExtremes(),t(e,function(e,h){d=v?y?b.plotWidth:0:y?0:m.toPixels(r.min),d=Math.min(Math.max(J(f,d),0),l),f=Math.min(Math.max(Math.round(m.toPixels(J(e.value,r.max),!0)),0),l),K&&(d=f=m.toPixels(r.max)),u=Math.abs(d-f),G=Math.min(d,f),D=Math.max(d,f),m.isXAxis?(k={x:B?D:G,y:0,width:u,height:l},y||(k.x=b.plotHeight-k.x)):(k={x:0,y:B?D:G,width:l,height:u},y&&(k.y=b.plotWidth-k.y)),B&&c.isVML&&(k=m.isXAxis?{x:0,y:v?G:D,height:k.width,width:b.chartWidth}:{x:k.y-b.plotLeft-b.spacingBox.x,y:0,width:k.height,height:b.chartHeight}),g[h]?g[h].animate(k):(g[h]=c.clipRect(k),q&&a["zone-graph-"+h].clip(g[h]),n&&a["zone-area-"+h].clip(g[h])),K=e.value>r.max}),this.clips=g)},invertGroups:function(a){function b(){t(["group","markerGroup"],function(b){c[b]&&(e.renderer.isVML&&c[b].attr({width:c.yAxis.len,height:c.xAxis.len}),c[b].width=c.yAxis.len,c[b].height=c.xAxis.len,c[b].invert(a))})}var d,c=this,e=c.chart;c.xAxis&&(d=C(e,"resize",b),C(c,"destroy",d),b(),c.invertGroups=b)},plotGroup:function(a,b,c,e,d){var h=this[a],f=!h;return f&&(this[a]=h=this.chart.renderer.g().attr({zIndex:e||.1}).add(d)),h.addClass("highcharts-"+b+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series highcharts-color-"+this.colorIndex+" "+(this.options.className||""),!0),h.attr({visibility:c})[f?"attr":"animate"](this.getPlotBox()),h},getPlotBox:function(){var a=this.chart,b=this.xAxis,c=this.yAxis;return a.inverted&&(b=c,c=this.xAxis),{translateX:b?b.left:a.plotLeft,translateY:c?c.top:a.plotTop,scaleX:1,scaleY:1}},render:function(){var c,a=this,b=a.chart,e=a.options,d=!!a.animate&&b.renderer.isSVG&&A(e.animation).duration,f=a.visible?"inherit":"hidden",g=e.zIndex,k=a.hasRendered,q=b.seriesGroup,n=b.inverted;c=a.plotGroup("group","series",f,g,q),a.markerGroup=a.plotGroup("markerGroup","markers",f,g,q),d&&a.animate(!0),c.inverted=!!a.isCartesian&&n,a.drawGraph&&(a.drawGraph(),a.applyZones()),a.drawDataLabels&&a.drawDataLabels(),a.visible&&a.drawPoints(),a.drawTracker&&!1!==a.options.enableMouseTracking&&a.drawTracker(),a.invertGroups(n),!1===e.clip||a.sharedClipKey||k||c.clip(b.clipRect),d&&a.animate(),k||(a.animationTimeout=B(function(){a.afterAnimate()},d)),a.isDirty=!1,a.hasRendered=!0},redraw:function(){var a=this.chart,b=this.isDirty||this.isDirtyData,c=this.group,e=this.xAxis,d=this.yAxis;c&&(a.inverted&&c.attr({width:a.plotWidth,height:a.plotHeight}),c.animate({translateX:J(e&&e.left,a.plotLeft),translateY:J(d&&d.top,a.plotTop)})),this.translate(),this.render(),b&&delete this.kdTree},kdAxisArray:["clientX","plotY"],searchPoint:function(a,b){var c=this.xAxis,e=this.yAxis,d=this.chart.inverted;return this.searchKDTree({clientX:d?c.len-a.chartY+c.pos:a.chartX-c.pos,plotY:d?e.len-a.chartX+e.pos:a.chartY-e.pos},b)},buildKDTree:function(){this.buildingKdTree=!0;var b=this,c=-1<b.options.findNearestPointBy.indexOf("y")?2:1;delete b.kdTree,B(function(){b.kdTree=function a(c,e,d){var h,f;if(f=c&&c.length)return h=b.kdAxisArray[e%d],c.sort(function(a,b){return a[h]-b[h]}),{point:c[f=Math.floor(f/2)],left:a(c.slice(0,f),e+1,d),right:a(c.slice(f+1),e+1,d)}}(b.getValidPoints(null,!b.directTouch),c,c),b.buildingKdTree=!1},b.options.kdNow?0:1)},searchKDTree:function(a,b){var e=this,d=this.kdAxisArray[0],f=this.kdAxisArray[1],g=b?"distX":"dist";if(b=-1<e.options.findNearestPointBy.indexOf("y")?2:1,this.kdTree||this.buildingKdTree||this.buildKDTree(),this.kdTree)return function c(a,b,h,k){var n,l,p=b.point,q=e.kdAxisArray[h%k],m=p;return n=((l=u(a[d])&&u(p[d])?Math.pow(a[d]-p[d],2):null)||0)+((n=u(a[f])&&u(p[f])?Math.pow(a[f]-p[f],2):null)||0),p.dist=u(n)?Math.sqrt(n):Number.MAX_VALUE,p.distX=u(l)?Math.sqrt(l):Number.MAX_VALUE,l=(q=a[q]-p[q])<0?"right":"left",b[n=q<0?"left":"right"]&&(m=(n=c(a,b[n],h+1,k))[g]<m[g]?n:p),b[l]&&Math.sqrt(q*q)<m[g]&&(m=(a=c(a,b[l],h+1,k))[g]<m[g]?a:m),m}(a,this.kdTree,b,b)}})}(M),function(a){var C=a.Axis,A=a.Chart,F=a.correctFloat,E=a.defined,m=a.destroyObjectProperties,f=a.each,l=a.format,r=a.objectEach,u=a.pick,t=a.Series;a.StackItem=function(a,d,f,b,e){var g=a.chart.inverted;this.axis=a,this.isNegative=f,this.options=d,this.x=b,this.total=null,this.points={},this.stack=e,this.rightCliff=this.leftCliff=0,this.alignOptions={align:d.align||(g?f?"left":"right":"center"),verticalAlign:d.verticalAlign||(g?"middle":f?"bottom":"top"),y:u(d.y,g?4:f?14:-6),x:u(d.x,g?f?-6:6:0)},this.textAlign=d.textAlign||(g?f?"right":"left":"center")},a.StackItem.prototype={destroy:function(){m(this,this.axis)},render:function(a){var d=this.options,f=(f=d.format)?l(f,this):d.formatter.call(this);this.label?this.label.attr({text:f,visibility:"hidden"}):this.label=this.axis.chart.renderer.text(f,null,null,d.useHTML).css(d.style).attr({align:this.textAlign,rotation:d.rotation,visibility:"hidden"}).add(a)},setOffset:function(a,d){var b=(f=this.axis).chart,e=f.translate(f.usePercentage?100:this.total,0,0,0,1),f=f.translate(0);f=Math.abs(e-f);a=b.xAxis[0].translate(this.x)+a,e=this.getStackBox(b,this,a,e,d,f),(d=this.label)&&(d.align(this.alignOptions,null,e),e=d.alignAttr,d[!1===this.options.crop||b.isInsidePlot(e.x,e.y)?"show":"hide"](!0))},getStackBox:function(a,d,f,b,e,l){var g=d.axis.reversed,k=a.inverted;return a=a.plotHeight,d=d.isNegative&&!g||!d.isNegative&&g,{x:k?d?b:b-l:f,y:k?a-f-e:d?a-b-l:a-b,width:k?l:e,height:k?e:l}}},A.prototype.getStacks=function(){var a=this;f(a.yAxis,function(a){a.stacks&&a.hasVisibleSeries&&(a.oldStacks=a.stacks)}),f(a.series,function(d){!d.options.stacking||!0!==d.visible&&!1!==a.options.chart.ignoreHiddenSeries||(d.stackKey=d.type+u(d.options.stack,""))})},C.prototype.buildStacks=function(){var b,a=this.series,d=u(this.options.reversedStacks,!0),f=a.length;if(!this.isXAxis){for(this.usePercentage=!1,b=f;b--;)a[d?b:f-b-1].setStackedPoints();if(this.usePercentage)for(b=0;b<f;b++)a[b].setPercentStacks()}},C.prototype.renderStackTotals=function(){var a=this.chart,d=a.renderer,f=this.stacks,b=this.stackTotalGroup;b||(this.stackTotalGroup=b=d.g("stack-labels").attr({visibility:"visible",zIndex:6}).add()),b.translate(a.plotLeft,a.plotTop),r(f,function(a){r(a,function(a){a.render(b)})})},C.prototype.resetStacks=function(){var a=this,d=a.stacks;a.isXAxis||r(d,function(d){r(d,function(b,e){b.touched<a.stacksTouched?(b.destroy(),delete d[e]):(b.total=null,b.cum=null)})})},C.prototype.cleanStacks=function(){var a;this.isXAxis||(this.oldStacks&&(a=this.stacks=this.oldStacks),r(a,function(a){r(a,function(a){a.cum=a.total})}))},t.prototype.setStackedPoints=function(){if(this.options.stacking&&(!0===this.visible||!1===this.chart.options.chart.ignoreHiddenSeries)){var K,p,z,I,A,h,w,f=this.processedXData,d=this.processedYData,k=[],b=d.length,l=(e=this.options).threshold,m=e.startFromThreshold?l:0,n=e.stack,e=e.stacking,r=this.stackKey,t="-"+r,c=this.negStacks,G=this.yAxis,q=G.stacks,B=G.oldStacks;for(G.stacksTouched+=1,A=0;A<b;A++)h=f[A],w=d[A],I=(K=this.getStackIndicator(K,h,this.index)).key,q[z=(p=c&&w<(m?0:l))?t:r]||(q[z]={}),q[z][h]||(B[z]&&B[z][h]?(q[z][h]=B[z][h],q[z][h].total=null):q[z][h]=new a.StackItem(G,G.options.stackLabels,p,h,n)),z=q[z][h],null!==w&&(z.points[I]=z.points[this.index]=[u(z.cum,m)],E(z.cum)||(z.base=I),z.touched=G.stacksTouched,0<K.index&&!1===this.singleStacks&&(z.points[I][0]=z.points[this.index+","+h+",0"][0])),"percent"===e?(p=p?r:t,c&&q[p]&&q[p][h]?(p=q[p][h],z.total=p.total=Math.max(p.total,z.total)+Math.abs(w)||0):z.total=F(z.total+(Math.abs(w)||0))):z.total=F(z.total+(w||0)),z.cum=u(z.cum,m)+(w||0),null!==w&&(z.points[I].push(z.cum),k[A]=z.cum);"percent"===e&&(G.usePercentage=!0),this.stackedYData=k,G.oldStacks={}}},t.prototype.setPercentStacks=function(){var e,a=this,d=a.stackKey,k=a.yAxis.stacks,b=a.processedXData;f([d,"-"+d],function(d){for(var g,l,f=b.length;f--;)g=b[f],e=a.getStackIndicator(e,g,a.index,d),(g=(l=k[d]&&k[d][g])&&l.points[e.key])&&(l=l.total?100/l.total:0,g[0]=F(g[0]*l),g[1]=F(g[1]*l),a.stackedYData[f]=g[1])})},t.prototype.getStackIndicator=function(a,d,f,b){return!E(a)||a.x!==d||b&&a.key!==b?a={x:d,index:0,key:b}:a.index++,a.key=[f,d,a.index].join(),a}}(M),function(a){var C=a.addEvent,A=a.animate,F=a.Axis,E=a.createElement,m=a.css,f=a.defined,l=a.each,r=a.erase,u=a.extend,t=a.fireEvent,g=a.inArray,d=a.isNumber,k=a.isObject,b=a.isArray,e=a.merge,v=a.objectEach,y=a.pick,n=a.Point,D=a.Series,J=a.seriesTypes,c=a.setAnimation,G=a.splat;u(a.Chart.prototype,{addSeries:function(a,b,c){var e,d=this;return a&&(b=y(b,!0),t(d,"addSeries",{options:a},function(){e=d.initSeries(a),d.isDirtyLegend=!0,d.linkSeries(),b&&d.redraw(c)})),e},addAxis:function(a,b,c,d){var f=b?"xAxis":"yAxis",g=this.options;return a=e(a,{index:this[f].length,isX:b}),b=new F(this,a),g[f]=G(g[f]||{}),g[f].push(a),y(c,!0)&&this.redraw(d),b},showLoading:function(a){var b=this,c=b.options,e=b.loadingDiv,d=c.loading,f=function(){e&&m(e,{left:b.plotLeft+"px",top:b.plotTop+"px",width:b.plotWidth+"px",height:b.plotHeight+"px"})};e||(b.loadingDiv=e=E("div",{className:"highcharts-loading highcharts-loading-hidden"},null,b.container),b.loadingSpan=E("span",{className:"highcharts-loading-inner"},null,e),C(b,"redraw",f)),e.className="highcharts-loading",b.loadingSpan.innerHTML=a||c.lang.loading,m(e,u(d.style,{zIndex:10})),m(b.loadingSpan,d.labelStyle),b.loadingShown||(m(e,{opacity:0,display:""}),A(e,{opacity:d.style.opacity||.5},{duration:d.showDuration||0})),b.loadingShown=!0,f()},hideLoading:function(){var a=this.options,b=this.loadingDiv;b&&(b.className="highcharts-loading highcharts-loading-hidden",A(b,{opacity:0},{duration:a.loading.hideDuration||100,complete:function(){m(b,{display:"none"})}})),this.loadingShown=!1},propsRequireDirtyBox:"backgroundColor borderColor borderWidth margin marginTop marginRight marginBottom marginLeft spacing spacingTop spacingRight spacingBottom spacingLeft borderRadius plotBackgroundColor plotBackgroundImage plotBorderColor plotBorderWidth plotShadow shadow".split(" "),propsRequireUpdateSeries:"chart.inverted chart.polar chart.ignoreHiddenSeries chart.type colors plotOptions tooltip".split(" "),update:function(a,b,c){var m,h,k=this,n={credits:"addCredits",title:"setTitle",subtitle:"setSubtitle"},q=a.chart,r=[];q&&(e(!0,k.options.chart,q),"className"in q&&k.setClassName(q.className),("inverted"in q||"polar"in q)&&(k.propFromSeries(),m=!0),"alignTicks"in q&&(m=!0),v(q,function(a,b){-1!==g("chart."+b,k.propsRequireUpdateSeries)&&(h=!0),-1!==g(b,k.propsRequireDirtyBox)&&(k.isDirtyBox=!0)}),"style"in q&&k.renderer.setStyle(q.style)),a.colors&&(this.options.colors=a.colors),a.plotOptions&&e(!0,this.options.plotOptions,a.plotOptions),v(a,function(a,b){k[b]&&"function"==typeof k[b].update?k[b].update(a,!1):"function"==typeof k[n[b]]&&k[n[b]](a),"chart"!==b&&-1!==g(b,k.propsRequireUpdateSeries)&&(h=!0)}),l("xAxis yAxis zAxis series colorAxis pane".split(" "),function(b){a[b]&&(l(G(a[b]),function(a,e){(e=f(a.id)&&k.get(a.id)||k[b][e])&&e.coll===b&&(e.update(a,!1),c&&(e.touched=!0)),!e&&c&&("series"===b?k.addSeries(a,!1).touched=!0:"xAxis"!==b&&"yAxis"!==b||(k.addAxis(a,"xAxis"===b,!1).touched=!0))}),c&&l(k[b],function(a){a.touched?delete a.touched:r.push(a)}))}),l(r,function(a){a.remove(!1)}),m&&l(k.axes,function(a){a.update({},!1)}),h&&l(k.series,function(a){a.update({},!1)}),a.loading&&e(!0,k.options.loading,a.loading),m=q&&q.width,q=q&&q.height,d(m)&&m!==k.chartWidth||d(q)&&q!==k.chartHeight?k.setSize(m,q):y(b,!0)&&k.redraw()},setSubtitle:function(a){this.setTitle(void 0,a)}}),u(n.prototype,{update:function(a,b,c,e){function d(){f.applyOptions(a),null===f.y&&h&&(f.graphic=h.destroy()),k(a,!0)&&(h&&h.element&&a&&a.marker&&void 0!==a.marker.symbol&&(f.graphic=h.destroy()),a&&a.dataLabels&&f.dataLabel&&(f.dataLabel=f.dataLabel.destroy())),p=f.index,g.updateParallelArrays(f,p),q.data[p]=k(q.data[p],!0)||k(a,!0)?f.options:a,g.isDirty=g.isDirtyData=!0,!g.fixedBox&&g.hasCartesianSeries&&(l.isDirtyBox=!0),"point"===q.legendType&&(l.isDirtyLegend=!0),b&&l.redraw(c)}var p,f=this,g=f.series,h=f.graphic,l=g.chart,q=g.options;b=y(b,!0),!1===e?d():f.firePointEvent("update",{options:a},d)},remove:function(a,b){this.series.removePoint(g(this,this.series.data),a,b)}}),u(D.prototype,{addPoint:function(a,b,c,e){var p,l,n,m,d=this.options,f=this.data,g=this.chart,h=(h=this.xAxis)&&h.hasNames&&h.names,k=d.data,q=this.xData;if(b=y(b,!0),p={series:this},this.pointClass.prototype.applyOptions.apply(p,[a]),m=p.x,n=q.length,this.requireSorting&&m<q[n-1])for(l=!0;n&&q[n-1]>m;)n--;this.updateParallelArrays(p,"splice",n,0,0),this.updateParallelArrays(p,n),h&&p.name&&(h[m]=p.name),k.splice(n,0,a),l&&(this.data.splice(n,0,null),this.processData()),"point"===d.legendType&&this.generatePoints(),c&&(f[0]&&f[0].remove?f[0].remove(!1):(f.shift(),this.updateParallelArrays(p,"shift"),k.shift())),this.isDirtyData=this.isDirty=!0,b&&g.redraw(e)},removePoint:function(a,b,e){var d=this,f=d.data,g=f[a],k=d.points,h=d.chart,l=function(){k&&k.length===f.length&&k.splice(a,1),f.splice(a,1),d.options.data.splice(a,1),d.updateParallelArrays(g||{series:d},"splice",a,1),g&&g.destroy(),d.isDirty=!0,d.isDirtyData=!0,b&&h.redraw()};c(e,h),b=y(b,!0),g?g.firePointEvent("remove",null,l):l()},remove:function(a,b,c){function e(){d.destroy(),f.isDirtyLegend=f.isDirtyBox=!0,f.linkSeries(),y(a,!0)&&f.redraw(b)}var d=this,f=d.chart;!1!==c?t(d,"remove",null,e):e()},update:function(a,b){var n,c=this,d=c.chart,f=c.userOptions,g=c.oldType||c.type,k=a.type||f.type||d.options.chart.type,h=J[g].prototype,q=["group","markerGroup","dataLabelsGroup","navigatorSeries","baseSeries"],m=c.finishedAnimating&&{animation:!1};if(Object.keys&&"data"===Object.keys(a).toString())return this.setData(a.data,b);for(n in(k&&k!==g||void 0!==a.zIndex)&&(q.length=0),l(q,function(a){q[a]=c[a],delete c[a]}),a=e(f,m,{index:c.index,pointStart:c.xData[0]},{data:c.options.data},a),c.remove(!1,null,!1),h)c[n]=void 0;u(c,J[k||g].prototype),l(q,function(a){c[a]=q[a]}),c.init(d,a),c.oldType=g,d.linkSeries(),y(b,!0)&&d.redraw(!1)}}),u(F.prototype,{update:function(a,b){var c=this.chart;a=c.options[this.coll][this.options.index]=e(this.userOptions,a),this.destroy(!0),this.init(c,u(a,{events:void 0})),c.isDirtyBox=!0,y(b,!0)&&c.redraw()},remove:function(a){for(var c=this.chart,e=this.coll,d=this.series,f=d.length;f--;)d[f]&&d[f].remove(!1);r(c.axes,this),r(c[e],this),b(c.options[e])?c.options[e].splice(this.options.index,1):delete c.options[e],l(c[e],function(a,b){a.options.index=b}),this.destroy(),c.isDirtyBox=!0,y(a,!0)&&c.redraw()},setTitle:function(a,b){this.update({title:a},b)},setCategories:function(a,b){this.update({categories:a},b)}})}(M),function(a){var C=a.color,A=a.each,F=a.map,E=a.pick,m=a.Series;(0,a.seriesType)("area","line",{softThreshold:!1,threshold:0},{singleStacks:!1,getStackPoints:function(f){var y,D,l=[],m=[],t=this.xAxis,g=this.yAxis,d=g.stacks[this.stackKey],k={},b=this.index,e=g.series,v=e.length,n=E(g.options.reversedStacks,!0)?1:-1;if(f=f||this.points,this.options.stacking){for(D=0;D<f.length;D++)k[f[D].x]=f[D];a.objectEach(d,function(a,b){null!==a.total&&m.push(b)}),m.sort(function(a,b){return a-b}),y=F(e,function(){return this.visible}),A(m,function(a,c){var f,r,e=0;if(k[a]&&!k[a].isNull)l.push(k[a]),A([-1,1],function(e){var g=1===e?"rightNull":"leftNull",l=0,q=d[m[c+e]];if(q)for(D=b;0<=D&&D<v;)(f=q.points[D])||(D===b?k[a][g]=!0:y[D]&&(r=d[a].points[D])&&(l-=r[1]-r[0])),D+=n;k[a][1===e?"rightCliff":"leftCliff"]=l});else{for(D=b;0<=D&&D<v;){if(f=d[a].points[D]){e=f[1];break}D+=n}e=g.translate(e,0,1,0,1),l.push({isNull:!0,plotX:t.translate(a,0,0,0,1),x:a,plotY:e,yBottom:e})}})}return l},getGraphPath:function(a){var d,k,y,c,f=m.prototype.getGraphPath,t=(l=this.options).stacking,g=this.yAxis,b=[],e=[],v=this.index,n=g.stacks[this.stackKey],D=l.threshold,A=g.getThreshold(l.threshold),l=l.connectNulls||"percent"===t,G=function(c,d,f){var k=a[c];c=t&&n[k.x].points[v];var l=k[f+"Null"]||0;f=k[f+"Cliff"]||0;var q,m;k=!0;f||l?(q=(l?c[0]:c[1])+f,m=c[0]+f,k=!!l):!t&&a[d]&&a[d].isNull&&(q=m=D),void 0!==q&&(e.push({plotX:y,plotY:null===q?A:g.getThreshold(q),isNull:k,isCliff:!0}),b.push({plotX:y,plotY:null===m?A:g.getThreshold(m),doCurve:!1}))};for(a=a||this.points,t&&(a=this.getStackPoints(a)),d=0;d<a.length;d++)k=a[d].isNull,y=E(a[d].rectPlotX,a[d].plotX),c=E(a[d].yBottom,A),(!k||l)&&(l||G(d,d-1,"left"),k&&!t&&l||(e.push(a[d]),b.push({x:d,plotX:y,plotY:c})),l||G(d,d+1,"right"));return d=f.call(this,e,!0,!0),b.reversed=!0,(k=f.call(this,b,!0,!0)).length&&(k[0]="L"),k=d.concat(k),f=f.call(this,e,!1,l),k.xMap=d.xMap,this.areaPath=k,f},drawGraph:function(){this.areaPath=[],m.prototype.drawGraph.apply(this);var a=this,f=this.areaPath,u=this.options,t=[["area","highcharts-area",this.color,u.fillColor]];A(this.zones,function(f,d){t.push(["zone-area-"+d,"highcharts-area highcharts-zone-area-"+d+" "+f.className,f.color||a.color,f.fillColor||u.fillColor])}),A(t,function(g){var d=g[0],k=a[d];k?(k.endX=f.xMap,k.animate({d:f})):(k=a[d]=a.chart.renderer.path(f).addClass(g[1]).attr({fill:E(g[3],C(g[2]).setOpacity(E(u.fillOpacity,.75)).get()),zIndex:0}).add(a.group)).isArea=!0,k.startX=f.xMap,k.shiftUnit=u.step?2:1})},drawLegendSymbol:a.LegendSymbolMixin.drawRectangle})}(M),function(a){var C=a.pick;(a=a.seriesType)("spline","line",{},{getPointSpline:function(a,F,E){var r,u,t,g,m=F.plotX,f=F.plotY,l=a[E-1];if(E=a[E+1],l&&!l.isNull&&!1!==l.doCurve&&!F.isCliff&&E&&!E.isNull&&!1!==E.doCurve&&!F.isCliff){a=l.plotY,t=E.plotX;var d=0;u=(1.5*f+a)/2.5,g=(1.5*f+(E=E.plotY))/2.5,(t=(1.5*m+t)/2.5)!==(r=(1.5*m+l.plotX)/2.5)&&(d=(g-u)*(t-m)/(t-r)+f-g),g+=d,a<(u+=d)&&f<u?g=2*f-(u=Math.max(a,f)):u<a&&u<f&&(g=2*f-(u=Math.min(a,f))),E<g&&f<g?u=2*f-(g=Math.max(E,f)):g<E&&g<f&&(u=2*f-(g=Math.min(E,f))),F.rightContX=t,F.rightContY=g}return F=["C",C(l.rightContX,l.plotX),C(l.rightContY,l.plotY),C(r,m),C(u,f),m,f],l.rightContX=l.rightContY=null,F}})}(M),function(a){var C=a.seriesTypes.area.prototype;(0,a.seriesType)("areaspline","spline",a.defaultPlotOptions.area,{getStackPoints:C.getStackPoints,getGraphPath:C.getGraphPath,drawGraph:C.drawGraph,drawLegendSymbol:a.LegendSymbolMixin.drawRectangle})}(M),function(a){var C=a.animObject,A=a.color,F=a.each,E=a.extend,m=a.isNumber,f=a.merge,l=a.pick,r=a.Series,u=a.seriesType,t=a.svg;u("column","line",{borderRadius:0,crisp:!0,groupPadding:.2,marker:null,pointPadding:.1,minPointLength:0,cropThreshold:50,pointRange:null,states:{hover:{halo:!1,brightness:.1,shadow:!1},select:{color:"#cccccc",borderColor:"#000000",shadow:!1}},dataLabels:{align:null,verticalAlign:null,y:null},softThreshold:!1,startFromThreshold:!0,stickyTracking:!1,tooltip:{distance:6},threshold:0,borderColor:"#ffffff"},{cropShoulder:0,directTouch:!0,trackerGroups:["group","dataLabelsGroup"],negStacks:!0,init:function(){r.prototype.init.apply(this,arguments);var a=this,d=a.chart;d.hasRendered&&F(d.series,function(d){d.type===a.type&&(d.isDirty=!0)})},getColumnMetrics:function(){var m,a=this,d=a.options,f=a.xAxis,b=a.yAxis,e=f.reversed,r={},n=0;!1===d.grouping?n=1:F(a.chart.series,function(c){var f,e=c.options,d=c.yAxis;c.type!==a.type||!c.visible&&a.chart.options.chart.ignoreHiddenSeries||b.len!==d.len||b.pos!==d.pos||(e.stacking?(m=c.stackKey,void 0===r[m]&&(r[m]=n++),f=r[m]):!1!==e.grouping&&(f=n++),c.columnIndex=f)});var t=Math.min(Math.abs(f.transA)*(f.ordinalSlope||d.pointRange||f.closestPointRange||f.tickInterval||1),f.len),u=t*d.groupPadding,c=(t-2*u)/(n||1);d=Math.min(d.maxPointWidth||f.len,l(d.pointWidth,c*(1-2*d.pointPadding)));return a.columnMetrics={width:d,offset:(c-d)/2+(u+((a.columnIndex||0)+(e?1:0))*c-t/2)*(e?-1:1)},a.columnMetrics},crispCol:function(a,d,f,b){var e=this.chart,k=-((g=this.borderWidth)%2?.5:0),g=g%2?.5:1;return e.inverted&&e.renderer.isVML&&(g+=1),this.options.crisp&&(f=Math.round(a+f)+k,f-=a=Math.round(a)+k),b=Math.round(d+b)+g,k=Math.abs(d)<=.5&&.5<b,b-=d=Math.round(d)+g,k&&b&&(--d,b+=1),{x:a,y:d,width:f,height:b}},translate:function(){var a=this,d=a.chart,f=a.options,b=a.dense=a.closestPointRange*a.xAxis.transA<2,e=(b=a.borderWidth=l(f.borderWidth,b?0:1),a.yAxis),m=a.translatedThreshold=e.getThreshold(f.threshold),t=l(f.minPointLength,5),n=a.getColumnMetrics(),u=n.width,A=a.barW=Math.max(u,1+2*b),c=a.pointXOffset=n.offset;d.inverted&&(m-=.5),f.pointPadding&&(A=Math.ceil(A)),r.prototype.translate.apply(a),F(a.points,function(b){var v,f=l(b.yBottom,m),g=999+Math.abs(f),k=(g=Math.min(Math.max(-g,b.plotY),e.len+g),b.plotX+c),n=A,r=Math.min(g,f),y=Math.max(g,f)-r;Math.abs(y)<t&&t&&(y=t,v=!e.reversed&&!b.negative||e.reversed&&b.negative,r=Math.abs(r-m)>t?f-t:m-(v?t:0)),b.barX=k,b.pointWidth=u,b.tooltipPos=d.inverted?[e.len+e.pos-d.plotLeft-g,a.xAxis.len-k-n/2,y]:[k+n/2,g+e.pos-d.plotTop,y],b.shapeType="rect",b.shapeArgs=a.crispCol.apply(a,b.isNull?[k,m,n,0]:[k,r,n,y])})},getSymbol:a.noop,drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,drawGraph:function(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")},pointAttribs:function(a,d){var b,g=this.options;b=(e=this.pointAttrToOptions||{}).stroke||"borderColor";var l=e["stroke-width"]||"borderWidth",m=a&&a.color||this.color,n=a[b]||g[b]||this.color||m,r=a[l]||g[l]||this[l]||0,e=g.dashStyle;return a&&this.zones.length&&(m=a.getZone(),m=a.options.color||m&&m.color||this.color),d&&(d=(a=f(g.states[d],a.options.states&&a.options.states[d]||{})).brightness,m=a.color||void 0!==d&&A(m).brighten(a.brightness).get()||m,n=a[b]||n,r=a[l]||r,e=a.dashStyle||e),b={fill:m,stroke:n,"stroke-width":r},e&&(b.dashstyle=e),b},drawPoints:function(){var l,a=this,d=this.chart,k=a.options,b=d.renderer,e=k.animationLimit||250;F(a.points,function(g){var n=g.graphic;m(g.plotY)&&null!==g.y?(l=g.shapeArgs,n?n[d.pointCount<e?"animate":"attr"](f(l)):g.graphic=n=b[g.shapeType](l).add(g.group||a.group),k.borderRadius&&n.attr({r:k.borderRadius}),n.attr(a.pointAttribs(g,g.selected&&"select")).shadow(k.shadow,null,k.stacking&&!k.borderRadius),n.addClass(g.getClassName(),!0)):n&&(g.graphic=n.destroy())})},animate:function(a){var d=this,f=this.yAxis,b=d.options,e=this.chart.inverted,g={};t&&(a?(g.scaleY=.001,a=Math.min(f.pos+f.len,Math.max(f.pos,f.toPixels(b.threshold))),e?g.translateX=a-f.len:g.translateY=a,d.group.attr(g)):(g[e?"translateX":"translateY"]=f.pos,d.group.animate(g,E(C(d.options.animation),{step:function(a,b){d.group.attr({scaleY:Math.max(.001,b.pos)})}})),d.animate=null))},remove:function(){var a=this,d=a.chart;d.hasRendered&&F(d.series,function(d){d.type===a.type&&(d.isDirty=!0)}),r.prototype.remove.apply(a,arguments)}})}(M),function(a){(a=a.seriesType)("bar","column",null,{inverted:!0})}(M),function(a){var C=a.Series;(a=a.seriesType)("scatter","line",{lineWidth:0,findNearestPointBy:"xy",marker:{enabled:!0},tooltip:{headerFormat:'<span style="color:{point.color}">●</span> <span style="font-size: 0.85em"> {series.name}</span><br/>',pointFormat:"x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>"}},{sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"],takeOrdinalPosition:!1,drawGraph:function(){this.options.lineWidth&&C.prototype.drawGraph.call(this)}})}(M),function(a){var C=a.pick,A=a.relativeLength;a.CenteredSeriesMixin={getCenter:function(){var u,t,a=this.options,E=this.chart,m=2*(a.slicedOffset||0),f=E.plotWidth-2*m,l=(E=E.plotHeight-2*m,a.center),r=(l=[C(l[0],"50%"),C(l[1],"50%"),a.size||"100%",a.innerSize||0],Math.min(f,E));for(u=0;u<4;++u)t=l[u],a=u<2||2===u&&/%$/.test(t),l[u]=A(t,[f,E,r,l[2]][u])+(a?m:0);return l[3]>l[2]&&(l[3]=l[2]),l}}}(M),function(a){var C=a.addEvent,A=a.defined,F=a.each,E=a.extend,m=a.inArray,f=a.noop,l=a.pick,r=a.Point,u=a.Series,t=a.seriesType,g=a.setAnimation;t("pie","line",{center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},x:0},ignoreHiddenPoint:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,states:{hover:{brightness:.1,shadow:!1}}},{isCartesian:!1,requireSorting:!1,directTouch:!0,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],axisTypes:[],pointAttribs:a.seriesTypes.column.prototype.pointAttribs,animate:function(a){var d=this,b=d.points,e=d.startAngleRad;a||(F(b,function(a){var b=a.graphic,f=a.shapeArgs;b&&(b.attr({r:a.startR||d.center[3]/2,start:e,end:e}),b.animate({r:f.r,start:f.start,end:f.end},d.options.animation))}),d.animate=null)},updateTotals:function(){var a,g,f=0,b=this.points,e=b.length,l=this.options.ignoreHiddenPoint;for(a=0;a<e;a++)g=b[a],f+=l&&!g.visible?0:g.isNull?0:g.y;for(this.total=f,a=0;a<e;a++)(g=b[a]).percentage=0<f&&(g.visible||!l)?g.y/f*100:0,g.total=f},generatePoints:function(){u.prototype.generatePoints.call(this),this.updateTotals()},translate:function(a){this.generatePoints();var g,n,m,q,u,z,d=0,e=(b=this.options).slicedOffset,f=e+(b.borderWidth||0),r=b.startAngle||0,c=this.startAngleRad=Math.PI/180*(r-90),t=(r=(this.endAngleRad=Math.PI/180*(l(b.endAngle,r+360)-90))-c,this.points),B=b.dataLabels.distance,b=b.ignoreHiddenPoint,p=t.length;for(a||(this.center=a=this.getCenter()),this.getX=function(b,c,e){return m=Math.asin(Math.min((b-a[1])/(a[2]/2+e.labelDistance),1)),a[0]+(c?-1:1)*Math.cos(m)*(a[2]/2+e.labelDistance)},u=0;u<p;u++)(z=t[u]).labelDistance=l(z.options.dataLabels&&z.options.dataLabels.distance,B),this.maxLabelDistance=Math.max(this.maxLabelDistance||0,z.labelDistance),g=c+d*r,b&&!z.visible||(d+=z.percentage/100),n=c+d*r,z.shapeType="arc",z.shapeArgs={x:a[0],y:a[1],r:a[2]/2,innerR:a[3]/2,start:Math.round(1e3*g)/1e3,end:Math.round(1e3*n)/1e3},(m=(n+g)/2)>1.5*Math.PI?m-=2*Math.PI:m<-Math.PI/2&&(m+=2*Math.PI),z.slicedTranslation={translateX:Math.round(Math.cos(m)*e),translateY:Math.round(Math.sin(m)*e)},n=Math.cos(m)*a[2]/2,q=Math.sin(m)*a[2]/2,z.tooltipPos=[a[0]+.7*n,a[1]+.7*q],z.half=m<-Math.PI/2||m>Math.PI/2?1:0,z.angle=m,g=Math.min(f,z.labelDistance/5),z.labelPos=[a[0]+n+Math.cos(m)*z.labelDistance,a[1]+q+Math.sin(m)*z.labelDistance,a[0]+n+Math.cos(m)*g,a[1]+q+Math.sin(m)*g,a[0]+n,a[1]+q,z.labelDistance<0?"center":z.half?"right":"left",m]},drawGraph:null,drawPoints:function(){var b,e,g,l,a=this,f=a.chart.renderer,n=a.options.shadow;n&&!a.shadowGroup&&(a.shadowGroup=f.g("shadow").add(a.group)),F(a.points,function(d){if(!d.isNull){e=d.graphic,l=d.shapeArgs,b=d.getTranslate();var k=d.shadowGroup;n&&!k&&(k=d.shadowGroup=f.g("shadow").add(a.shadowGroup)),k&&k.attr(b),g=a.pointAttribs(d,d.selected&&"select"),e?e.setRadialReference(a.center).attr(g).animate(E(l,b)):(d.graphic=e=f[d.shapeType](l).setRadialReference(a.center).attr(b).add(a.group),d.visible||e.attr({visibility:"hidden"}),e.attr(g).attr({"stroke-linejoin":"round"}).shadow(n,k)),e.addClass(d.getClassName())}})},searchPoint:f,sortByAngle:function(a,f){a.sort(function(a,e){return void 0!==a.angle&&(e.angle-a.angle)*f})},drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,getCenter:a.CenteredSeriesMixin.getCenter,getSymbol:f},{init:function(){r.prototype.init.apply(this,arguments);var f,a=this;return a.name=l(a.name,"Slice"),f=function(b){a.slice("select"===b.type)},C(a,"select",f),C(a,"unselect",f),a},isValid:function(){return a.isNumber(this.y,!0)&&0<=this.y},setVisible:function(a,f){var b=this,e=b.series,d=e.chart,g=e.options.ignoreHiddenPoint;f=l(f,g),a!==b.visible&&(b.visible=b.options.visible=a=void 0===a?!b.visible:a,e.options.data[m(b,e.data)]=b.options,F(["graphic","dataLabel","connector","shadowGroup"],function(e){b[e]&&b[e][a?"show":"hide"](!0)}),b.legendItem&&d.legend.colorizeItem(b,a),a||"hover"!==b.state||b.setState(""),g&&(e.isDirty=!0),f&&d.redraw())},slice:function(a,f,b){var e=this.series;g(b,e.chart),l(f,!0),this.sliced=this.options.sliced=A(a)?a:!this.sliced,e.options.data[m(this,e.data)]=this.options,this.graphic.animate(this.getTranslate()),this.shadowGroup&&this.shadowGroup.animate(this.getTranslate())},getTranslate:function(){return this.sliced?this.slicedTranslation:{translateX:0,translateY:0}},haloPath:function(a){var d=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(d.x,d.y,d.r+a,d.r+a,{innerR:this.shapeArgs.r,start:d.start,end:d.end})}})}(M),function(a){var C=a.addEvent,A=a.arrayMax,F=a.defined,E=a.each,m=a.extend,f=a.format,l=a.map,r=a.merge,u=a.noop,t=a.pick,g=a.relativeLength,d=a.Series,k=a.seriesTypes,b=a.stableSort;a.distribute=function(a,d){function e(a,b){return a.target-b.target}var f,m,g=!0,k=a,c=[];for(m=0,f=a.length;f--;)m+=a[f].size;if(d<m){for(b(a,function(a,b){return(b.rank||0)-(a.rank||0)}),m=f=0;m<=d;)m+=a[f].size,f++;c=a.splice(f-1,a.length)}for(b(a,e),a=l(a,function(a){return{size:a.size,targets:[a.target]}});g;){for(f=a.length;f--;)g=a[f],m=(Math.min.apply(0,g.targets)+Math.max.apply(0,g.targets))/2,g.pos=Math.min(Math.max(0,m-g.size/2),d-g.size);for(f=a.length,g=!1;f--;)0<f&&a[f-1].pos+a[f-1].size>a[f].pos&&(a[f-1].size+=a[f].size,a[f-1].targets=a[f-1].targets.concat(a[f].targets),a[f-1].pos+a[f-1].size>d&&(a[f-1].pos=d-a[f-1].size),a.splice(f,1),g=!0)}f=0,E(a,function(a){var b=0;E(a.targets,function(){k[f].pos=a.pos+b,b+=k[f].size,f++})}),k.push.apply(k,c),b(k,e)},d.prototype.drawDataLabels=function(){var l,m,u,q,b=this,d=b.options,g=d.dataLabels,k=b.points,c=b.hasRendered||0,B=t(g.defer,!!d.animation),A=b.chart.renderer;(g.enabled||b._hasPointLabels)&&(b.dlProcessOptions&&b.dlProcessOptions(g),q=b.plotGroup("dataLabelsGroup","data-labels",B&&!c?"hidden":"visible",g.zIndex||6),B&&(q.attr({opacity:+c}),c||C(b,"afterAnimate",function(){b.visible&&q.show(!0),q[d.animation?"animate":"attr"]({opacity:1},{duration:200})})),m=g,E(k,function(c){var e,n,h,B,k=c.dataLabel,p=c.connector,v=!k;l=c.dlOptions||c.options&&c.options.dataLabels,(e=t(l&&l.enabled,m.enabled)&&null!==c.y)&&(g=r(m,l),n=c.getLabelConfig(),u=g.format?f(g.format,n):g.formatter.call(n,g),B=g.style,n=g.rotation,B.color=t(g.color,B.color,b.color,"#000000"),"contrast"===B.color&&(c.contrastColor=A.getContrast(c.color||b.color),B.color=g.inside||t(c.labelDistance,g.distance)<0||d.stacking?c.contrastColor:"#000000"),d.cursor&&(B.cursor=d.cursor),h={fill:g.backgroundColor,stroke:g.borderColor,"stroke-width":g.borderWidth,r:g.borderRadius||0,rotation:n,padding:g.padding,zIndex:1},a.objectEach(h,function(a,b){void 0===a&&delete h[b]})),!k||e&&F(u)?e&&F(u)&&(k?h.text=u:(k=c.dataLabel=A[n?"text":"label"](u,0,-9999,g.shape,null,null,g.useHTML,null,"data-label")).addClass("highcharts-data-label-color-"+c.colorIndex+" "+(g.className||"")+(g.useHTML?"highcharts-tracker":"")),k.attr(h),k.css(B).shadow(g.shadow),k.added||k.add(q),b.alignDataLabel(c,k,g,null,v)):(c.dataLabel=k=k.destroy(),p&&(c.connector=p.destroy()))}))},d.prototype.alignDataLabel=function(a,b,d,f,g){var r,e=this.chart,c=e.inverted,k=t(a.plotX,-9999),l=t(a.plotY,-9999),n=b.getBBox(),p=d.rotation,v=d.align,u=this.visible&&(a.series.forceDL||e.isInsidePlot(k,Math.round(l),c)||f&&e.isInsidePlot(k,c?f.x+1:f.y+f.height-1,c)),y="justify"===t(d.overflow,"justify");u&&(r=d.style.fontSize,r=e.renderer.fontMetrics(r,b).b,f=m({x:c?this.yAxis.len-l:k,y:Math.round(c?this.xAxis.len-k:l),width:0,height:0},f),m(d,{width:n.width,height:n.height}),p?(y=!1,k=e.renderer.rotCorr(r,p),k={x:f.x+d.x+f.width/2+k.x,y:f.y+d.y+{top:0,middle:.5,bottom:1}[d.verticalAlign]*f.height},b[g?"attr":"animate"](k).attr({align:v}),l=180<(l=(p+720)%360)&&l<360,"left"===v?k.y-=l?n.height:0:"center"===v?(k.x-=n.width/2,k.y-=n.height/2):"right"===v&&(k.x-=n.width,k.y-=l?0:n.height)):(b.align(d,null,f),k=b.alignAttr),y?a.isLabelJustified=this.justifyDataLabel(b,d,k,n,f,g):t(d.crop,!0)&&(u=e.isInsidePlot(k.x,k.y)&&e.isInsidePlot(k.x+n.width,k.y+n.height)),d.shape&&!p)&&b[g?"attr":"animate"]({anchorX:c?e.plotWidth-a.plotY:a.plotX,anchorY:c?e.plotHeight-a.plotX:a.plotY}),u||(b.attr({y:-9999}),b.placed=!1)},d.prototype.justifyDataLabel=function(a,b,d,f,g,k){var m,n,c=this.chart,e=b.align,l=b.verticalAlign,p=a.box?0:a.padding||0;return(m=d.x+p)<0&&("right"===e?b.align="left":b.x=-m,n=!0),(m=d.x+f.width-p)>c.plotWidth&&("left"===e?b.align="right":b.x=c.plotWidth-m,n=!0),(m=d.y+p)<0&&("bottom"===l?b.verticalAlign="top":b.y=-m,n=!0),(m=d.y+f.height-p)>c.plotHeight&&("top"===l?b.verticalAlign="bottom":b.y=c.plotHeight-m,n=!0),n&&(a.placed=!k,a.align(b,null,g)),n},k.pie&&(k.pie.prototype.drawDataLabels=function(){var g,u,I,L,h,w,H,O,Q,R,b=this,f=b.data,k=b.chart,l=b.options.dataLabels,m=t(l.connectorPadding,10),c=t(l.connectorWidth,1),r=k.plotWidth,q=k.plotHeight,C=b.center,p=C[2]/2,z=C[1],M=[[],[]],x=[0,0,0,0];b.visible&&(l.enabled||b._hasPointLabels)&&(E(f,function(a){a.dataLabel&&a.visible&&a.dataLabel.shortened&&(a.dataLabel.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),a.dataLabel.shortened=!1)}),d.prototype.drawDataLabels.apply(b),E(f,function(a){a.dataLabel&&a.visible&&(M[a.half].push(a),a.dataLabel._pos=null)}),E(M,function(c,d){var e,f,u,n=c.length,v=[];if(n)for(b.sortByAngle(c,d-.5),0<b.maxLabelDistance&&(e=Math.max(0,z-p-b.maxLabelDistance),f=Math.min(z+p+b.maxLabelDistance,k.plotHeight),E(c,function(a){0<a.labelDistance&&a.dataLabel&&(a.top=Math.max(0,z-p-a.labelDistance),a.bottom=Math.min(z+p+a.labelDistance,k.plotHeight),u=a.dataLabel.getBBox().height||21,a.positionsIndex=v.push({target:a.labelPos[1]-a.top+u/2,size:u,rank:a.y})-1)}),a.distribute(v,f+u-e)),R=0;R<n;R++)f=(g=c[R]).positionsIndex,h=g.labelPos,I=g.dataLabel,Q=!1===g.visible?"hidden":"inherit",e=h[1],v&&F(v[f])?void 0===v[f].pos?Q="hidden":(w=v[f].size,O=g.top+v[f].pos):O=e,delete g.positionIndex,H=l.justify?C[0]+(d?-1:1)*(p+g.labelDistance):b.getX(O<g.top+2||O>g.bottom-2?e:O,d,g),I._attr={visibility:Q,align:h[6]},I._pos={x:H+l.x+({left:m,right:-m}[h[6]]||0),y:O+l.y-10},h.x=H,h.y=O,t(l.crop,!0)&&(L=I.getBBox().width,e=null,H-L<m?(e=Math.round(L-H+m),x[3]=Math.max(e,x[3])):r-m<H+L&&(e=Math.round(H+L-r+m),x[1]=Math.max(e,x[1])),O-w/2<0?x[0]=Math.max(Math.round(w/2-O),x[0]):q<O+w/2&&(x[2]=Math.max(Math.round(O+w/2-q),x[2])),I.sideOverflow=e)}),0===A(x)||this.verifyDataLabelOverflow(x))&&(this.placeDataLabels(),c&&E(this.points,function(a){var e;u=a.connector,(I=a.dataLabel)&&I._pos&&a.visible&&0<a.labelDistance?(Q=I._attr.visibility,(e=!u)&&(a.connector=u=k.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+a.colorIndex).add(b.dataLabelsGroup),u.attr({"stroke-width":c,stroke:l.connectorColor||a.color||"#666666"})),u[e?"attr":"animate"]({d:b.connectorPath(a.labelPos)}),u.attr("visibility",Q)):u&&(a.connector=u.destroy())}))},k.pie.prototype.connectorPath=function(a){var b=a.x,d=a.y;return t(this.options.dataLabels.softConnector,!0)?["M",b+("left"===a[6]?5:-5),d,"C",b,d,2*a[2]-a[4],2*a[3]-a[5],a[2],a[3],"L",a[4],a[5]]:["M",b+("left"===a[6]?5:-5),d,"L",a[2],a[3],"L",a[4],a[5]]},k.pie.prototype.placeDataLabels=function(){E(this.points,function(a){var b=a.dataLabel;b&&a.visible&&((a=b._pos)?(b.sideOverflow&&(b._attr.width=b.getBBox().width-b.sideOverflow,b.css({width:b._attr.width+"px",textOverflow:"ellipsis"}),b.shortened=!0),b.attr(b._attr),b[b.moved?"animate":"attr"](a),b.moved=!0):b&&b.attr({y:-9999}))},this)},k.pie.prototype.alignDataLabel=u,k.pie.prototype.verifyDataLabelOverflow=function(a){var k,b=this.center,d=this.options,e=d.center,f=d.minSize||80,c=null!==d.size;return c||(null!==e[0]?k=Math.max(b[2]-Math.max(a[1],a[3]),f):(k=Math.max(b[2]-a[1]-a[3],f),b[0]+=(a[3]-a[1])/2),null!==e[1]?k=Math.max(Math.min(k,b[2]-Math.max(a[0],a[2])),f):(k=Math.max(Math.min(k,b[2]-a[0]-a[2]),f),b[1]+=(a[0]-a[2])/2),k<b[2]?(b[2]=k,b[3]=Math.min(g(d.innerSize||0,k),k),this.translate(b),this.drawDataLabels&&this.drawDataLabels()):c=!0),c}),k.column&&(k.column.prototype.alignDataLabel=function(a,b,f,g,k){var e=this.chart.inverted,c=a.series,l=a.dlBox||a.shapeArgs,m=t(a.below,a.plotY>t(this.translatedThreshold,c.yAxis.len)),n=t(f.inside,!!this.options.stacking);l&&((g=r(l)).y<0&&(g.height+=g.y,g.y=0),0<(l=g.y+g.height-c.yAxis.len)&&(g.height-=l),e&&(g={x:c.yAxis.len-g.y-g.height,y:c.xAxis.len-g.x-g.width,width:g.height,height:g.width}),n||(e?(g.x+=m?0:g.width,g.width=0):(g.y+=m?g.height:0,g.height=0))),f.align=t(f.align,!e||n?"center":m?"right":"left"),f.verticalAlign=t(f.verticalAlign,e||n?"middle":m?"top":"bottom"),d.prototype.alignDataLabel.call(this,a,b,f,g,k),a.isLabelJustified&&a.contrastColor&&a.dataLabel.css({color:a.contrastColor})})}(M),function(a){var C=a.Chart,A=a.each,F=a.objectEach,E=a.pick,m=a.addEvent;C.prototype.callbacks.push(function(a){function f(){var f=[];A(a.yAxis||[],function(a){a.options.stackLabels&&!a.options.stackLabels.allowOverlap&&F(a.stacks,function(a){F(a,function(a){f.push(a.label)})})}),A(a.series||[],function(a){var l=a.options.dataLabels,g=a.dataLabelCollections||["dataLabel"];(l.enabled||a._hasPointLabels)&&!l.allowOverlap&&a.visible&&A(g,function(d){A(a.points,function(a){a[d]&&(a[d].labelrank=E(a.labelrank,a.shapeArgs&&a.shapeArgs.height),f.push(a[d]))})})}),a.hideOverlappingLabels(f)}f(),m(a,"redraw",f)}),C.prototype.hideOverlappingLabels=function(a){var m,u,t,g,d,k,b,e,v,f=a.length,y=function(a,b,d,c,e,f,g,k){return!(a+d<e||e+g<a||b+c<f||f+k<b)};for(u=0;u<f;u++)(m=a[u])&&(m.oldOpacity=m.opacity,m.newOpacity=1,m.width||(t=m.getBBox(),m.width=t.width,m.height=t.height));for(a.sort(function(a,b){return(b.labelrank||0)-(a.labelrank||0)}),u=0;u<f;u++)for(t=a[u],m=u+1;m<f;++m)g=a[m],t&&g&&t!==g&&t.placed&&g.placed&&0!==t.newOpacity&&0!==g.newOpacity&&(d=t.alignAttr,k=g.alignAttr,b=t.parentGroup,e=g.parentGroup,v=2*(t.box?0:t.padding||0),d=y(d.x+b.translateX,d.y+b.translateY,t.width-v,t.height-v,k.x+e.translateX,k.y+e.translateY,g.width-v,g.height-v))&&((t.labelrank<g.labelrank?t:g).newOpacity=0);A(a,function(a){var b,d;a&&(d=a.newOpacity,a.oldOpacity!==d&&a.placed&&(d?a.show(!0):b=function(){a.hide()},a.alignAttr.opacity=d,a[a.isOld?"animate":"attr"](a.alignAttr,null,b)),a.isOld=!0)})}}(M),function(a){var J,C=a.addEvent,A=a.Chart,F=a.createElement,E=a.css,m=a.defaultOptions,f=a.defaultPlotOptions,l=a.each,r=a.extend,u=a.fireEvent,t=a.hasTouch,g=a.inArray,d=a.isObject,k=a.Legend,b=a.merge,e=a.pick,v=a.Point,y=a.Series,n=a.seriesTypes,D=a.svg;J=a.TrackerMixin={drawTrackerPoint:function(){var a=this,b=a.chart.pointer,d=function(a){var c=b.getPointFromEvent(a);void 0!==c&&(b.isDirectTouch=!0,c.onMouseOver(a))};l(a.points,function(a){a.graphic&&(a.graphic.element.point=a),a.dataLabel&&(a.dataLabel.div?a.dataLabel.div.point=a:a.dataLabel.element.point=a)}),a._hasTracking||(l(a.trackerGroups,function(c){a[c]&&(a[c].addClass("highcharts-tracker").on("mouseover",d).on("mouseout",function(a){b.onTrackerMouseOut(a)}),t&&a[c].on("touchstart",d),a.options.cursor&&a[c].css(E).css({cursor:a.options.cursor}))}),a._hasTracking=!0)},drawTrackerGraph:function(){var r,a=this,b=a.options,d=b.trackByArea,e=[].concat(d?a.areaPath:a.graphPath),f=e.length,g=a.chart,k=g.pointer,m=g.renderer,n=g.options.tooltip.snap,h=a.tracker,u=function(){g.hoverSeries!==a&&a.onMouseOver()},v="rgba(192,192,192,"+(D?1e-4:.002)+")";if(f&&!d)for(r=f+1;r--;)"M"===e[r]&&e.splice(r+1,0,e[r+1]-n,e[r+2],"L"),(r&&"M"===e[r]||r===f)&&e.splice(r,0,"L",e[r-2]+n,e[r-1]);h?h.attr({d:e}):a.graph&&(a.tracker=m.path(e).attr({"stroke-linejoin":"round",visibility:a.visible?"visible":"hidden",stroke:v,fill:d?v:"none","stroke-width":a.graph.strokeWidth()+(d?0:2*n),zIndex:2}).add(a.group),l([a.tracker,a.markerGroup],function(a){a.addClass("highcharts-tracker").on("mouseover",u).on("mouseout",function(a){k.onTrackerMouseOut(a)}),b.cursor&&a.css({cursor:b.cursor}),t&&a.on("touchstart",u)}))}},n.column&&(n.column.prototype.drawTracker=J.drawTrackerPoint),n.pie&&(n.pie.prototype.drawTracker=J.drawTrackerPoint),n.scatter&&(n.scatter.prototype.drawTracker=J.drawTrackerPoint),r(k.prototype,{setItemEvents:function(a,d,e){var c=this,f=c.chart.renderer.boxWrapper,g="highcharts-legend-"+(a.series?"point":"series")+"-active";(e?d:a.legendGroup).on("mouseover",function(){a.setState("hover"),f.addClass(g),d.css(c.options.itemHoverStyle)}).on("mouseout",function(){d.css(b(a.visible?c.itemStyle:c.itemHiddenStyle)),f.removeClass(g),a.setState()}).on("click",function(b){var c=function(){a.setVisible&&a.setVisible()};b={browserEvent:b},a.firePointEvent?a.firePointEvent("legendItemClick",b,c):u(a,"legendItemClick",b,c)})},createCheckboxForItem:function(a){a.checkbox=F("input",{type:"checkbox",checked:a.selected,defaultChecked:a.selected},this.options.itemCheckboxStyle,this.chart.container),C(a.checkbox,"click",function(b){u(a.series||a,"checkboxClick",{checked:b.target.checked,item:a},function(){a.select()})})}}),m.legend.itemStyle.cursor="pointer",r(A.prototype,{showResetZoom:function(){var a=this,b=m.lang,d=a.options.chart.resetZoomButton,e=d.theme,f=e.states,g="chart"===d.relativeTo?null:"plotBox";this.resetZoomButton=a.renderer.button(b.resetZoom,null,null,function(){a.zoomOut()},e,f&&f.hover).attr({align:d.position.align,title:b.resetZoomTitle}).addClass("highcharts-reset-zoom").add().align(d.position,!1,g)},zoomOut:function(){var a=this;u(a,"selection",{resetSelection:!0},function(){a.zoom()})},zoom:function(a){var b,g,c=this.pointer,f=!1;!a||a.resetSelection?(l(this.axes,function(a){b=a.zoom()}),c.initiated=!1):l(a.xAxis.concat(a.yAxis),function(a){var d=a.axis;c[d.isXAxis?"zoomX":"zoomY"]&&(b=d.zoom(a.min,a.max),d.displayBtn&&(f=!0))}),g=this.resetZoomButton,f&&!g?this.showResetZoom():!f&&d(g)&&(this.resetZoomButton=g.destroy()),b&&this.redraw(e(this.options.chart.animation,a&&a.animation,this.pointCount<100))},pan:function(a,b){var e,c=this,d=c.hoverPoints;d&&l(d,function(a){a.setState()}),l("xy"===b?[1,0]:[1],function(b){var m,n,d=(b=c[b?"xAxis":"yAxis"][0]).horiz,f=a[d?"chartX":"chartY"],g=c[d=d?"mouseDownX":"mouseDownY"],h=(b.pointRange||0)/2,k=b.getExtremes(),l=b.toValue(g-f,!0)+h;g=(m=(h=b.toValue(g+b.len-f,!0)-h)<l)?h:l,l=m?l:h;0<(n=(h=Math.min(k.dataMin,b.toValue(b.toPixels(k.min)-b.minPixelPadding)))-g)&&(l+=n,g=h),0<(n=l-(m=Math.max(k.dataMax,b.toValue(b.toPixels(k.max)+b.minPixelPadding))))&&(l=m,g-=n),b.series.length&&g!==k.min&&l!==k.max&&(b.setExtremes(g,l,!1,!1,{trigger:"pan"}),e=!0),c[d]=f}),e&&c.redraw(!1),E(c.container,{cursor:"move"})}}),r(v.prototype,{select:function(a,b){var c=this,d=c.series,f=d.chart;a=e(a,!c.selected),c.firePointEvent(a?"select":"unselect",{accumulate:b},function(){c.selected=c.options.selected=a,d.options.data[g(c,d.data)]=c.options,c.setState(a&&"select"),b||l(f.getSelectedPoints(),function(a){a.selected&&a!==c&&(a.selected=a.options.selected=!1,d.options.data[g(a,d.data)]=a.options,a.setState(""),a.firePointEvent("unselect"))})})},onMouseOver:function(a){var b=this.series.chart,c=b.pointer;a=a?c.normalize(a):c.getChartCoordinatesFromPoint(this,b.inverted),c.runPointActions(a,this)},onMouseOut:function(){var a=this.series.chart;this.firePointEvent("mouseOut"),l(a.hoverPoints||[],function(a){a.setState()}),a.hoverPoints=a.hoverPoint=null},importEvents:function(){if(!this.hasImportedEvents){var c=this,d=b(c.series.options.point,c.options).events;c.events=d,a.objectEach(d,function(a,b){C(c,b,a)}),this.hasImportedEvents=!0}},setState:function(a,b){var A,c=Math.floor(this.plotX),d=this.plotY,g=this.series,k=g.options.states[a]||{},l=f[g.type].marker&&g.options.marker,m=l&&!1===l.enabled,n=l&&l.states&&l.states[a]||{},h=!1===n.enabled,t=g.stateMarkerGraphic,u=this.marker||{},v=g.chart,y=g.halo,C=l&&g.markerAttribs;(a=a||"")===this.state&&!b||this.selected&&"select"!==a||!1===k.enabled||a&&(h||m&&!1===n.enabled)||a&&u.states&&u.states[a]&&!1===u.states[a].enabled||(C&&(A=g.markerAttribs(this,a)),this.graphic?(this.state&&this.graphic.removeClass("highcharts-point-"+this.state),a&&this.graphic.addClass("highcharts-point-"+a),this.graphic.animate(g.pointAttribs(this,a),e(v.options.chart.animation,k.animation)),A&&this.graphic.animate(A,e(v.options.chart.animation,n.animation,l.animation)),t&&t.hide()):(a&&n&&(l=u.symbol||g.symbol,t&&t.currentSymbol!==l&&(t=t.destroy()),t?t[b?"animate":"attr"]({x:A.x,y:A.y}):l&&(g.stateMarkerGraphic=t=v.renderer.symbol(l,A.x,A.y,A.width,A.height).add(g.markerGroup),t.currentSymbol=l),t&&t.attr(g.pointAttribs(this,a))),t&&(t[a&&v.isInsidePlot(c,d,v.inverted)?"show":"hide"](),t.element.point=this)),(c=k.halo)&&c.size?(y||(g.halo=y=v.renderer.path().add((this.graphic||t).parentGroup)),y[b?"animate":"attr"]({d:this.haloPath(c.size)}),y.attr({class:"highcharts-halo highcharts-color-"+e(this.colorIndex,g.colorIndex)}),y.point=this,y.attr(r({fill:this.color||g.color,"fill-opacity":c.opacity,zIndex:-1},c.attributes))):y&&y.point&&y.point.haloPath&&y.animate({d:y.point.haloPath(0)}),this.state=a)},haloPath:function(a){return this.series.chart.renderer.symbols.circle(Math.floor(this.plotX)-a,this.plotY-a,2*a,2*a)}}),r(y.prototype,{onMouseOver:function(){var a=this.chart,b=a.hoverSeries;b&&b!==this&&b.onMouseOut(),this.options.events.mouseOver&&u(this,"mouseOver"),this.setState("hover"),a.hoverSeries=this},onMouseOut:function(){var a=this.options,b=this.chart,d=b.tooltip,e=b.hoverPoint;b.hoverSeries=null,e&&e.onMouseOut(),this&&a.events.mouseOut&&u(this,"mouseOut"),!d||this.stickyTracking||d.shared&&!this.noSharedTooltip||d.hide(),this.setState()},setState:function(a){var b=this,c=b.options,d=b.graph,f=c.states,g=c.lineWidth;c=0;if(a=a||"",b.state!==a&&(l([b.group,b.markerGroup,b.dataLabelsGroup],function(c){c&&(b.state&&c.removeClass("highcharts-series-"+b.state),a&&c.addClass("highcharts-series-"+a))}),!f[b.state=a]||!1!==f[a].enabled)&&(a&&(g=f[a].lineWidth||g+(f[a].lineWidthPlus||0)),d&&!d.dashstyle))for(g={"stroke-width":g},d.animate(g,e(b.chart.options.chart.animation,f[a]&&f[a].animation));b["zone-graph-"+c];)b["zone-graph-"+c].attr(g),c+=1},setVisible:function(a,b){var f,c=this,d=c.chart,e=c.legendItem,g=d.options.chart.ignoreHiddenSeries,k=c.visible;f=(c.visible=a=c.options.visible=c.userOptions.visible=void 0===a?!k:a)?"show":"hide",l(["group","dataLabelsGroup","markerGroup","tracker","tt"],function(a){c[a]&&c[a][f]()}),d.hoverSeries!==c&&(d.hoverPoint&&d.hoverPoint.series)!==c||c.onMouseOut(),e&&d.legend.colorizeItem(c,a),c.isDirty=!0,c.options.stacking&&l(d.series,function(a){a.options.stacking&&a.visible&&(a.isDirty=!0)}),l(c.linkedSeries,function(b){b.setVisible(a,!1)}),g&&(d.isDirtyBox=!0),!1!==b&&d.redraw(),u(c,f)},show:function(){this.setVisible(!0)},hide:function(){this.setVisible(!1)},select:function(a){this.selected=a=void 0===a?!this.selected:a,this.checkbox&&(this.checkbox.checked=a),u(this,a?"select":"unselect")},drawTracker:J.drawTrackerGraph})}(M),function(a){var C=a.Chart,A=a.each,F=a.inArray,E=a.isArray,m=a.isObject,f=a.pick,l=a.splat;C.prototype.setResponsive=function(f){var l=this.options.responsive,m=[],g=this.currentResponsive;l&&l.rules&&A(l.rules,function(d){void 0===d._id&&(d._id=a.uniqueKey()),this.matchResponsiveRule(d,m,f)},this);var d=a.merge.apply(0,a.map(m,function(d){return a.find(l.rules,function(a){return a._id===d}).chartOptions}));(m=m.toString()||void 0)!==(g&&g.ruleIds)&&(g&&this.update(g.undoOptions,f),m?(this.currentResponsive={ruleIds:m,mergedOptions:d,undoOptions:this.currentOptions(d)},this.update(d,f)):this.currentResponsive=void 0)},C.prototype.matchResponsiveRule=function(a,l){var m=a.condition;(m.callback||function(){return this.chartWidth<=f(m.maxWidth,Number.MAX_VALUE)&&this.chartHeight<=f(m.maxHeight,Number.MAX_VALUE)&&this.chartWidth>=f(m.minWidth,0)&&this.chartHeight>=f(m.minHeight,0)}).call(this)&&l.push(a._id)},C.prototype.currentOptions=function(f){var t={};return function r(f,d,k,b){var e;a.objectEach(f,function(a,g){if(!b&&-1<F(g,["series","xAxis","yAxis"]))for(f[g]=l(f[g]),k[g]=[],e=0;e<f[g].length;e++)d[g][e]&&(k[g][e]={},r(a[e],d[g][e],k[g][e],b+1));else m(a)?(k[g]=E(a)?[]:{},r(a,d[g]||{},k[g],b+1)):k[g]=d[g]||null})}(f,this.options,t,0),t}}(M),M}),function(){for(var method,noop=function(){},methods=["assert","clear","count","debug","dir","dirxml","error","exception","group","groupCollapsed","groupEnd","info","log","markTimeline","profile","profileEnd","table","time","timeEnd","timeStamp","trace","warn"],length=methods.length,console=window.console=window.console||{};length--;)console[method=methods[length]]||(console[method]=noop)}();