This repository was archived by the owner on Jun 19, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLog.php
More file actions
230 lines (223 loc) · 211 KB
/
Log.php
File metadata and controls
230 lines (223 loc) · 211 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
<?php
$version = '1.1.5';
$github_version = ltrim(json_decode(file_get_contents('https://api.github.com/repos/RumbleFrog/DragonballStatistical/releases/latest', false, stream_context_create(array('http'=> array('method'=>"GET", 'header'=>"Accept-language: en\r\n" . "Cookie: foo=bar\r\n" . "User-Agent: DragonballStatistical\r\n")))), true)['tag_name'], 'v');
$outdated = (version_compare($version, $github_version, ">=")) ? false : true;
if (isset($_GET['update']) && $outdated == true) {
file_put_contents(__FILE__, file_get_contents('https://raw.githubusercontent.com/RumbleFrog/DragonballStatistical/master/Log.php'));
header("Location: //" . $_SERVER['HTTP_HOST'] . strtok($_SERVER['REQUEST_URI'], '?'));
}
//Group concat limitation
$s_request = json_decode(file_get_contents('https://maxdb.net/lib/ExtensiveFetch/Servers.php'), true);
$a_request = json_decode(file_get_contents('https://maxdb.net/lib/ExtensiveFetch/Admins.php'), true);
$vc_request = json_decode(file_get_contents('https://maxdb.net/lib/ExtensiveFetch/Server_List.php'), true);
$i = 0;
$pie = [];
$admin_list = $a_request['list'];
$occurrence = $a_request['occurrence'];
?>
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Dragonball Analysis</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon"type="image/x-icon" href="data:image/x-icon;,">
<script>
var favIcon = "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";
var docHead = document.getElementsByTagName('head')[0];
var newLink = document.createElement('link');
newLink.rel = 'shortcut icon';
newLink.href = 'data:image/png;base64,'+favIcon;
docHead.appendChild(newLink);
</script>
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Roboto:300,400,500,700">
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/icon?family=Material+Icons">
<link rel="stylesheet" type="text/css" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-material-design/4.0.2/bootstrap-material-design.css">
<link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-material-design/0.5.9/css/ripples.min.css">
<style>.card-body{padding:2%;}</style>
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script>
!function(a,b){"object"==typeof module&&module.exports?module.exports=a.document?b(a):b:a.Highcharts=b(a)}("undefined"!=typeof window?window:this,function(a){return a=function(){var a=window,b=a.document,c=a.navigator&&a.navigator.userAgent||"",d=b&&b.createElementNS&&!!b.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,e=/(edge|msie|trident)/i.test(c)&&!window.opera,f=!d,g=/Firefox/.test(c),h=g&&4>parseInt(c.split("Firefox/")[1],10);return a.Highcharts?a.Highcharts.error(16,!0):{product:"Highcharts",version:"5.0.6",deg2rad:2*Math.PI/360,doc:b,hasBidiBug:h,hasTouch:b&&void 0!==b.documentElement.ontouchstart,isMS:e,isWebKit:/AppleWebKit/.test(c),isFirefox:g,isTouchDevice:/(Mobile|Android|Windows Phone)/.test(c),SVG_NS:"http://www.w3.org/2000/svg",chartCount:0,seriesTypes:{},symbolSizes:{},svg:d,vml:f,win:a,charts:[],marginNames:["plotTop","marginRight","marginBottom","plotLeft"],noop:function(){}}}(),function(a){var b=[],c=a.charts,d=a.doc,e=a.win;a.error=function(b,c){if(b=a.isNumber(b)?"Highcharts error #"+b+": www.highcharts.com/errors/"+b:b,c)throw Error(b);e.console&&console.log(b)},a.Fx=function(a,b,c){this.options=b,this.elem=a,this.prop=c},a.Fx.prototype={dSetter:function(){var f,a=this.paths[0],b=this.paths[1],c=[],d=this.now,e=a.length;if(1===d)c=this.toD;else if(e===b.length&&1>d)for(;e--;)f=parseFloat(a[e]),c[e]=isNaN(f)?a[e]:d*parseFloat(b[e]-f)+f;else c=b;this.elem.attr("d",c,null,!0)},update:function(){var a=this.elem,b=this.prop,c=this.now,d=this.options.step;this[b+"Setter"]?this[b+"Setter"]():a.attr?a.element&&a.attr(b,c,null,!0):a.style[b]=c+this.unit,d&&d.call(a,c,this)},run:function(a,c,d){var g,e=this,f=function(a){return!f.stopped&&e.step(a)};this.startTime=+new Date,this.start=a,this.end=c,this.unit=d,this.now=this.start,this.pos=0,f.elem=this.elem,f.prop=this.prop,f()&&1===b.push(f)&&(f.timerId=setInterval(function(){for(g=0;g<b.length;g++)b[g]()||b.splice(g--,1);b.length||clearInterval(f.timerId)},13))},step:function(a){var c,b=+new Date,d=this.options;c=this.elem;var h,e=d.complete,f=d.duration,g=d.curAnim;if(c.attr&&!c.element)c=!1;else if(a||b>=f+this.startTime){this.now=this.end,this.pos=1,this.update(),a=g[this.prop]=!0;for(h in g)!0!==g[h]&&(a=!1);a&&e&&e.call(c),c=!1}else this.pos=d.easing((b-this.startTime)/f),this.now=this.start+(this.end-this.start)*this.pos,this.update(),c=!0;return c},initPath:function(b,c,d){function e(a){var b,c;for(o=a.length;o--;)b="M"===a[o]||"L"===a[o],c=/[a-zA-Z]/.test(a[o+3]),b&&c&&a.splice(o+1,0,a[o+1],a[o+2],a[o+1],a[o+2])}function f(a,b){for(;a.length<m;){a[0]=b[m-a.length];var c=a.slice(0,l);[].splice.apply(a,[0,0].concat(c)),p&&(c=a.slice(a.length-l),[].splice.apply(a,[a.length,0].concat(c)),o--)}a[0]="M"}function g(a,b){for(var c=(m-a.length)/l;0<c&&c--;)n=a.slice().splice(a.length/q-l,l*q),n[0]=b[m-l-c*l],k&&(n[l-6]=n[l-2],n[l-5]=n[l-1]),[].splice.apply(a,[a.length/q,0].concat(n)),p&&c--}c=c||"";var h,m,n,o,i=b.startX,j=b.endX,k=-1<c.indexOf("C"),l=k?7:3;c=c.split(" "),d=d.slice();var r,p=b.isArea,q=p?2:1;if(k&&(e(c),e(d)),i&&j){for(o=0;o<i.length;o++){if(i[o]===j[0]){h=o;break}if(i[0]===j[j.length-i.length+o]){h=o,r=!0;break}}void 0===h&&(c=[])}return c.length&&a.isNumber(h)&&(m=d.length+h*q*l,r?(f(c,d),g(d,c)):(f(d,c),g(c,d))),[c,d]}},a.extend=function(a,b){var c;a||(a={});for(c in b)a[c]=b[c];return a},a.merge=function(){var b,d,c=arguments,e={},f=function(b,c){var d,e;"object"!=typeof b&&(b={});for(e in c)c.hasOwnProperty(e)&&(d=c[e],a.isObject(d,!0)&&"renderTo"!==e&&"number"!=typeof d.nodeType?b[e]=f(b[e]||{},d):b[e]=c[e]);return b};for(!0===c[0]&&(e=c[1],c=Array.prototype.slice.call(c,2)),d=c.length,b=0;b<d;b++)e=f(e,c[b]);return e},a.pInt=function(a,b){return parseInt(a,b||10)},a.isString=function(a){return"string"==typeof a},a.isArray=function(a){return a=Object.prototype.toString.call(a),"[object Array]"===a||"[object Array Iterator]"===a},a.isObject=function(b,c){return b&&"object"==typeof b&&(!c||!a.isArray(b))},a.isNumber=function(a){return"number"==typeof a&&!isNaN(a)},a.erase=function(a,b){for(var c=a.length;c--;)if(a[c]===b){a.splice(c,1);break}},a.defined=function(a){return void 0!==a&&null!==a},a.attr=function(b,c,d){var e,f;if(a.isString(c))a.defined(d)?b.setAttribute(c,d):b&&b.getAttribute&&(f=b.getAttribute(c));else if(a.defined(c)&&a.isObject(c))for(e in c)b.setAttribute(e,c[e]);return f},a.splat=function(b){return a.isArray(b)?b:[b]},a.syncTimeout=function(a,b,c){return b?setTimeout(a,b,c):void a.call(0,c)},a.pick=function(){var b,c,a=arguments,d=a.length;for(b=0;b<d;b++)if(c=a[b],void 0!==c&&null!==c)return c},a.css=function(b,c){a.isMS&&!a.svg&&c&&void 0!==c.opacity&&(c.filter="alpha(opacity="+100*c.opacity+")"),a.extend(b.style,c)},a.createElement=function(b,c,e,f,g){b=d.createElement(b);var h=a.css;return c&&a.extend(b,c),g&&h(b,{padding:0,border:"none",margin:0}),e&&h(b,e),f&&f.appendChild(b),b},a.extendClass=function(b,c){var d=function(){};return d.prototype=new b,a.extend(d.prototype,c),d},a.pad=function(a,b,c){return Array((b||2)+1-String(a).length).join(c||0)+a},a.relativeLength=function(a,b){return/%$/.test(a)?b*parseFloat(a)/100:parseFloat(a)},a.wrap=function(a,b,c){var d=a[b];a[b]=function(){var a=Array.prototype.slice.call(arguments),b=arguments,e=this;return e.proceed=function(){d.apply(e,arguments.length?arguments:b)},a.unshift(d),a=c.apply(this,a),e.proceed=null,a}},a.getTZOffset=function(b){var c=a.Date;return 6e4*(c.hcGetTimezoneOffset&&c.hcGetTimezoneOffset(b)||c.hcTimezoneOffset||0)},a.dateFormat=function(b,c,d){if(!a.defined(c)||isNaN(c))return a.defaultOptions.lang.invalidDate||"";b=a.pick(b,"%Y-%m-%d %H:%M:%S");var g,e=a.Date,f=new e(c-a.getTZOffset(c)),h=f[e.hcGetHours](),i=f[e.hcGetDay](),j=f[e.hcGetDate](),k=f[e.hcGetMonth](),l=f[e.hcGetFullYear](),m=a.defaultOptions.lang,n=m.weekdays,o=m.shortWeekdays,p=a.pad,e=a.extend({a:o?o[i]:n[i].substr(0,3),A:n[i],d:p(j),e:p(j,2," "),w:i,b:m.shortMonths[k],B:m.months[k],m:p(k+1),y:l.toString().substr(2,2),Y:l,H:p(h),k:h,I:p(h%12||12),l:h%12||12,M:p(f[e.hcGetMinutes]()),p:12>h?"AM":"PM",P:12>h?"am":"pm",S:p(f.getSeconds()),L:p(Math.round(c%1e3),3)},a.dateFormats);for(g in e)for(;-1!==b.indexOf("%"+g);)b=b.replace("%"+g,"function"==typeof e[g]?e[g](c):e[g]);return d?b.substr(0,1).toUpperCase()+b.substr(1):b},a.formatSingle=function(b,c){var d=/\.([0-9])/,e=a.defaultOptions.lang;return/f$/.test(b)?(d=(d=b.match(d))?d[1]:-1,null!==c&&(c=a.numberFormat(c,d,e.decimalPoint,-1<b.indexOf(",")?e.thousandsSep:""))):c=a.dateFormat(b,c),c},a.format=function(b,c){for(var f,g,h,i,k,d="{",e=!1,j=[];b&&(d=b.indexOf(d),-1!==d);){if(f=b.slice(0,d),e){for(f=f.split(":"),g=f.shift().split("."),i=g.length,k=c,h=0;h<i;h++)k=k[g[h]];f.length&&(k=a.formatSingle(f.join(":"),k)),j.push(k)}else j.push(f);b=b.slice(d+1),d=(e=!e)?"}":"{"}return j.push(b),j.join("")},a.getMagnitude=function(a){return Math.pow(10,Math.floor(Math.log(a)/Math.LN10))},a.normalizeTickInterval=function(b,c,d,e,f){var g,h=b;for(d=a.pick(d,1),g=b/d,c||(c=f?[1,1.2,1.5,2,2.5,3,4,5,6,8,10]:[1,2,2.5,5,10],!1===e&&(1===d?c=a.grep(c,function(a){return 0===a%1}):.1>=d&&(c=[1/d]))),e=0;e<c.length&&(h=c[e],!(f&&h*d>=b||!f&&g<=(c[e]+(c[e+1]||c[e]))/2));e++);return h*d},a.stableSort=function(a,b){var d,e,c=a.length;for(e=0;e<c;e++)a[e].safeI=e;for(a.sort(function(a,c){return d=b(a,c),0===d?a.safeI-c.safeI:d}),e=0;e<c;e++)delete a[e].safeI},a.arrayMin=function(a){for(var b=a.length,c=a[0];b--;)a[b]<c&&(c=a[b]);return c},a.arrayMax=function(a){for(var b=a.length,c=a[0];b--;)a[b]>c&&(c=a[b]);return c},a.destroyObjectProperties=function(a,b){for(var c in a)a[c]&&a[c]!==b&&a[c].destroy&&a[c].destroy(),delete a[c]},a.discardElement=function(b){var c=a.garbageBin;c||(c=a.createElement("div")),b&&c.appendChild(b),c.innerHTML=""},a.correctFloat=function(a,b){return parseFloat(a.toPrecision(b||14))},a.setAnimation=function(b,c){c.renderer.globalAnimation=a.pick(b,c.options.chart.animation,!0)},a.animObject=function(b){return a.isObject(b)?a.merge(b):{duration:b?500:0}},a.timeUnits={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},a.numberFormat=function(b,c,d,e){b=+b||0,c=+c;var h,i,f=a.defaultOptions.lang,g=(b.toString().split(".")[1]||"").length,j=Math.abs(b);return-1===c?c=Math.min(g,20):a.isNumber(c)||(c=2),h=String(a.pInt(j.toFixed(c))),i=3<h.length?h.length%3:0,d=a.pick(d,f.decimalPoint),e=a.pick(e,f.thousandsSep),b=(0>b?"-":"")+(i?h.substr(0,i)+e:""),b+=h.substr(i).replace(/(\d{3})(?=\d)/g,"$1"+e),c&&(e=Math.abs(j-h+Math.pow(10,-Math.max(c,g)-1)),b+=d+e.toFixed(c).slice(2)),b},Math.easeInOutSine=function(a){return-.5*(Math.cos(Math.PI*a)-1)},a.getStyle=function(b,c){return"width"===c?Math.min(b.offsetWidth,b.scrollWidth)-a.getStyle(b,"padding-left")-a.getStyle(b,"padding-right"):"height"===c?Math.min(b.offsetHeight,b.scrollHeight)-a.getStyle(b,"padding-top")-a.getStyle(b,"padding-bottom"):(b=e.getComputedStyle(b,void 0))&&a.pInt(b.getPropertyValue(c))},a.inArray=function(a,b){return b.indexOf?b.indexOf(a):[].indexOf.call(b,a)},a.grep=function(a,b){return[].filter.call(a,b)},a.find=function(a,b){return[].find.call(a,b)},a.map=function(a,b){for(var c=[],d=0,e=a.length;d<e;d++)c[d]=b.call(a[d],a[d],d,a);return c},a.offset=function(a){var b=d.documentElement;return a=a.getBoundingClientRect(),{top:a.top+(e.pageYOffset||b.scrollTop)-(b.clientTop||0),left:a.left+(e.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}},a.stop=function(a,c){for(var d=b.length;d--;)b[d].elem!==a||c&&c!==b[d].prop||(b[d].stopped=!0)},a.each=function(a,b,c){return Array.prototype.forEach.call(a,b,c)},a.addEvent=function(b,c,d){function f(a){a.target=a.srcElement||e,d.call(b,a)}var g=b.hcEvents=b.hcEvents||{};return b.addEventListener?b.addEventListener(c,d,!1):b.attachEvent&&(b.hcEventsIE||(b.hcEventsIE={}),b.hcEventsIE[d.toString()]=f,b.attachEvent("on"+c,f)),g[c]||(g[c]=[]),g[c].push(d),function(){a.removeEvent(b,c,d)}},a.removeEvent=function(b,c,d){function e(a,c){b.removeEventListener?b.removeEventListener(a,c,!1):b.attachEvent&&(c=b.hcEventsIE[c.toString()],b.detachEvent("on"+a,c))}function f(){var a,d;if(b.nodeName)for(d in c?(a={},a[c]=!0):a=h,a)if(h[d])for(a=h[d].length;a--;)e(d,h[d][a])}var g,i,h=b.hcEvents;h&&(c?(g=h[c]||[],d?(i=a.inArray(d,g),-1<i&&(g.splice(i,1),h[c]=g),e(c,d)):(f(),h[c]=[])):(f(),b.hcEvents={}))},a.fireEvent=function(b,c,e,f){var g;g=b.hcEvents;var h,i;if(e=e||{},d.createEvent&&(b.dispatchEvent||b.fireEvent))g=d.createEvent("Events"),g.initEvent(c,!0,!0),a.extend(g,e),b.dispatchEvent?b.dispatchEvent(g):b.fireEvent(c,g);else if(g)for(g=g[c]||[],h=g.length,e.target||a.extend(e,{preventDefault:function(){e.defaultPrevented=!0},target:b,type:c}),c=0;c<h;c++)(i=g[c])&&!1===i.call(b,e)&&e.preventDefault();f&&!e.defaultPrevented&&f(e)},a.animate=function(b,c,d){var e,g,h,i,f="";a.isObject(d)||(e=arguments,d={duration:e[2],easing:e[3],complete:e[4]}),a.isNumber(d.duration)||(d.duration=400),d.easing="function"==typeof d.easing?d.easing:Math[d.easing]||Math.easeInOutSine,d.curAnim=a.merge(c);for(i in c)a.stop(b,i),h=new a.Fx(b,d,i),g=null,"d"===i?(h.paths=h.initPath(b,b.d,c.d),h.toD=c.d,e=0,g=1):b.attr?e=b.attr(i):(e=parseFloat(a.getStyle(b,i))||0,"opacity"!==i&&(f="px")),g||(g=c[i]),g.match&&g.match("px")&&(g=g.replace(/px/g,"")),h.run(e,g,f)},a.seriesType=function(b,c,d,e,f){var g=a.getOptions(),h=a.seriesTypes;return g.plotOptions[b]=a.merge(g.plotOptions[c],d),h[b]=a.extendClass(h[c]||function(){},e),h[b].prototype.type=b,f&&(h[b].prototype.pointClass=a.extendClass(a.Point,f)),h[b]},a.uniqueKey=function(){var a=Math.random().toString(36).substring(2,9),b=0;return function(){return"highcharts-"+a+"-"+b++}}(),e.jQuery&&(e.jQuery.fn.highcharts=function(){var b=[].slice.call(arguments);if(this[0])return b[0]?(new(a[a.isString(b[0])?b.shift():"Chart"])(this[0],b[0],b[1]),this):c[a.attr(this[0],"data-highcharts-chart")]}),d&&!d.defaultView&&(a.getStyle=function(b,c){var d={width:"clientWidth",height:"clientHeight"}[c];return b.style[c]?a.pInt(b.style[c]):("opacity"===c&&(c="filter"),d?(b.style.zoom=1,Math.max(b[d]-2*a.getStyle(b,"padding"),0)):(b=b.currentStyle[c.replace(/\-(\w)/g,function(a,b){return b.toUpperCase()})],"filter"===c&&(b=b.replace(/alpha\(opacity=([0-9]+)\)/,function(a,b){return b/100})),""===b?1:a.pInt(b)))}),Array.prototype.forEach||(a.each=function(a,b,c){for(var d=0,e=a.length;d<e;d++)if(!1===b.call(c,a[d],d,a))return d}),Array.prototype.indexOf||(a.inArray=function(a,b){var c,d=0;if(b)for(c=b.length;d<c;d++)if(b[d]===a)return d;return-1}),Array.prototype.filter||(a.grep=function(a,b){for(var c=[],d=0,e=a.length;d<e;d++)b(a[d],d)&&c.push(a[d]);return c}),Array.prototype.find||(a.find=function(a,b){var c,d=a.length;for(c=0;c<d;c++)if(b(a[c],c))return a[c]})}(a),function(a){var b=a.each,c=a.isNumber,d=a.map,e=a.merge,f=a.pInt;a.Color=function(b){return this instanceof a.Color?void this.init(b):new a.Color(b)},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[f(a[1]),f(a[2]),f(a[3]),parseFloat(a[4],10)]}},{regex:/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/,parse:function(a){return[f(a[1],16),f(a[2],16),f(a[3],16),1]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(a){return[f(a[1]),f(a[2]),f(a[3]),1]}}],names:{white:"#ffffff",black:"#000000"},init:function(b){var c,e,f,g;if((this.input=b=this.names[b]||b)&&b.stops)this.stops=d(b.stops,function(b){return new a.Color(b[1])});else for(f=this.parsers.length;f--&&!e;)g=this.parsers[f],(c=g.regex.exec(b))&&(e=g.parse(c));this.rgba=e||[]},get:function(a){var g,d=this.input,f=this.rgba;return this.stops?(g=e(d),g.stops=[].concat(g.stops),b(this.stops,function(b,c){g.stops[c]=[g.stops[c][0],b.get(a)]})):g=f&&c(f[0])?"rgb"===a||!a&&1===f[3]?"rgb("+f[0]+","+f[1]+","+f[2]+")":"a"===a?f[3]:"rgba("+f.join(",")+")":d,g},brighten:function(a){var d,e=this.rgba;if(this.stops)b(this.stops,function(b){b.brighten(a)});else if(c(a)&&0!==a)for(d=0;3>d;d++)e[d]+=f(255*a),0>e[d]&&(e[d]=0),255<e[d]&&(e[d]=255);return this},setOpacity:function(a){return this.rgba[3]=a,this}},a.color=function(b){return new a.Color(b)}}(a),function(a){var b,c,d=a.addEvent,e=a.animate,f=a.attr,g=a.charts,h=a.color,i=a.css,j=a.createElement,k=a.defined,l=a.deg2rad,m=a.destroyObjectProperties,n=a.doc,o=a.each,p=a.extend,q=a.erase,r=a.grep,s=a.hasTouch,t=a.isArray,u=a.isFirefox,v=a.isMS,w=a.isObject,x=a.isString,y=a.isWebKit,z=a.merge,A=a.noop,B=a.pick,C=a.pInt,D=a.removeEvent,E=a.stop,F=a.svg,G=a.SVG_NS,H=a.symbolSizes,I=a.win;b=a.SVGElement=function(){return this},b.prototype={opacity:1,SVG_NS:G,textProps:"direction fontSize fontWeight fontFamily fontStyle color lineHeight width textDecoration textOverflow textOutline".split(" "),init:function(a,b){this.element="span"===b?j(b):n.createElementNS(this.SVG_NS,b),this.renderer=a},animate:function(b,c,d){return c=a.animObject(B(c,this.renderer.globalAnimation,!0)),0!==c.duration?(d&&(c.complete=d),e(this,b,c)):this.attr(b,null,d),this},colorGradient:function(b,c,d){var f,g,h,i,j,l,m,n,p,q,r,u,e=this.renderer,s=[];if(b.linearGradient?g="linearGradient":b.radialGradient&&(g="radialGradient"),g){h=b[g],j=e.gradients,m=b.stops,q=d.radialReference,t(h)&&(b[g]=h={x1:h[0],y1:h[1],x2:h[2],y2:h[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===g&&q&&!k(h.gradientUnits)&&(i=h,h=z(h,e.getRadialAttr(q,i),{gradientUnits:"userSpaceOnUse"}));for(r in h)"id"!==r&&s.push(r,h[r]);for(r in m)s.push(m[r]);s=s.join(","),j[s]?q=j[s].attr("id"):(h.id=q=a.uniqueKey(),j[s]=l=e.createElement(g).attr(h).add(e.defs),l.radAttr=i,l.stops=[],o(m,function(b){0===b[1].indexOf("rgba")?(f=a.color(b[1]),n=f.get("rgb"),p=f.get("a")):(n=b[1],p=1),b=e.createElement("stop").attr({offset:b[0],"stop-color":n,"stop-opacity":p}).add(l),l.stops.push(b)})),u="url("+e.url+"#"+q+")",d.setAttribute(c,u),d.gradient=s,b.toString=function(){return u}}},applyTextOutline:function(a){var c,d,e,g,b=this.element;-1!==a.indexOf("contrast")&&(a=a.replace(/contrast/g,this.renderer.getContrast(b.style.fill))),this.fakeTS=!0,this.ySetter=this.xSetter,c=[].slice.call(b.getElementsByTagName("tspan")),a=a.split(" "),d=a[a.length-1],(e=a[0])&&"none"!==e&&(e=e.replace(/(^[\d\.]+)(.*?)$/g,function(a,b,c){return 2*b+c}),o(c,function(a){"highcharts-text-outline"===a.getAttribute("class")&&q(c,b.removeChild(a))}),g=b.firstChild,o(c,function(a,c){0===c&&(a.setAttribute("x",b.getAttribute("x")),c=b.getAttribute("y"),a.setAttribute("y",c||0),null===c&&b.setAttribute("y",0)),a=a.cloneNode(1),f(a,{class:"highcharts-text-outline",fill:d,stroke:d,"stroke-width":e,"stroke-linejoin":"round"}),b.insertBefore(a,g)}))},attr:function(a,b,c,d){var e,g,i,f=this.element,h=this;if("string"==typeof a&&void 0!==b&&(e=a,a={},a[e]=b),"string"==typeof a)h=(this[a+"Getter"]||this._defaultGetter).call(this,a,f);else{for(e in a)b=a[e],i=!1,d||E(this,e),this.symbolName&&/^(x|y|width|height|r|start|end|innerR|anchorX|anchorY)/.test(e)&&(g||(this.symbolAttr(a),g=!0),i=!0),!this.rotation||"x"!==e&&"y"!==e||(this.doTransform=!0),i||(i=this[e+"Setter"]||this._defaultSetter,i.call(this,b,e,f),this.shadows&&/^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(e)&&this.updateShadows(e,b,i));this.doTransform&&(this.updateTransform(),this.doTransform=!1)}return c&&c(),h},updateShadows:function(a,b,c){for(var d=this.shadows,e=d.length;e--;)c.call(d[e],"height"===a?Math.max(b-(d[e].cutHeight||0),0):"d"===a?this.d:b,a,d[e])},addClass:function(a,b){var c=this.attr("class")||"";return-1===c.indexOf(a)&&(b||(a=(c+(c?" ":"")+a).replace(" "," ")),this.attr("class",a)),this},hasClass:function(a){return-1!==f(this.element,"class").indexOf(a)},removeClass:function(a){return f(this.element,"class",(f(this.element,"class")||"").replace(a,"")),this},symbolAttr:function(a){var b=this;o("x y r start end width height innerR anchorX anchorY".split(" "),function(c){b[c]=B(a[c],b[c])}),b.attr({d:b.renderer.symbols[b.symbolName](b.x,b.y,b.width,b.height,b)})},clip:function(a){return this.attr("clip-path",a?"url("+this.renderer.url+"#"+a.id+")":"none")},crisp:function(a,b){var c,e,d={};b=b||a.strokeWidth||0,e=Math.round(b)%2/2,a.x=Math.floor(a.x||this.x||0)+e,a.y=Math.floor(a.y||this.y||0)+e,a.width=Math.floor((a.width||this.width||0)-2*e),a.height=Math.floor((a.height||this.height||0)-2*e),k(a.strokeWidth)&&(a.strokeWidth=b);for(c in a)this[c]!==a[c]&&(this[c]=d[c]=a[c]);return d},css:function(a){var e,g,b=this.styles,c={},d=this.element,h="";if(e=!b,a&&a.color&&(a.fill=a.color),b)for(g in a)a[g]!==b[g]&&(c[g]=a[g],e=!0);if(e){if(e=this.textWidth=a&&a.width&&"text"===d.nodeName.toLowerCase()&&C(a.width)||this.textWidth,b&&(a=p(b,c)),this.styles=a,e&&!F&&this.renderer.forExport&&delete a.width,v&&!F)i(this.element,a);else{b=function(a,b){return"-"+b.toLowerCase()};for(g in a)h+=g.replace(/([A-Z])/g,b)+":"+a[g]+";";f(d,"style",h)}this.added&&(e&&this.renderer.buildText(this),a&&a.textOutline&&this.applyTextOutline(a.textOutline))}return this},strokeWidth:function(){return this["stroke-width"]||0},on:function(a,b){var c=this,d=c.element;return s&&"click"===a?(d.ontouchstart=function(a){c.touchEventFired=Date.now(),a.preventDefault(),b.call(d,a)},d.onclick=function(a){(-1===I.navigator.userAgent.indexOf("Android")||1100<Date.now()-(c.touchEventFired||0))&&b.call(d,a)}):d["on"+a]=b,this},setRadialReference:function(a){var b=this.renderer.gradients[this.element.gradient];return this.element.radialReference=a,b&&b.radAttr&&b.animate(this.renderer.getRadialAttr(a,b.radAttr)),this},translate:function(a,b){return this.attr({translateX:a,translateY:b})},invert:function(a){return this.inverted=a,this.updateTransform(),this},updateTransform:function(){var a=this.translateX||0,b=this.translateY||0,c=this.scaleX,d=this.scaleY,e=this.inverted,f=this.rotation,g=this.element;e&&(a+=this.attr("width"),b+=this.attr("height")),a=["translate("+a+","+b+")"],e?a.push("rotate(90) scale(-1,1)"):f&&a.push("rotate("+f+" "+(g.getAttribute("x")||0)+" "+(g.getAttribute("y")||0)+")"),(k(c)||k(d))&&a.push("scale("+B(c,1)+" "+B(d,1)+")"),a.length&&g.setAttribute("transform",a.join(" "))},toFront:function(){var a=this.element;return a.parentNode.appendChild(a),this},align:function(a,b,c){var d,e,f,g,h={};e=this.renderer,f=e.alignedObjects;var i,j;return a?(this.alignOptions=a,this.alignByTranslate=b,(!c||x(c))&&(this.alignTo=d=c||"renderer",q(f,this),f.push(this),c=null)):(a=this.alignOptions,b=this.alignByTranslate,d=this.alignTo),c=B(c,e[d],e),d=a.align,e=a.verticalAlign,f=(c.x||0)+(a.x||0),g=(c.y||0)+(a.y||0),"right"===d?i=1:"center"===d&&(i=2),i&&(f+=(c.width-(a.width||0))/i),h[b?"translateX":"x"]=Math.round(f),"bottom"===e?j=1:"middle"===e&&(j=2),j&&(g+=(c.height-(a.height||0))/j),h[b?"translateY":"y"]=Math.round(g),this[this.placed?"animate":"attr"](h),this.placed=!0,this.alignAttr=h,this},getBBox:function(a,b){var c,e,h,j,n,d=this.renderer,f=this.element,g=this.styles,i=this.textStr,k=d.cache,m=d.cacheKeys;if(b=B(b,this.rotation),e=b*l,h=g&&g.fontSize,void 0!==i&&(n=i.toString(),-1===n.indexOf("<")&&(n=n.replace(/[0-9]/g,"0")),n+=["",b||0,h,f.style.width,f.style["text-overflow"]].join()),n&&!a&&(c=k[n]),!c){if(f.namespaceURI===this.SVG_NS||d.forExport){try{(j=this.fakeTS&&function(a){o(f.querySelectorAll(".highcharts-text-outline"),function(b){b.style.display=a})})&&j("none"),c=f.getBBox?p({},f.getBBox()):{width:f.offsetWidth,height:f.offsetHeight},j&&j("")}catch(a){}(!c||0>c.width)&&(c={width:0,height:0})}else c=this.htmlGetBBox();if(d.isSVG&&(a=c.width,d=c.height,v&&g&&"11px"===g.fontSize&&"16.9"===d.toPrecision(3)&&(c.height=d=14),b&&(c.width=Math.abs(d*Math.sin(e))+Math.abs(a*Math.cos(e)),c.height=Math.abs(d*Math.cos(e))+Math.abs(a*Math.sin(e)))),n&&0<c.height){for(;250<m.length;)delete k[m.shift()];k[n]||m.push(n),k[n]=c}}return c},show:function(a){return this.attr({visibility:a?"inherit":"visible"})},hide:function(){return this.attr({visibility:"hidden"})},fadeOut:function(a){var b=this;b.animate({opacity:0},{duration:a||150,complete:function(){b.attr({y:-9999})}})},add:function(a){var d,b=this.renderer,c=this.element;return a&&(this.parentGroup=a),this.parentInverted=a&&a.inverted,void 0!==this.textStr&&b.buildText(this),this.added=!0,(!a||a.handleZ||this.zIndex)&&(d=this.zIndexSetter()),d||(a?a.element:b.box).appendChild(c),this.onAdd&&this.onAdd(),this},safeRemoveChild:function(a){var b=a.parentNode;b&&b.removeChild(a)},destroy:function(){var c,d,a=this.element||{},b=this.renderer.isSVG&&"SPAN"===a.nodeName&&this.parentGroup;if(a.onclick=a.onmouseout=a.onmouseover=a.onmousemove=a.point=null,E(this),this.clipPath&&(this.clipPath=this.clipPath.destroy()),this.stops){for(d=0;d<this.stops.length;d++)this.stops[d]=this.stops[d].destroy();this.stops=null}for(this.safeRemoveChild(a),this.destroyShadows();b&&b.div&&0===b.div.childNodes.length;)a=b.parentGroup,this.safeRemoveChild(b.div),delete b.div,b=a;this.alignTo&&q(this.renderer.alignedObjects,this);for(c in this)delete this[c];return null},shadow:function(a,b,c){var e,g,i,j,k,l,d=[],h=this.element;if(a){if(!this.shadows){for(j=B(a.width,3),k=(a.opacity||.15)/j,l=this.parentInverted?"(-1,-1)":"("+B(a.offsetX,1)+", "+B(a.offsetY,1)+")",e=1;e<=j;e++)g=h.cloneNode(0),i=2*j+1-2*e,f(g,{isShadow:"true",stroke:a.color||"#000000","stroke-opacity":k*e,"stroke-width":i,transform:"translate"+l,fill:"none"}),c&&(f(g,"height",Math.max(f(g,"height")-i,0)),g.cutHeight=i),b?b.element.appendChild(g):h.parentNode.insertBefore(g,h),d.push(g);this.shadows=d}}else this.destroyShadows();return this},destroyShadows:function(){o(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=B(this[a],this.element?this.element.getAttribute(a):null,0),/^[\-0-9\.]+$/.test(a)&&(a=parseFloat(a)),a},dSetter:function(a,b,c){a&&a.join&&(a=a.join(" ")),/(NaN| {2}|^$)/.test(a)&&(a="M 0 0"),c.setAttribute(b,a),this[b]=a},dashstyleSetter:function(a){var b,c=this["stroke-width"];if("inherit"===c&&(c=1),a=a&&a.toLowerCase()){for(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(","),b=a.length;b--;)a[b]=C(a[b])*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,b,c){this[b]=a,c.setAttribute(b,a)},titleSetter:function(a){var b=this.element.getElementsByTagName("title")[0];b||(b=n.createElementNS(this.SVG_NS,"title"),this.element.appendChild(b)),b.firstChild&&b.removeChild(b.firstChild),b.appendChild(n.createTextNode(String(B(a),"").replace(/<[^>]*>/g,"")))},textSetter:function(a){a!==this.textStr&&(delete this.bBox,this.textStr=a,this.added&&this.renderer.buildText(this))},fillSetter:function(a,b,c){"string"==typeof a?c.setAttribute(b,a):a&&this.colorGradient(a,b,c)},visibilitySetter:function(a,b,c){"inherit"===a?c.removeAttribute(b):c.setAttribute(b,a)},zIndexSetter:function(a,b){var f,h,c=this.renderer,d=this.parentGroup,e=(d||c).element||c.box,g=this.element;f=this.added;var i;if(k(a)&&(g.zIndex=a,a=+a,this[b]===a&&(f=!1),this[b]=a),f){for((a=this.zIndex)&&d&&(d.handleZ=!0),b=e.childNodes,i=0;i<b.length&&!h;i++)d=b[i],f=d.zIndex,d!==g&&(C(f)>a||!k(a)&&k(f)||0>a&&!k(f)&&e!==c.box)&&(e.insertBefore(g,d),h=!0);h||e.appendChild(g)}return h},_defaultSetter:function(a,b,c){c.setAttribute(b,a)}},b.prototype.yGetter=b.prototype.xGetter,b.prototype.translateXSetter=b.prototype.translateYSetter=b.prototype.rotationSetter=b.prototype.verticalAlignSetter=b.prototype.scaleXSetter=b.prototype.scaleYSetter=function(a,b){this[b]=a,this.doTransform=!0},b.prototype["stroke-widthSetter"]=b.prototype.strokeSetter=function(a,c,d){this[c]=a,this.stroke&&this["stroke-width"]?(b.prototype.fillSetter.call(this,this.stroke,"stroke",d),d.setAttribute("stroke-width",this["stroke-width"]),this.hasStroke=!0):"stroke-width"===c&&0===a&&this.hasStroke&&(d.removeAttribute("stroke"),this.hasStroke=!1)},c=a.SVGRenderer=function(){this.init.apply(this,arguments)},c.prototype={Element:b,SVG_NS:G,init:function(a,b,c,e,g,h){var j;e=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}).css(this.getStyle(e)),j=e.element,a.appendChild(j),-1===a.innerHTML.indexOf("xmlns")&&f(j,"xmlns",this.SVG_NS),this.isSVG=!0,this.box=j,this.boxWrapper=e,this.alignedObjects=[],this.url=(u||y)&&n.getElementsByTagName("base").length?I.location.href.replace(/#.*?$/,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"",this.createElement("desc").add().element.appendChild(n.createTextNode("Created with Highcharts 5.0.6")),this.defs=this.createElement("defs").add(),this.allowHTML=h,this.forExport=g,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.setSize(b,c,!1);var k;u&&a.getBoundingClientRect&&(b=function(){i(a,{left:0,top:0}),k=a.getBoundingClientRect(),i(a,{left:Math.ceil(k.left)-k.left+"px",top:Math.ceil(k.top)-k.top+"px"})},b(),this.unSubPixelFix=d(I,"resize",b))},getStyle:function(a){return this.style=p({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(),m(this.gradients||{}),this.gradients=null,a&&(this.defs=a.destroy()),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null},createElement:function(a){var b=new this.Element;return b.init(this,a),b},draw:A,getRadialAttr:function(a,b){return{cx:a[0]-a[2]/2+b.cx*a[2],cy:a[1]-a[2]/2+b.cy*a[2],r:b.r*a[2]}},buildText:function(a){for(var j,k,l,m,b=a.element,c=this,d=c.forExport,e=B(a.textStr,"").toString(),g=-1!==e.indexOf("<"),h=b.childNodes,p=f(b,"x"),q=a.styles,s=a.textWidth,t=q&&q.lineHeight,u=q&&q.textOutline,v=q&&"ellipsis"===q.textOverflow,w=h.length,x=s&&!a.added&&this.box,y=function(a){var d;return d=/(px|em)$/.test(a&&a.style.fontSize)?a.style.fontSize:q&&q.fontSize||c.style.fontSize||12,t?C(t):c.fontMetrics(d,a.getAttribute("style")?a:b).h};w--;)b.removeChild(h[w]);g||u||v||s||-1!==e.indexOf(" ")?(j=/<.*class="([^"]+)".*>/,k=/<.*style="([^"]+)".*>/,l=/<.*href="(http[^"]+)".*>/,x&&x.appendChild(b),e=g?e.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):[e],e=r(e,function(a){return""!==a}),o(e,function(e,g){var h,r=0;e=e.replace(/^\s+|\s+$/g,"").replace(/<span/g,"|||<span").replace(/<\/span>/g,"</span>|||"),h=e.split("|||"),o(h,function(e){if(""!==e||1===h.length){var u,w,o={},t=n.createElementNS(c.SVG_NS,"tspan");if(j.test(e)&&(u=e.match(j)[1],f(t,"class",u)),k.test(e)&&(w=e.match(k)[1].replace(/(;| |^)color([ :])/,"$1fill$2"),f(t,"style",w)),l.test(e)&&!d&&(f(t,"onclick",'location.href="'+e.match(l)[1]+'"'),i(t,{cursor:"pointer"})),e=(e.replace(/<(.|\n)*?>/g,"")||" ").replace(/</g,"<").replace(/>/g,">")," "!==e){if(t.appendChild(n.createTextNode(e)),r?o.dx=0:g&&null!==p&&(o.x=p),f(t,o),b.appendChild(t),!r&&g&&(!F&&d&&i(t,{display:"block"}),f(t,"dy",y(t))),s){o=e.replace(/([^\^])-/g,"$1- ").split(" "),u="nowrap"===q.whiteSpace;for(var z,A,x=1<h.length||g||1<o.length&&!u,B=[],C=y(t),D=a.rotation,E=e,H=E.length;(x||v)&&(o.length||B.length);)a.rotation=0,z=a.getBBox(!0),A=z.width,!F&&c.forExport&&(A=c.measureSpanWidth(t.firstChild.data,a.styles)),z=A>s,void 0===m&&(m=z),v&&m?(H/=2,""===E||!z&&.5>H?o=[]:(E=e.substring(0,E.length+(z?-1:1)*Math.ceil(H)),o=[E+(3<s?"…":"")],t.removeChild(t.firstChild))):z&&1!==o.length?(t.removeChild(t.firstChild),B.unshift(o.pop())):(o=B,B=[],o.length&&!u&&(t=n.createElementNS(G,"tspan"),f(t,{dy:C,x:p}),w&&f(t,"style",w),b.appendChild(t)),A>s&&(s=A)),o.length&&t.appendChild(n.createTextNode(o.join(" ").replace(/- /g,"-")));a.rotation=D}r++}}})}),m&&a.attr("title",a.textStr),x&&x.removeChild(b),u&&a.applyTextOutline&&a.applyTextOutline(u)):b.appendChild(n.createTextNode(e.replace(/</g,"<").replace(/>/g,">")))},getContrast:function(a){return a=h(a).rgba,510<a[0]+a[1]+a[2]?"#000000":"#FFFFFF"},button:function(a,b,c,e,f,g,h,i,j){var k=this.label(a,b,c,j,null,null,null,null,"button"),l=0;k.attr(z({padding:8,r:2},f));var m,n,o,q;return f=z({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1,style:{color:"#333333",cursor:"pointer",fontWeight:"normal"}},f),m=f.style,delete f.style,g=z(f,{fill:"#e6e6e6"},g),n=g.style,delete g.style,h=z(f,{fill:"#e6ebf5",style:{color:"#000000",fontWeight:"bold"}},h),o=h.style,delete h.style,i=z(f,{style:{color:"#cccccc"}},i),q=i.style,delete i.style,d(k.element,v?"mouseover":"mouseenter",function(){3!==l&&k.setState(1)}),d(k.element,v?"mouseout":"mouseleave",function(){3!==l&&k.setState(l)}),k.setState=function(a){1!==a&&(k.state=l=a),k.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][a||0]),k.attr([f,g,h,i][a||0]).css([m,n,o,q][a||0])},k.attr(f).css(p({cursor:"default"},m)),k.on("click",function(a){3!==l&&e.call(k,a)})},crispLine:function(a,b){return a[1]===a[4]&&(a[1]=a[4]=Math.round(a[1])-b%2/2),a[2]===a[5]&&(a[2]=a[5]=Math.round(a[2])+b%2/2),a},path:function(a){var b={fill:"none"};return t(a)?b.d=a:w(a)&&p(b,a),this.createElement("path").attr(b)},circle:function(a,b,c){return a=w(a)?a:{x:a,y:b,r:c},b=this.createElement("circle"),b.xSetter=b.ySetter=function(a,b,c){c.setAttribute("c"+b,a)},b.attr(a)},arc:function(a,b,c,d,e,f){return w(a)&&(b=a.y,c=a.r,d=a.innerR,e=a.start,f=a.end,a=a.x),a=this.symbol("arc",a||0,b||0,c||0,c||0,{
innerR:d||0,start:e||0,end:f||0}),a.r=c,a},rect:function(a,b,c,d,e,g){e=w(a)?a.r:e;var h=this.createElement("rect");return a=w(a)?a:void 0===a?{}:{x:a,y:b,width:Math.max(c,0),height:Math.max(d,0)},void 0!==g&&(a.strokeWidth=g,a=h.crisp(a)),a.fill="none",e&&(a.r=e),h.rSetter=function(a,b,c){f(c,{rx:a,ry:a})},h.attr(a)},setSize:function(a,b,c){var d=this.alignedObjects,e=d.length;for(this.width=a,this.height=b,this.boxWrapper.animate({width:a,height:b},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:B(c,!0)?void 0:0});e--;)d[e].align()},g:function(a){var b=this.createElement("g");return a?b.attr({class:"highcharts-"+a}):b},image:function(a,b,c,d,e){var f={preserveAspectRatio:"none"};return 1<arguments.length&&p(f,{x:b,y:c,width:d,height:e}),f=this.createElement("image").attr(f),f.element.setAttributeNS?f.element.setAttributeNS("http://www.w3.org/1999/xlink","href",a):f.element.setAttribute("hc-svg-href",a),f},symbol:function(a,b,c,d,e,f){var l,s,t,h=this,m=this.symbols[a],q=k(b)&&m&&m(Math.round(b),Math.round(c),d,e,f),r=/^url\((.*?)\)$/;return m?(l=this.path(q),l.attr("fill","none"),p(l,{symbolName:a,x:b,y:c,width:d,height:e}),f&&p(l,f)):r.test(a)&&(s=a.match(r)[1],l=this.image(s),l.imgwidth=B(H[s]&&H[s].width,f&&f.width),l.imgheight=B(H[s]&&H[s].height,f&&f.height),t=function(){l.attr({width:l.width,height:l.height})},o(["width","height"],function(a){l[a+"Setter"]=function(a,b){var c={},d=this["img"+b],e="width"===b?"translateX":"translateY";this[b]=a,k(d)&&(this.element&&this.element.setAttribute(b,d),this.alignByTranslate||(c[e]=((this[b]||0)-d)/2,this.attr(c)))}}),k(b)&&l.attr({x:b,y:c}),l.isImg=!0,k(l.imgwidth)&&k(l.imgheight)?t():(l.attr({width:0,height:0}),j("img",{onload:function(){var a=g[h.chartIndex];0===this.width&&(i(this,{position:"absolute",top:"-999em"}),n.body.appendChild(this)),H[s]={width:this.width,height:this.height},l.imgwidth=this.width,l.imgheight=this.height,l.element&&t(),this.parentNode&&this.parentNode.removeChild(this),h.imgCount--,!h.imgCount&&a&&a.onload&&a.onload()},src:s}),this.imgCount++)),l},symbols:{circle:function(a,b,c,d){var e=.166*c;return["M",a+c/2,b,"C",a+c+e,b,a+c+e,b+d,a+c/2,b+d,"C",a-e,b+d,a-e,b,a+c/2,b,"Z"]},square:function(a,b,c,d){return["M",a,b,"L",a+c,b,a+c,b+d,a,b+d,"Z"]},triangle:function(a,b,c,d){return["M",a+c/2,b,"L",a+c,b+d,a,b+d,"Z"]},"triangle-down":function(a,b,c,d){return["M",a,b,"L",a+c,b,a+c/2,b+d,"Z"]},diamond:function(a,b,c,d){return["M",a+c/2,b,"L",a+c,b+d/2,a+c/2,b+d,a,b+d/2,"Z"]},arc:function(a,b,c,d,e){var f=e.start;c=e.r||c||d;var g=e.end-.001;d=e.innerR;var h=e.open,i=Math.cos(f),j=Math.sin(f),k=Math.cos(g),g=Math.sin(g);return e=e.end-f<Math.PI?0:1,["M",a+c*i,b+c*j,"A",c,c,0,e,1,a+c*k,b+c*g,h?"M":"L",a+d*k,b+d*g,"A",d,d,0,e,0,a+d*i,b+d*j,h?"":"Z"]},callout:function(a,b,c,d,e){var f=Math.min(e&&e.r||0,c,d),g=f+6,h=e&&e.anchorX;e=e&&e.anchorY;var i;return i=["M",a+f,b,"L",a+c-f,b,"C",a+c,b,a+c,b,a+c,b+f,"L",a+c,b+d-f,"C",a+c,b+d,a+c,b+d,a+c-f,b+d,"L",a+f,b+d,"C",a,b+d,a,b+d,a,b+d-f,"L",a,b+f,"C",a,b,a,b,a+f,b],h&&h>c?e>b+g&&e<b+d-g?i.splice(13,3,"L",a+c,e-6,a+c+6,e,a+c,e+6,a+c,b+d-f):i.splice(13,3,"L",a+c,d/2,h,e,a+c,d/2,a+c,b+d-f):h&&0>h?e>b+g&&e<b+d-g?i.splice(33,3,"L",a,e+6,a-6,e,a,e-6,a,b+f):i.splice(33,3,"L",a,d/2,h,e,a,d/2,a,b+f):e&&e>d&&h>a+g&&h<a+c-g?i.splice(23,3,"L",h+6,b+d,h,b+d+6,h-6,b+d,a+f,b+d):e&&0>e&&h>a+g&&h<a+c-g&&i.splice(3,3,"L",h-6,b,h,b-6,h+6,b,c-f,b),i}},clipRect:function(b,c,d,e){var f=a.uniqueKey(),g=this.createElement("clipPath").attr({id:f}).add(this.defs);return b=this.rect(b,c,d,e,0).add(g),b.id=f,b.clipPath=g,b.count=0,b},text:function(a,b,c,d){var e=!F&&this.forExport,f={};return!d||!this.allowHTML&&this.forExport?(f.x=Math.round(b||0),c&&(f.y=Math.round(c)),(a||0===a)&&(f.text=a),a=this.createElement("text").attr(f),e&&a.css({position:"absolute"}),d||(a.xSetter=function(a,b,c){var e,g,d=c.getElementsByTagName("tspan"),f=c.getAttribute(b);for(g=0;g<d.length;g++)e=d[g],e.getAttribute(b)===f&&e.setAttribute(b,a);c.setAttribute(b,a)}),a):this.html(a,b,c)},fontMetrics:function(a,b){return a=a||b&&b.style&&b.style.fontSize||this.style&&this.style.fontSize,a=/px/.test(a)?C(a):/em/.test(a)?parseFloat(a)*(b?this.fontMetrics(null,b.parentNode).f:16):12,b=24>a?a+3:Math.round(1.2*a),{h:b,b:Math.round(.8*b),f:a}},rotCorr:function(a,b,c){var d=a;return b&&c&&(d=Math.max(d*Math.cos(b*l),4)),{x:-a/3*Math.sin(b*l),y:d}},label:function(a,c,d,e,f,g,h,i,j){var q,r,v,w,x,y,A,C,E,H,I,J,K,l=this,m=l.g("button"!==j&&"label"),n=m.text=l.text("",0,0,h).attr({zIndex:1}),s=0,t=3,u=0,B={},F=/^url\((.*?)\)$/.test(e),G=F;j&&m.addClass("highcharts-"+j),G=F,H=function(){return(C||0)%2/2},I=function(){var a=n.element.style,b={};r=(void 0===v||void 0===w||A)&&k(n.textStr)&&n.getBBox(),m.width=(v||r.width||0)+2*t+u,m.height=(w||r.height||0)+2*t,E=t+l.fontMetrics(a&&a.fontSize,n).b,G&&(q||(m.box=q=l.symbols[e]||F?l.symbol(e):l.rect(),q.addClass(("button"===j?"":"highcharts-label-box")+(j?" highcharts-"+j+"-box":"")),q.add(m),a=H(),b.x=a,b.y=(i?-E:0)+a),b.width=Math.round(m.width),b.height=Math.round(m.height),q.attr(p(b,B)),B={})},J=function(){var b,a=u+t;b=i?0:E,k(v)&&r&&("center"===A||"right"===A)&&(a+={center:.5,right:1}[A]*(v-r.width)),a===n.x&&b===n.y||(n.attr("x",a),void 0!==b&&n.attr("y",b)),n.x=a,n.y=b},K=function(a,b){q?q.attr(a,b):B[a]=b},m.onAdd=function(){n.add(m),m.attr({text:a||0===a?a:"",x:c,y:d}),q&&k(f)&&m.attr({anchorX:f,anchorY:g})},m.widthSetter=function(a){v=a},m.heightSetter=function(a){w=a},m["text-alignSetter"]=function(a){A=a},m.paddingSetter=function(a){k(a)&&a!==t&&(t=m.padding=a,J())},m.paddingLeftSetter=function(a){k(a)&&a!==u&&(u=a,J())},m.alignSetter=function(a){a={left:0,center:.5,right:1}[a],a!==s&&(s=a,r&&m.attr({x:x}))},m.textSetter=function(a){void 0!==a&&n.textSetter(a),I(),J()},m["stroke-widthSetter"]=function(a,b){a&&(G=!0),C=this["stroke-width"]=a,K(b,a)},m.strokeSetter=m.fillSetter=m.rSetter=function(a,b){"fill"===b&&a&&(G=!0),K(b,a)},m.anchorXSetter=function(a,b){f=a,K(b,Math.round(a)-H()-x)},m.anchorYSetter=function(a,b){g=a,K(b,a-y)},m.xSetter=function(a){m.x=a,s&&(a-=s*((v||r.width)+2*t)),x=Math.round(a),m.attr("translateX",x)},m.ySetter=function(a){y=m.y=Math.round(a),m.attr("translateY",y)};var L=m.css;return p(m,{css:function(a){if(a){var b={};a=z(a),o(m.textProps,function(c){void 0!==a[c]&&(b[c]=a[c],delete a[c])}),n.css(b)}return L.call(m,a)},getBBox:function(){return{width:r.width+2*t,height:r.height+2*t,x:r.x-t,y:r.y-t}},shadow:function(a){return a&&(I(),q&&q.shadow(a)),m},destroy:function(){D(m.element,"mouseenter"),D(m.element,"mouseleave"),n&&(n=n.destroy()),q&&(q=q.destroy()),b.prototype.destroy.call(m),m=l=I=J=K=null}})}},a.Renderer=c}(a),function(a){var b=a.attr,c=a.createElement,d=a.css,e=a.defined,f=a.each,g=a.extend,h=a.isFirefox,i=a.isMS,j=a.isWebKit,k=a.pInt,l=a.SVGRenderer,m=a.win,n=a.wrap;g(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=g(this.styles,a),d(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,b=this.element,c=this.translateX||0,g=this.translateY||0,h=this.x||0,i=this.y||0,l=this.textAlign||"left",m={left:0,center:.5,right:1}[l],n=this.styles;if(d(b,{marginLeft:c,marginTop:g}),this.shadows&&f(this.shadows,function(a){d(a,{marginLeft:c+1,marginTop:g+1})}),this.inverted&&f(b.childNodes,function(c){a.invertChild(c,b)}),"SPAN"===b.tagName){var o=this.rotation,p=k(this.textWidth),q=n&&n.whiteSpace,r=[o,l,b.innerHTML,this.textWidth,this.textAlign].join();r!==this.cTT&&(n=a.fontMetrics(b.style.fontSize).b,e(o)&&this.setSpanRotation(o,m,n),d(b,{width:"",whiteSpace:q||"nowrap"}),b.offsetWidth>p&&/[ \-]/.test(b.textContent||b.innerText)&&d(b,{width:p+"px",display:"block",whiteSpace:q||"normal"}),this.getSpanCorrection(b.offsetWidth,n,m,o,l)),d(b,{left:h+(this.xCorr||0)+"px",top:i+(this.yCorr||0)+"px"}),j&&(n=b.offsetHeight),this.cTT=r}}else this.alignOnAdd=!0},setSpanRotation:function(a,b,c){var e={},f=i?"-ms-transform":j?"-webkit-transform":h?"MozTransform":m.opera?"-o-transform":"";e[f]=e.transform="rotate("+a+"deg)",e[f+(h?"Origin":"-origin")]=e.transformOrigin=100*b+"% "+c+"px",d(this.element,e)},getSpanCorrection:function(a,b,c){this.xCorr=-a*c,this.yCorr=-b}}),g(l.prototype,{html:function(a,d,e){var h=this.createElement("span"),i=h.element,j=h.renderer,k=j.isSVG,l=function(a,b){f(["opacity","visibility"],function(c){n(a,c+"Setter",function(a,c,d,e){a.call(this,c,d,e),b[d]=c})})};return h.textSetter=function(a){a!==i.innerHTML&&delete this.bBox,i.innerHTML=this.textStr=a,h.htmlUpdateTransform()},k&&l(h,h.element.style),h.xSetter=h.ySetter=h.alignSetter=h.rotationSetter=function(a,b){"align"===b&&(b="textAlign"),h[b]=a,h.htmlUpdateTransform()},h.attr({text:a,x:Math.round(d),y:Math.round(e)}).css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize,position:"absolute"}),i.style.whiteSpace="nowrap",h.css=h.htmlCss,k&&(h.add=function(a){var d,e=j.box.parentNode,k=[];if(this.parentGroup=a){if(d=a.div,!d){for(;a;)k.push(a),a=a.parentGroup;f(k.reverse(),function(a){var f,i=b(a.element,"class");i&&(i={className:i}),d=a.div=a.div||c("div",i,{position:"absolute",left:(a.translateX||0)+"px",top:(a.translateY||0)+"px",display:a.display,opacity:a.opacity,pointerEvents:a.styles&&a.styles.pointerEvents},d||e),f=d.style,g(a,{on:function(){return h.on.apply({element:k[0].div},arguments),a},translateXSetter:function(b,c){f.left=b+"px",a[c]=b,a.doTransform=!0},translateYSetter:function(b,c){f.top=b+"px",a[c]=b,a.doTransform=!0}}),l(a,f)})}}else d=e;return d.appendChild(i),h.added=!0,h.alignOnAdd&&h.htmlUpdateTransform(),h}),h}})}(a),function(a){var b,c,d=a.createElement,e=a.css,f=a.defined,g=a.deg2rad,h=a.discardElement,i=a.doc,j=a.each,k=a.erase,l=a.extend;b=a.extendClass;var m=a.isArray,n=a.isNumber,o=a.isObject,p=a.merge;c=a.noop;var q=a.pick,r=a.pInt,s=a.SVGElement,t=a.SVGRenderer,u=a.win;a.svg||(c={docMode8:i&&8===i.documentMode,init:function(a,b){var c=["<",b,' filled="f" stroked="f"'],e=["position: ","absolute",";"],f="div"===b;("shape"===b||f)&&e.push("left:0;top:0;width:1px;height:1px;"),e.push("visibility: ",f?"hidden":"visible"),c.push(' style="',e.join(""),'"/>'),b&&(c=f||"span"===b||"img"===b?c.join(""):a.prepVML(c),this.element=d(c)),this.renderer=a},add:function(a){var b=this.renderer,c=this.element,d=b.box,e=a&&a.inverted,d=a?a.element||a:d;return a&&(this.parentGroup=a),e&&b.invertChild(c,d),d.appendChild(c),this.added=!0,this.alignOnAdd&&!this.deferUpdateTransform&&this.updateTransform(),this.onAdd&&this.onAdd(),this.className&&this.attr("class",this.className),this},updateTransform:s.prototype.htmlUpdateTransform,setSpanRotation:function(){var a=this.rotation,b=Math.cos(a*g),c=Math.sin(a*g);e(this.element,{filter:a?["progid:DXImageTransform.Microsoft.Matrix(M11=",b,", M12=",-c,", M21=",c,", M22=",b,", sizingMethod='auto expand')"].join(""):"none"})},getSpanCorrection:function(a,b,c,d,f){var k,h=d?Math.cos(d*g):1,i=d?Math.sin(d*g):0,j=q(this.elemHeight,this.element.offsetHeight);this.xCorr=0>h&&-a,this.yCorr=0>i&&-j,k=0>h*i,this.xCorr+=i*b*(k?1-c:c),this.yCorr-=h*b*(d?k?c:1-c:1),f&&"left"!==f&&(this.xCorr-=a*c*(0>h?-1:1),d&&(this.yCorr-=j*c*(0>i?-1:1)),e(this.element,{textAlign:f}))},pathToVML:function(a){for(var b=a.length,c=[];b--;)n(a[b])?c[b]=Math.round(10*a[b])-5:"Z"===a[b]?c[b]="x":(c[b]=a[b],!a.isArc||"wa"!==a[b]&&"at"!==a[b]||(c[b+5]===c[b+7]&&(c[b+7]+=a[b+7]>a[b+5]?1:-1),c[b+6]===c[b+8]&&(c[b+8]+=a[b+8]>a[b+6]?1:-1)));return c.join(" ")||"x"},clip:function(a){var c,b=this;return a?(c=a.members,k(c,b),c.push(b),b.destroyClip=function(){k(c,b)},a=a.getCSS(b)):(b.destroyClip&&b.destroyClip(),a={clip:b.docMode8?"inherit":"rect(auto)"}),b.css(a)},css:s.prototype.htmlCss,safeRemoveChild:function(a){a.parentNode&&h(a)},destroy:function(){return this.destroyClip&&this.destroyClip(),s.prototype.destroy.apply(this)},on:function(a,b){return this.element["on"+a]=function(){var a=u.event;a.target=a.srcElement,b(a)},this},cutOffPath:function(a,b){var c;return a=a.split(/[ ,]/),c=a.length,9!==c&&11!==c||(a[c-4]=a[c-2]=r(a[c-2])-10*b),a.join(" ")},shadow:function(a,b,c){var f,i,k,m,n,o,p,e=[],g=this.element,h=this.renderer,j=g.style,l=g.path;if(l&&"string"!=typeof l.value&&(l="x"),n=l,a){for(o=q(a.width,3),p=(a.opacity||.15)/o,f=1;3>=f;f++)m=2*o+1-2*f,c&&(n=this.cutOffPath(l.value,m+.5)),k=['<shape isShadow="true" strokeweight="',m,'" filled="false" path="',n,'" coordsize="10 10" style="',g.style.cssText,'" />'],i=d(h.prepVML(k),null,{left:r(j.left)+q(a.offsetX,1),top:r(j.top)+q(a.offsetY,1)}),c&&(i.cutOff=m+1),k=['<stroke color="',a.color||"#000000",'" opacity="',p*f,'"/>'],d(h.prepVML(k),null,null,i),b?b.element.appendChild(i):g.parentNode.insertBefore(i,g),e.push(i);this.shadows=e}return this},updateShadows:c,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,c){(c.getElementsByTagName("stroke")[0]||d(this.renderer.prepVML(["<stroke/>"]),null,null,c))[b]=a||"solid",this[b]=a},dSetter:function(a,b,c){var d=this.shadows;if(a=a||[],this.d=a.join&&a.join(" "),c.path=a=this.pathToVML(a),d)for(c=d.length;c--;)d[c].path=d[c].cutOff?this.cutOffPath(a,d[c].cutOff):a;this.setAttr(b,a)},fillSetter:function(a,b,c){var d=c.nodeName;"SPAN"===d?c.style.color=a:"IMG"!==d&&(c.filled="none"!==a,this.setAttr("fillcolor",this.renderer.color(a,c,b,this)))},"fill-opacitySetter":function(a,b,c){d(this.renderer.prepVML(["<",b.split("-")[0],' opacity="',a,'"/>']),null,null,c)},opacitySetter:c,rotationSetter:function(a,b,c){c=c.style,this[b]=c[b]=a,c.left=-Math.round(Math.sin(a*g)+1)+"px",c.top=Math.round(Math.cos(a*g))+"px"},strokeSetter:function(a,b,c){this.setAttr("strokecolor",this.renderer.color(a,c,b,this))},"stroke-widthSetter":function(a,b,c){c.stroked=!!a,this[b]=a,n(a)&&(a+="px"),this.setAttr("strokeweight",a)},titleSetter:function(a,b){this.setAttr(b,a)},visibilitySetter:function(a,b,c){"inherit"===a&&(a="visible"),this.shadows&&j(this.shadows,function(c){c.style[b]=a}),"DIV"===c.nodeName&&(a="hidden"===a?"-999em":0,this.docMode8||(c.style[b]=a?"visible":"hidden"),b="top"),c.style[b]=a},xSetter:function(a,b,c){this[b]=a,"x"===b?b="left":"y"===b&&(b="top"),this.updateClipping?(this[b]=a,this.updateClipping()):c.style[b]=a},zIndexSetter:function(a,b,c){c.style[b]=a}},c["stroke-opacitySetter"]=c["fill-opacitySetter"],a.VMLElement=c=b(s,c),c.prototype.ySetter=c.prototype.widthSetter=c.prototype.heightSetter=c.prototype.xSetter,c={Element:c,isIE8:-1<u.navigator.userAgent.indexOf("MSIE 8.0"),init:function(a,b,c){var d,e;if(this.alignedObjects=[],d=this.createElement("div").css({position:"relative"}),e=d.element,a.appendChild(d.element),this.isVML=!0,this.box=e,this.boxWrapper=d,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.setSize(b,c,!1),!i.namespaces.hcv){i.namespaces.add("hcv","urn:schemas-microsoft-com:vml");try{i.createStyleSheet().cssText="hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } "}catch(a){i.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,b,c,d){var e=this.createElement(),f=o(a);return l(e,{members:[],count:0,left:(f?a.x:a)+1,top:(f?a.y:b)+1,width:(f?a.width:c)-1,height:(f?a.height:d)-1,getCSS:function(a){var b=a.element,c=b.nodeName,d=a.inverted,e=this.top-("shape"===c?b.offsetTop:0),f=this.left,b=f+this.width,g=e+this.height,e={clip:"rect("+Math.round(d?f:e)+"px,"+Math.round(d?g:b)+"px,"+Math.round(d?b:g)+"px,"+Math.round(d?e:f)+"px)"};return!d&&a.docMode8&&"DIV"===c&&l(e,{width:b+"px",height:g+"px"}),e},updateClipping:function(){j(e.members,function(a){a.element&&a.css(e.getCSS(a))})}})},color:function(b,c,e,f){var h,k,l,g=this,i=/^rgba/,m="none";if(b&&b.linearGradient?l="gradient":b&&b.radialGradient&&(l="pattern"),l){var n,o,q,r,s,t,u,p=b.linearGradient||b.radialGradient,v="";b=b.stops;var w,x=[],y=function(){k=['<fill colors="'+x.join(",")+'" opacity="',s,'" o:opacity2="',r,'" type="',l,'" ',v,'focus="100%" method="any" />'],d(g.prepVML(k),null,null,c)};if(q=b[0],w=b[b.length-1],0<q[0]&&b.unshift([0,q[1]]),1>w[0]&&b.push([1,w[1]]),j(b,function(b,c){i.test(b[1])?(h=a.color(b[1]),n=h.get("rgb"),o=h.get("a")):(n=b[1],o=1),x.push(100*b[0]+"% "+n),c?(s=o,t=n):(r=o,u=n)}),"fill"===e)if("gradient"===l)e=p.x1||p[0]||0,b=p.y1||p[1]||0,q=p.x2||p[2]||0,p=p.y2||p[3]||0,v='angle="'+(90-180*Math.atan((p-b)/(q-e))/Math.PI)+'"',y();else{var E,m=p.r,z=2*m,A=2*m,B=p.cx,C=p.cy,D=c.radialReference,m=function(){D&&(E=f.getBBox(),B+=(D[0]-E.x)/E.width-.5,C+=(D[1]-E.y)/E.height-.5,z*=D[2]/E.width,A*=D[2]/E.height),v='src="'+a.getOptions().global.VMLRadialGradientURL+'" size="'+z+","+A+'" origin="0.5,0.5" position="'+B+","+C+'" color2="'+u+'" ',y()};f.added?m():f.onAdd=m,m=t}else m=n}else i.test(b)&&"IMG"!==c.tagName?(h=a.color(b),f[e+"-opacitySetter"](h.get("a"),e,c),m=h.get("rgb")):(m=c.getElementsByTagName(e),m.length&&(m[0].opacity=1,m[0].type="solid"),m=b);return m},prepVML:function(a){var b=this.isIE8;return a=a.join(""),b?(a=a.replace("/>",' xmlns="urn:schemas-microsoft-com:vml" />'),a=-1===a.indexOf('style="')?a.replace("/>",' style="display:inline-block;behavior:url(#default#VML);" />'):a.replace('style="','style="display:inline-block;behavior:url(#default#VML);')):a=a.replace("<","<hcv:"),a},text:t.prototype.html,path:function(a){var b={coordsize:"10 10"};return m(a)?b.d=a:o(a)&&l(b,a),this.createElement("shape").attr(b)},circle:function(a,b,c){var d=this.symbol("circle");return o(a)&&(c=a.r,b=a.y,a=a.x),d.isCircle=!0,d.r=c,d.attr({x:a,y:b})},g:function(a){var b;return a&&(b={className:"highcharts-"+a,class:"highcharts-"+a}),this.createElement("div").attr(b)},image:function(a,b,c,d,e){var f=this.createElement("img").attr({src:a});return 1<arguments.length&&f.attr({x:b,y:c,width:d,height:e}),f},createElement:function(a){return"rect"===a?this.symbol(a):t.prototype.createElement.call(this,a)},invertChild:function(a,b){var c=this;b=b.style;var d="IMG"===a.tagName&&a.style;e(a,{flip:"x",left:r(b.width)-(d?r(d.top):1),top:r(b.height)-(d?r(d.left):1),rotation:-90}),j(a.childNodes,function(b){c.invertChild(b,a)})},symbols:{arc:function(a,b,c,d,e){var f=e.start,g=e.end,h=e.r||c||d;c=e.innerR,d=Math.cos(f);var i=Math.sin(f),j=Math.cos(g),k=Math.sin(g);return 0===g-f?["x"]:(f=["wa",a-h,b-h,a+h,b+h,a+h*d,b+h*i,a+h*j,b+h*k],e.open&&!c&&f.push("e","M",a,b),f.push("at",a-c,b-c,a+c,b+c,a+c*j,b+c*k,a+c*d,b+c*i,"x","e"),f.isArc=!0,f)},circle:function(a,b,c,d,e){return e&&f(e.r)&&(c=d=2*e.r),e&&e.isCircle&&(a-=c/2,b-=d/2),["wa",a,b,a+c,b+d,a+c,b+d/2,a+c,b+d/2,"e"]},rect:function(a,b,c,d,e){return t.prototype.symbols[f(e)&&e.r?"callout":"square"].call(0,a,b,c,d,e)}}},a.VMLRenderer=b=function(){this.init.apply(this,arguments)},b.prototype=p(t.prototype,c),a.Renderer=b),t.prototype.measureSpanWidth=function(a,b){var c=i.createElement("span");return a=i.createTextNode(a),c.appendChild(a),e(c,b),this.box.appendChild(c),b=c.offsetWidth,h(c),b}}(a),function(a){function b(){var c,b=a.defaultOptions.global,f=b.useUTC,i=f?"getUTC":"get",j=f?"setUTC":"set";a.Date=c=b.Date||h.Date,c.hcTimezoneOffset=f&&b.timezoneOffset,c.hcGetTimezoneOffset=f&&b.getTimezoneOffset,c.hcMakeTime=function(a,b,d,h,i,j){var k;return f?(k=c.UTC.apply(0,arguments),k+=e(k)):k=new c(a,b,g(d,1),g(h,0),g(i,0),g(j,0)).getTime(),k},d("Minutes Hours Day Date Month FullYear".split(" "),function(a){c["hcGet"+a]=i+a}),d("Milliseconds Seconds Minutes Hours Date Month FullYear".split(" "),function(a){c["hcSet"+a]=j+a})}var c=a.color,d=a.each,e=a.getTZOffset,f=a.merge,g=a.pick,h=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.6/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"},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:c("#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"}}},a.setOptions=function(c){return a.defaultOptions=f(!0,a.defaultOptions,c),b(),a.defaultOptions},a.getOptions=function(){return a.defaultOptions},a.defaultPlotOptions=a.defaultOptions.plotOptions,b()}(a),function(a){var b=a.arrayMax,c=a.arrayMin,d=a.defined,e=a.destroyObjectProperties,f=a.each,g=a.erase,h=a.merge,i=a.pick;a.PlotLineOrBand=function(a,b){this.axis=a,b&&(this.options=b,this.id=b.id)},a.PlotLineOrBand.prototype={render:function(){var r,a=this,b=a.axis,c=b.horiz,e=a.options,f=e.label,g=a.label,j=e.to,k=e.from,l=e.value,m=d(k)&&d(j),n=d(l),o=a.svgElem,p=!o,q=[],s=e.color,t=i(e.zIndex,0),u=e.events,q={class:"highcharts-plot-"+(m?"band ":"line ")+(e.className||"")},v={},w=b.chart.renderer,x=m?"bands":"lines",y=b.log2lin;if(b.isLog&&(k=y(k),j=y(j),l=y(l)),n?(q={stroke:s,"stroke-width":e.width},e.dashStyle&&(q.dashstyle=e.dashStyle)):m&&(s&&(q.fill=s),e.borderWidth&&(q.stroke=e.borderColor,q["stroke-width"]=e.borderWidth)),v.zIndex=t,x+="-"+t,(s=b[x])||(b[x]=s=w.g("plot-"+x).attr(v).add()),p&&(a.svgElem=o=w.path().attr(q).add(s)),n)q=b.getPlotLinePath(l,o.strokeWidth());else{if(!m)return;q=b.getPlotBandPath(k,j,e)}if(p&&q&&q.length){if(o.attr({d:q}),u)for(r in e=function(b){o.on(b,function(c){u[b].apply(a,[c])})},u)e(r)}else o&&(q?(o.show(),o.animate({d:q})):(o.hide(),g&&(a.label=g=g.destroy())));return f&&d(f.text)&&q&&q.length&&0<b.width&&0<b.height&&!q.flat?(f=h({align:c&&m&&"center",x:c?!m&&4:10,verticalAlign:!c&&m&&"middle",y:c?m?16:10:m?6:-4,rotation:c&&!m&&90},f),this.renderLabel(f,q,m,t)):g&&g.hide(),a},renderLabel:function(a,d,e,f){var g=this.label,h=this.axis.chart.renderer;g||(g={align:a.textAlign||a.align,rotation:a.rotation,class:"highcharts-plot-"+(e?"band":"line")+"-label "+(a.className||"")},g.zIndex=f,this.label=g=h.text(a.text,0,0,a.useHTML).attr(g).add(),g.css(a.style)),f=[d[1],d[4],e?d[6]:d[1]],d=[d[2],d[5],e?d[7]:d[2]],e=c(f),h=c(d),g.align(a,!1,{x:e,y:h,width:b(f)-e,height:b(d)-h}),g.show()},destroy:function(){g(this.axis.plotLinesAndBands,this),delete this.axis,e(this)}},a.AxisPlotLineOrBandExtension={getPlotBandPath:function(a,b){return b=this.getPlotLinePath(b,null,null,!0),(a=this.getPlotLinePath(a,null,null,!0))&&b?(a.flat=a.toString()===b.toString(),a.push(b[4],b[5],b[1],b[2],"z")):a=null,a},addPlotBand:function(a){return this.addPlotBandOrLine(a,"plotBands")},addPlotLine:function(a){return this.addPlotBandOrLine(a,"plotLines")},addPlotBandOrLine:function(b,c){var d=new a.PlotLineOrBand(this,b).render(),e=this.userOptions;return d&&(c&&(e[c]=e[c]||[],e[c].push(b)),this.plotLinesAndBands.push(d)),d},removePlotBandOrLine:function(a){for(var b=this.plotLinesAndBands,c=this.options,d=this.userOptions,e=b.length;e--;)b[e].id===a&&b[e].destroy();f([c.plotLines||[],d.plotLines||[],c.plotBands||[],d.plotBands||[]],function(b){for(e=b.length;e--;)b[e].id===a&&g(b,b[e])})}}}(a),function(a){var b=a.correctFloat,c=a.defined,d=a.destroyObjectProperties,e=a.isNumber,f=a.merge,g=a.pick,h=a.deg2rad;a.Tick=function(a,b,c,d){this.axis=a,this.pos=b,this.type=c||"",this.isNew=!0,c||d||this.addLabel()},a.Tick.prototype={addLabel:function(){var o,a=this.axis,d=a.options,e=a.chart,h=a.categories,i=a.names,j=this.pos,k=d.labels,l=a.tickPositions,m=j===l[0],n=j===l[l.length-1],i=h?g(h[j],i[j],j):j,h=this.label,l=l.info;a.isDatetimeAxis&&l&&(o=d.dateTimeLabelFormats[l.higherRanks[j]||l.unitName]),this.isFirst=m,this.isLast=n,d=a.labelFormatter.call({axis:a,chart:e,isFirst:m,isLast:n,dateTimeLabelFormat:o,value:a.isLog?b(a.lin2log(i)):i}),c(h)?h&&h.attr({text:d}):(this.labelLength=(this.label=h=c(d)&&k.enabled?e.renderer.text(d,0,0,k.useHTML).css(f(k.style)).add(a.labelGroup):null)&&h.getBBox().width,this.rotation=0)},getLabelSize:function(){return this.label?this.label.getBBox()[this.axis.horiz?"height":"width"]:0},handleOverflow:function(a){var p,b=this.axis,c=a.x,d=b.chart.chartWidth,e=b.chart.spacing,f=g(b.labelLeft,Math.min(b.pos,e[3])),e=g(b.labelRight,Math.max(b.pos+b.len,d-e[1])),i=this.label,j=this.rotation,k={left:0,center:.5,right:1}[b.labelAlign],l=i.getBBox().width,m=b.getSlotWidth(),n=m,o=1,q={};j?0>j&&c-k*l<f?p=Math.round(c/Math.cos(j*h)-f):0<j&&c+k*l>e&&(p=Math.round((d-c)/Math.cos(j*h))):(d=c+(1-k)*l,c-k*l<f?n=a.x+n*(1-k)-f:d>e&&(n=e-a.x+n*k,o=-1),n=Math.min(m,n),n<m&&"center"===b.labelAlign&&(a.x+=o*(m-n-k*(m-Math.min(l,n)))),(l>n||b.autoRotation&&(i.styles||{}).width)&&(p=n)),p&&(q.width=p,(b.options.labels.style||{}).textOverflow||(q.textOverflow="ellipsis"),i.css(q))},getPosition:function(a,b,c,d){var e=this.axis,f=e.chart,g=d&&f.oldChartHeight||f.chartHeight;return{x:a?e.translate(b+c,null,null,d)+e.transB:e.left+e.offset+(e.opposite?(d&&f.oldChartWidth||f.chartWidth)-e.right-e.left:0),y:a?g-e.bottom+e.offset-(e.opposite?e.height:0):g-e.translate(b+c,null,null,d)-e.transB}},getLabelPosition:function(a,b,d,e,f,g,i,j){var k=this.axis,l=k.transA,m=k.reversed,n=k.staggerLines,o=k.tickRotCorr||{x:0,y:0},p=f.y;return c(p)||(p=0===k.side?d.rotation?-8:-d.getBBox().height:2===k.side?o.y+8:Math.cos(d.rotation*h)*(o.y-d.getBBox(!1,0).height/2)),a=a+f.x+o.x-(g&&e?g*l*(m?-1:1):0),b=b+p-(g&&!e?g*l*(m?1:-1):0),n&&(d=i/(j||1)%n,k.opposite&&(d=n-d-1),b+=k.labelOffset/n*d),{x:a,y:Math.round(b)}},getMarkPath:function(a,b,c,d,e,f){return f.crispLine(["M",a,b,"L",a+(e?0:-c),b+(e?c:0)],d)},render:function(a,b,c){var d=this.axis,f=d.options,h=d.chart.renderer,i=d.horiz,j=this.type,k=this.label,l=this.pos,m=f.labels,n=this.gridLine,o=j?j+"Tick":"tick",p=d.tickSize(o),q=this.mark,r=!q,s=m.step,t={},u=!0,v=d.tickmarkOffset,w=this.getPosition(i,l,v,b),x=w.x,w=w.y,y=i&&x===d.pos+d.len||!i&&w===d.pos?-1:1,z=j?j+"Grid":"grid",A=f[z+"LineWidth"],B=f[z+"LineColor"],C=f[z+"LineDashStyle"],z=g(f[o+"Width"],!j&&d.isXAxis?1:0),o=f[o+"Color"];c=g(c,1),this.isActive=!0,n||(t.stroke=B,t["stroke-width"]=A,C&&(t.dashstyle=C),j||(t.zIndex=1),b&&(t.opacity=0),this.gridLine=n=h.path().attr(t).addClass("highcharts-"+(j?j+"-":"")+"grid-line").add(d.gridGroup)),!b&&n&&(l=d.getPlotLinePath(l+v,n.strokeWidth()*y,b,!0))&&n[this.isNew?"attr":"animate"]({d:l,opacity:c}),p&&(d.opposite&&(p[0]=-p[0]),r&&(this.mark=q=h.path().addClass("highcharts-"+(j?j+"-":"")+"tick").add(d.axisGroup),q.attr({stroke:o,"stroke-width":z})),q[r?"attr":"animate"]({d:this.getMarkPath(x,w,p[0],q.strokeWidth()*y,i,h),opacity:c})),k&&e(x)&&(k.xy=w=this.getLabelPosition(x,w,k,i,m,v,a,s),this.isFirst&&!this.isLast&&!g(f.showFirstLabel,1)||this.isLast&&!this.isFirst&&!g(f.showLastLabel,1)?u=!1:!i||d.isRadial||m.step||m.rotation||b||0===c||this.handleOverflow(w),s&&a%s&&(u=!1),u&&e(w.y)?(w.opacity=c,k[this.isNew?"attr":"animate"](w)):k.attr("y",-9999),this.isNew=!1)},destroy:function(){d(this,this.axis)}}}(a),function(a){var b=a.addEvent,c=a.animObject,d=a.arrayMax,e=a.arrayMin,f=a.AxisPlotLineOrBandExtension,g=a.color,h=a.correctFloat,i=a.defaultOptions,j=a.defined,k=a.deg2rad,l=a.destroyObjectProperties,m=a.each,n=a.extend,o=a.fireEvent,p=a.format,q=a.getMagnitude,r=a.grep,s=a.inArray,t=a.isArray,u=a.isNumber,v=a.isString,w=a.merge,x=a.normalizeTickInterval,y=a.pick,z=a.PlotLineOrBand,A=a.removeEvent,B=a.splat,C=a.syncTimeout,D=a.Tick;a.Axis=function(){this.init.apply(this,arguments)},a.Axis.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:{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 d=c.isX;this.chart=a,this.horiz=a.inverted?!d:d,this.isXAxis=d,this.coll=this.coll||(d?"xAxis":"yAxis"),this.opposite=c.opposite,this.side=c.side||(this.horiz?this.opposite?0:2:this.opposite?1:3),this.setOptions(c);var e=this.options,f=e.type;this.labelFormatter=e.labels.formatter||this.defaultLabelFormatter,this.userOptions=c,this.minPixelPadding=0,this.reversed=e.reversed,this.visible=!1!==e.visible,this.zoomEnabled=!1!==e.zoomEnabled,this.hasNames="category"===f||!0===e.categories,this.categories=e.categories||this.hasNames,this.names=this.names||[],this.isLog="logarithmic"===f,this.isDatetimeAxis="datetime"===f,this.isLinked=j(e.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len=0,this.minRange=this.userMinRange=e.minRange||e.maxZoom,this.range=e.range,this.offset=e.offset||0,this.stacks={},this.oldStacks={},
this.stacksTouched=0,this.min=this.max=null,this.crosshair=y(e.crosshair,B(a.options.tooltip.crosshairs)[d?0:1],!1);var g;c=this.options.events,-1===s(this,a.axes)&&(d?a.axes.splice(a.xAxis.length,0,this):a.axes.push(this),a[this.coll].push(this)),this.series=this.series||[],a.inverted&&d&&void 0===this.reversed&&(this.reversed=!0),this.removePlotLine=this.removePlotBand=this.removePlotBandOrLine;for(g in c)b(this,g,c[g]);this.isLog&&(this.val2lin=this.log2lin,this.lin2val=this.lin2log)},setOptions:function(a){this.options=w(this.defaultOptions,"yAxis"===this.coll&&this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],w(i[this.coll],a))},defaultLabelFormatter:function(){var j,b=this.axis,c=this.value,d=b.categories,e=this.dateTimeLabelFormat,f=i.lang,g=f.numericSymbols,f=f.numericSymbolMagnitude||1e3,h=g&&g.length,k=b.options.labels.format,b=b.isLog?c:b.tickInterval;if(k)j=p(k,this);else if(d)j=c;else if(e)j=a.dateFormat(e,c);else if(h&&1e3<=b)for(;h--&&void 0===j;)d=Math.pow(f,h+1),b>=d&&0===10*c%d&&null!==g[h]&&0!==c&&(j=a.numberFormat(c/d,-1)+g[h]);return void 0===j&&(j=1e4<=Math.abs(c)?a.numberFormat(c,-1):a.numberFormat(c,-1,void 0,"")),j},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(),m(a.series,function(c){if(c.visible||!b.options.chart.ignoreHiddenSeries){var h,f=c.options,g=f.threshold;a.hasVisibleSeries=!0,a.isLog&&0>=g&&(g=null),a.isXAxis?(f=c.xData,f.length&&(c=e(f),u(c)||c instanceof Date||(f=r(f,function(a){return u(a)}),c=e(f)),a.dataMin=Math.min(y(a.dataMin,f[0]),c),a.dataMax=Math.max(y(a.dataMax,f[0]),d(f)))):(c.getExtremes(),h=c.dataMax,c=c.dataMin,j(c)&&j(h)&&(a.dataMin=Math.min(y(a.dataMin,c),c),a.dataMax=Math.max(y(a.dataMax,h),h)),j(g)&&(a.threshold=g),(!f.softThreshold||a.isLog)&&(a.softThreshold=!1))}})},translate:function(a,b,c,d,e,f){var g=this.linkedParent||this,h=1,i=0,j=d?g.oldTransA:g.transA;d=d?g.oldMin:g.min;var k=g.minPixelPadding;return e=(g.isOrdinal||g.isBroken||g.isLog&&e)&&g.lin2val,j||(j=g.transA),c&&(h*=-1,i=g.len),g.reversed&&(h*=-1,i-=h*(g.sector||g.len)),b?(a=(a*h+i-k)/j+d,e&&(a=g.lin2val(a))):(e&&(a=g.val2lin(a)),a=h*(a-d)*j+i+h*k+(u(f)?j*f: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,d,e){var i,j,m,f=this.chart,g=this.left,h=this.top,k=c&&f.oldChartHeight||f.chartHeight,l=c&&f.oldChartWidth||f.chartWidth;i=this.transB;var n=function(a,b,c){return(a<b||a>c)&&(d?a=Math.min(Math.max(b,a),c):m=!0),a};return e=y(e,this.translate(a,null,null,c)),a=c=Math.round(e+i),i=j=Math.round(k-e-i),u(e)?this.horiz?(i=h,j=k-this.bottom,a=c=n(a,g,g+this.width)):(a=g,c=l-this.right,i=j=n(i,h,h+this.height)):m=!0,m&&!d?null:f.renderer.crispLine(["M",a,i,"L",c,j],b||1)},getLinearTickPositions:function(a,b,c){var d,e=h(Math.floor(b/a)*a),f=h(Math.ceil(c/a)*a),g=[];if(b===c&&u(b))return[b];for(b=e;b<=f&&(g.push(b),b=h(b+a),b!==d);)d=b;return g},getMinorTickPositions:function(){var e,a=this.options,b=this.tickPositions,c=this.minorTickInterval,d=[],f=this.pointRangePadding||0;e=this.min-f;var f=this.max+f,g=f-e;if(g&&g/c<this.len/3)if(this.isLog)for(f=b.length,e=1;e<f;e++)d=d.concat(this.getLogTickPositions(c,b[e-1],b[e],!0));else if(this.isDatetimeAxis&&"auto"===a.minorTickInterval)d=d.concat(this.getTimeTicks(this.normalizeTimeTickInterval(c),e,f,a.startOfWeek));else for(b=e+(b[0]-e)%c;b<=f&&b!==d[0];b+=c)d.push(b);return 0!==d.length&&this.trimTicks(d,a.startOnTick,a.endOnTick),d},adjustForMinRange:function(){var f,h,i,k,l,n,o,a=this.options,b=this.min,c=this.max,g=this.dataMax-this.dataMin>=this.minRange;this.isXAxis&&void 0===this.minRange&&!this.isLog&&(j(a.min)||j(a.max)?this.minRange=null:(m(this.series,function(a){for(l=a.xData,i=n=a.xIncrement?1:l.length-1;0<i;i--)k=l[i]-l[i-1],(void 0===h||k<h)&&(h=k)}),this.minRange=Math.min(5*h,this.dataMax-this.dataMin))),c-b<this.minRange&&(o=this.minRange,f=(o-c+b)/2,f=[b-f,y(a.min,b-f)],g&&(f[2]=this.isLog?this.log2lin(this.dataMin):this.dataMin),b=d(f),c=[b+o,y(a.max,b+o)],g&&(c[2]=this.isLog?this.log2lin(this.dataMax):this.dataMax),c=e(c),c-b<o&&(f[0]=c-o,f[1]=y(a.min,c-o),b=d(f))),this.min=b,this.max=c},getClosest:function(){var a;return this.categories?a=1:m(this.series,function(b){var c=b.closestPointRange,d=b.visible||!b.chart.options.chart.ignoreHiddenSeries;!b.noSharedTooltip&&j(c)&&d&&(a=j(a)?Math.min(a,c):c)}),a},nameToX:function(a){var e,b=t(this.categories),c=b?this.categories:this.names,d=a.options.x;return a.series.requireSorting=!1,j(d)||(d=!1===this.options.uniqueNames?a.series.autoIncrement():s(a.name,c)),-1===d?b||(e=c.length):e=d,this.names[e]=a.name,e},updateNames:function(){var a=this;0<this.names.length&&(this.names.length=0,this.minRange=void 0,m(this.series||[],function(b){b.xIncrement=null,b.points&&!b.isDirtyData||(b.processData(),b.generatePoints()),m(b.points,function(c,d){var e;c.options&&void 0===c.options.x&&(e=a.nameToX(c),e!==c.x&&(c.x=e,b.xData[d]=e))})}))},setAxisTranslation:function(a){var e,b=this,c=b.max-b.min,d=b.axisPointRange||0,f=0,g=0,h=b.linkedParent,i=!!b.categories,j=b.transA,k=b.isXAxis;(k||i||d)&&(e=b.getClosest(),h?(f=h.minPointOffset,g=h.pointRangePadding):m(b.series,function(a){var c=i?1:k?y(a.options.pointRange,e,0):b.axisPointRange||0;a=a.options.pointPlacement,d=Math.max(d,c),b.single||(f=Math.max(f,v(a)?0:c/2),g=Math.max(g,"on"===a?0:c))}),h=b.ordinalSlope&&e?b.ordinalSlope/e:1,b.minPointOffset=f*=h,b.pointRangePadding=g*=h,b.pointRange=Math.min(d,c),k&&(b.closestPointRange=e)),a&&(b.oldTransA=j),b.translationSlope=b.transA=j=b.len/(c+g||1),b.transB=b.horiz?b.left:b.bottom,b.minPixelPadding=j*f},minFromRange:function(){return this.max-this.range},setTickInterval:function(b){var z,A,B,C,c=this,d=c.chart,e=c.options,f=c.isLog,g=c.log2lin,i=c.isDatetimeAxis,k=c.isXAxis,l=c.isLinked,n=e.maxPadding,p=e.minPadding,r=e.tickInterval,s=e.tickPixelInterval,t=c.categories,v=c.threshold,w=c.softThreshold;i||t||l||this.getTickAmount(),B=y(c.userMin,e.min),C=y(c.userMax,e.max),l?(c.linkedParent=d[c.coll][e.linkedTo],d=c.linkedParent.getExtremes(),c.min=y(d.min,d.dataMin),c.max=y(d.max,d.dataMax),e.type!==c.linkedParent.options.type&&a.error(11,1)):(!w&&j(v)&&(c.dataMin>=v?(z=v,p=0):c.dataMax<=v&&(A=v,n=0)),c.min=y(B,z,c.dataMin),c.max=y(C,A,c.dataMax)),f&&(!b&&0>=Math.min(c.min,y(c.dataMin,c.min))&&a.error(10,1),c.min=h(g(c.min),15),c.max=h(g(c.max),15)),c.range&&j(c.max)&&(c.userMin=c.min=B=Math.max(c.min,c.minFromRange()),c.userMax=C=c.max,c.range=null),o(c,"foundExtremes"),c.beforePadding&&c.beforePadding(),c.adjustForMinRange(),!(t||c.axisPointRange||c.usePercentage||l)&&j(c.min)&&j(c.max)&&(g=c.max-c.min)&&(!j(B)&&p&&(c.min-=g*p),!j(C)&&n&&(c.max+=g*n)),u(e.floor)?c.min=Math.max(c.min,e.floor):u(e.softMin)&&(c.min=Math.min(c.min,e.softMin)),u(e.ceiling)?c.max=Math.min(c.max,e.ceiling):u(e.softMax)&&(c.max=Math.max(c.max,e.softMax)),w&&j(c.dataMin)&&(v=v||0,!j(B)&&c.min<v&&c.dataMin>=v?c.min=v:!j(C)&&c.max>v&&c.dataMax<=v&&(c.max=v)),c.tickInterval=c.min===c.max||void 0===c.min||void 0===c.max?1:l&&!r&&s===c.linkedParent.options.tickPixelInterval?r=c.linkedParent.tickInterval:y(r,this.tickAmount?(c.max-c.min)/Math.max(this.tickAmount-1,1):void 0,t?1:(c.max-c.min)*s/Math.max(c.len,s)),k&&!b&&m(c.series,function(a){a.processData(c.min!==c.oldMin||c.max!==c.oldMax)}),c.setAxisTranslation(!0),c.beforeSetTickPositions&&c.beforeSetTickPositions(),c.postProcessTickInterval&&(c.tickInterval=c.postProcessTickInterval(c.tickInterval)),c.pointRange&&!r&&(c.tickInterval=Math.max(c.pointRange,c.tickInterval)),b=y(e.minTickInterval,c.isDatetimeAxis&&c.closestPointRange),!r&&c.tickInterval<b&&(c.tickInterval=b),i||f||r||(c.tickInterval=x(c.tickInterval,null,q(c.tickInterval),y(e.allowDecimals,!(.5<c.tickInterval&&5>c.tickInterval&&1e3<c.max&&9999>c.max)),!!this.tickAmount)),this.tickAmount||(c.tickInterval=c.unsquish()),this.setTickPositions()},setTickPositions:function(){var b,g,a=this.options,c=a.tickPositions,d=a.tickPositioner,e=a.startOnTick,f=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.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),b.length>this.len&&(b=[b[0],b.pop()]),this.tickPositions=b,d&&(d=d.apply(this,[this.min,this.max])))&&(this.tickPositions=b=d),this.isLinked||(this.trimTicks(b,e,f),this.min===this.max&&j(this.min)&&!this.tickAmount&&(g=!0,this.min-=.5,this.max+=.5),this.single=g,c||d||this.adjustTickAmount())},trimTicks:function(a,b,c){var d=a[0],e=a[a.length-1],f=this.minPointOffset||0;if(b)this.min=d;else for(;this.min-f>a[0];)a.shift();if(c)this.max=e;else for(;this.max+f<a[a.length-1];)a.pop();0===a.length&&j(d)&&a.push((e+d)/2)},alignToOthers:function(){var b,a={},c=this.options;return!1===this.chart.options.chart.alignTicks||!1===c.alignTicks||this.isLog||m(this.chart[this.coll],function(c){var d=c.options,d=[c.horiz?d.left:d.top,d.width,d.height,d.pane].join();c.series.length&&(a[d]?b=!0:a[d]=1)}),b},getTickAmount:function(){var a=this.options,b=a.tickAmount,c=a.tickPixelInterval;!j(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),4>b&&(this.finalTickAmt=b,b=5),this.tickAmount=b},adjustTickAmount:function(){var a=this.tickInterval,b=this.tickPositions,c=this.tickAmount,d=this.finalTickAmt,e=b&&b.length;if(e<c){for(;b.length<c;)b.push(h(b[b.length-1]+a));this.transA*=(e-1)/(c-1),this.max=b[b.length-1]}else e>c&&(this.tickInterval*=2,this.setTickPositions());if(j(d)){for(a=c=b.length;a--;)(3===d&&1===a%2||2>=d&&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,m(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,d,e){var f=this,g=f.chart;c=y(c,!0),m(f.series,function(a){delete a.kdTree}),e=n(e,{min:a,max:b}),o(f,"setExtremes",e,function(){f.userMin=a,f.userMax=b,f.eventArgs=e,c&&g.redraw(d)})},zoom:function(a,b){var c=this.dataMin,d=this.dataMax,e=this.options,f=Math.min(c,y(e.min,c)),e=Math.max(d,y(e.max,d));return a===this.min&&b===this.max||(this.allowZoomOutside||(j(c)&&(a<f&&(a=f),a>e&&(a=e)),j(d)&&(b<f&&(b=f),b>e&&(b=e))),this.displayBtn=void 0!==a||void 0!==b,this.setExtremes(a,b,!1,void 0,{trigger:"zoom"})),!0},setAxisSize:function(){var a=this.chart,b=this.options,c=b.offsetLeft||0,d=this.horiz,e=y(b.width,a.plotWidth-c+(b.offsetRight||0)),f=y(b.height,a.plotHeight),g=y(b.top,a.plotTop),b=y(b.left,a.plotLeft+c),c=/%$/;c.test(f)&&(f=Math.round(parseFloat(f)/100*a.plotHeight)),c.test(g)&&(g=Math.round(parseFloat(g)/100*a.plotHeight+a.plotTop)),this.left=b,this.top=g,this.width=e,this.height=f,this.bottom=a.chartHeight-f-g,this.right=a.chartWidth-e-b,this.len=Math.max(d?e:f,0),this.pos=d?b:g},getExtremes:function(){var a=this.isLog,b=this.lin2log;return{min:a?h(b(this.min)):this.min,max:a?h(b(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(a){var b=this.isLog,c=this.lin2log,d=b?c(this.min):this.min,b=b?c(this.max):this.max;return null===a?a=d:d>a?a=d:b<a&&(a=b),this.translate(a,0,1,0,1)},autoLabelAlign:function(a){return a=(y(a,0)-90*this.side+720)%360,15<a&&165>a?"right":195<a&&345>a?"left":"center"},tickSize:function(a){var b=this.options,c=b[a+"Length"],d=y(b[a+"Width"],"tick"===a&&this.isXAxis?1:0);if(d&&c)return"inside"===b[a+"Position"]&&(c=-c),[c,d]},labelMetrics:function(){return this.chart.renderer.fontMetrics(this.options.labels.style&&this.options.labels.style.fontSize,this.ticks[0]&&this.ticks[0].label)},unsquish:function(){var f,i,n,a=this.options.labels,b=this.horiz,c=this.tickInterval,d=c,e=this.len/(((this.categories?1:0)+this.max-this.min)/c),g=a.rotation,h=this.labelMetrics(),l=Number.MAX_VALUE,o=function(a){return a/=e||1,a=1<a?Math.ceil(a):1,a*c};return b?(n=!a.staggerLines&&!a.step&&(j(g)?[g]:e<y(a.autoRotationLimit,80)&&a.autoRotation))&&m(n,function(a){var b;(a===g||a&&-90<=a&&90>=a)&&(i=o(Math.abs(h.h/Math.sin(k*a))),b=i+Math.abs(a/360),b<l&&(l=b,f=a,d=i))}):a.step||(d=o(h.h)),this.autoRotation=n,this.labelRotation=y(f,g),d},getSlotWidth:function(){var a=this.chart,b=this.horiz,c=this.options.labels,d=Math.max(this.tickPositions.length-(this.categories?0:1),1),e=a.margin[3];return b&&2>(c.step||0)&&!c.rotation&&(this.staggerLines||1)*a.plotWidth/d||!b&&(e&&e-a.spacing[3]||.33*a.chartWidth)},renderUnsquish:function(){var l,o,p,a=this.chart,b=a.renderer,c=this.tickPositions,d=this.ticks,e=this.options.labels,f=this.horiz,g=this.getSlotWidth(),h=Math.max(1,Math.round(g-2*(e.padding||5))),i={},j=this.labelMetrics(),k=e.style&&e.style.textOverflow,n=0;if(v(e.rotation)||(i.rotation=e.rotation||0),m(c,function(a){(a=d[a])&&a.labelLength>n&&(n=a.labelLength)}),this.maxLabelLength=n,this.autoRotation)n>h&&n>j.h?i.rotation=this.labelRotation:this.labelRotation=0;else if(g&&(l={width:h+"px"},!k))for(l.textOverflow="clip",o=c.length;!f&&o--;)p=c[o],(h=d[p].label)&&(h.styles&&"ellipsis"===h.styles.textOverflow?h.css({textOverflow:"clip"}):d[p].labelLength>g&&h.css({width:g+"px"}),h.getBBox().height>this.len/c.length-(j.h-j.f)&&(h.specCss={textOverflow:"ellipsis"}));i.rotation&&(l={width:(n>.5*a.chartHeight?.33*a.chartHeight:a.chartHeight)+"px"},k||(l.textOverflow="ellipsis")),(this.labelAlign=e.align||this.autoLabelAlign(this.labelRotation))&&(i.align=this.labelAlign),m(c,function(a){var b=(a=d[a])&&a.label;b&&(b.attr(i),l&&b.css(w(l,b.specCss)),delete b.specCss,a.rotation=i.rotation)}),this.tickRotCorr=b.rotCorr(j.b,this.labelRotation||0,0!==this.side)},hasData:function(){return this.hasVisibleSeries||j(this.min)&&j(this.max)&&!!this.tickPositions},addTitle:function(a){var f,b=this.chart.renderer,c=this.horiz,d=this.opposite,e=this.options.title;this.axisTitle||((f=e.textAlign)||(f=(c?{low:"left",middle:"center",high:"right"}:{low:d?"right":"left",middle:"center",high:d?"left":"right"})[e.align]),this.axisTitle=b.text(e.text,0,0,e.useHTML).attr({zIndex:7,rotation:e.rotation||0,align:f}).addClass("highcharts-axis-title").css(e.style).add(this.axisGroup),this.axisTitle.isNew=!0),this.axisTitle[a?"show":"hide"](!0)},getOffset:function(){var k,l,o,v,a=this,b=a.chart,c=b.renderer,d=a.options,e=a.tickPositions,f=a.ticks,g=a.horiz,h=a.side,i=b.inverted?[1,0,3,2][h]:h,n=0,p=0,q=d.title,r=d.labels,s=0,t=b.axisOffset,b=b.clipOffset,u=[-1,1,1,-1][h],w=d.className,x=a.axisParent,z=this.tickSize("tick");if(k=a.hasData(),a.showAxis=l=k||y(d.showEmpty,!0),a.staggerLines=a.horiz&&r.staggerLines,a.axisGroup||(a.gridGroup=c.g("grid").attr({zIndex:d.gridZIndex||1}).addClass("highcharts-"+this.coll.toLowerCase()+"-grid "+(w||"")).add(x),a.axisGroup=c.g("axis").attr({zIndex:d.zIndex||2}).addClass("highcharts-"+this.coll.toLowerCase()+" "+(w||"")).add(x),a.labelGroup=c.g("axis-labels").attr({zIndex:r.zIndex||7}).addClass("highcharts-"+a.coll.toLowerCase()+"-labels "+(w||"")).add(x)),k||a.isLinked)m(e,function(b){f[b]?f[b].addLabel():f[b]=new D(a,b)}),a.renderUnsquish(),!1===r.reserveSpace||0!==h&&2!==h&&{1:"left",3:"right"}[h]!==a.labelAlign&&"center"!==a.labelAlign||m(e,function(a){s=Math.max(f[a].getLabelSize(),s)}),a.staggerLines&&(s*=a.staggerLines,a.labelOffset=s*(a.opposite?-1:1));else for(v in f)f[v].destroy(),delete f[v];q&&q.text&&!1!==q.enabled&&(a.addTitle(l),l&&(n=a.axisTitle.getBBox()[g?"height":"width"],o=q.offset,p=j(o)?0:y(q.margin,g?5:10))),a.renderLine(),a.offset=u*y(d.offset,t[h]),a.tickRotCorr=a.tickRotCorr||{x:0,y:0},c=0===h?-a.labelMetrics().h:2===h?a.tickRotCorr.y:0,p=Math.abs(s)+p,s&&(p=p-c+u*(g?y(r.y,a.tickRotCorr.y+8*u):r.x)),a.axisTitleMargin=y(o,p),t[h]=Math.max(t[h],a.axisTitleMargin+n+u*a.offset,p,k&&e.length&&z?z[0]:0),d=d.offset?0:2*Math.floor(a.axisLine.strokeWidth()/2),b[i]=Math.max(b[i],d)},getLinePath:function(a){var b=this.chart,c=this.opposite,d=this.offset,e=this.horiz,f=this.left+(c?this.width:0)+d,d=b.chartHeight-this.bottom-(c?this.height:0)+d;return c&&(a*=-1),b.renderer.crispLine(["M",e?this.left:f,e?d:this.top,"L",e?b.chartWidth-this.right:f,e?d: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,d=this.len,e=this.options.title,f=a?b:c,g=this.opposite,h=this.offset,i=e.x||0,j=e.y||0,k=this.chart.renderer.fontMetrics(e.style&&e.style.fontSize,this.axisTitle).f,d={low:f+(a?0:d),middle:f+d/2,high:f+(a?d:0)}[e.align],b=(a?c+this.height:b)+(a?1:-1)*(g?-1:1)*this.axisTitleMargin+(2===this.side?k:0);return{x:a?d+i:b+(g?this.width:0)+h+i,y:a?b+j-(g?this.height:0)+h:d+j}},render:function(){var w,x,a=this,b=a.chart,d=b.renderer,e=a.options,f=a.isLog,g=a.lin2log,h=a.isLinked,i=a.tickPositions,j=a.axisTitle,k=a.ticks,l=a.minorTicks,n=a.alternateBands,o=e.stackLabels,p=e.alternateGridColor,q=a.tickmarkOffset,r=a.axisLine,s=b.hasRendered&&u(a.oldMin),t=a.showAxis,v=c(d.globalAnimation);a.labelEdge.length=0,a.overlap=!1,m([k,l,n],function(a){for(var b in a)a[b].isActive=!1}),(a.hasData()||h)&&(a.minorTickInterval&&!a.categories&&m(a.getMinorTickPositions(),function(b){l[b]||(l[b]=new D(a,b,"minor")),s&&l[b].isNew&&l[b].render(null,!0),l[b].render(null,!1,1)}),i.length&&(m(i,function(b,c){(!h||b>=a.min&&b<=a.max)&&(k[b]||(k[b]=new D(a,b)),s&&k[b].isNew&&k[b].render(c,!0,.1),k[b].render(c))}),q&&(0===a.min||a.single)&&(k[-1]||(k[-1]=new D(a,-1,null,!0)),k[-1].render(-1))),p&&m(i,function(c,d){x=void 0!==i[d+1]?i[d+1]+q:a.max-q,0===d%2&&c<a.max&&x<=a.max+(b.polar?-q:q)&&(n[c]||(n[c]=new z(a)),w=c+q,n[c].options={from:f?g(w):w,to:f?g(x):x,color:p},n[c].render(),n[c].isActive=!0)}),a._addedPlotLB||(m((e.plotLines||[]).concat(e.plotBands||[]),function(b){a.addPlotBandOrLine(b)}),a._addedPlotLB=!0)),m([k,l,n],function(a){var c,d,e=[],f=v.duration;for(c in a)a[c].isActive||(a[c].render(c,!1,0),a[c].isActive=!1,e.push(c));C(function(){for(d=e.length;d--;)a[e[d]]&&!a[e[d]].isActive&&(a[e[d]].destroy(),delete a[e[d]])},a!==n&&b.hasRendered&&f?f:0)}),r&&(r[r.isPlaced?"animate":"attr"]({d:this.getLinePath(r.strokeWidth())}),r.isPlaced=!0,r[t?"show":"hide"](!0)),j&&t&&(j[j.isNew?"attr":"animate"](a.getTitlePosition()),j.isNew=!1),o&&o.enabled&&a.renderStackTotals(),a.isDirty=!1},redraw:function(){this.visible&&(this.render(),m(this.plotLinesAndBands,function(a){a.render()})),m(this.series,function(a){a.isDirty=!0})},keepProps:"extKey hcEvents names series userMax userMin".split(" "),destroy:function(a){var d,f,b=this,c=b.stacks,e=b.plotLinesAndBands;a||A(b);for(d in c)l(c[d]),c[d]=null;if(m([b.ticks,b.minorTicks,b.alternateBands],function(a){l(a)}),e)for(a=e.length;a--;)e[a].destroy();m("stackTotalGroup axisLine axisTitle axisGroup gridGroup labelGroup cross".split(" "),function(a){b[a]&&(b[a]=b[a].destroy())});for(f in b)b.hasOwnProperty(f)&&-1===s(f,b.keepProps)&&delete b[f]},drawCrosshair:function(a,b){var c,f,d=this.crosshair,e=y(d.snap,!0),h=this.cross;a||(a=this.cross&&this.cross.e),this.crosshair&&!1!==(j(b)||!e)?(e?j(b)&&(f=this.isXAxis?b.plotX:this.len-b.plotY):f=a&&(this.horiz?a.chartX-this.pos:this.len-a.chartY+this.pos),j(f)&&(c=this.getPlotLinePath(b&&(this.isXAxis?b.x:y(b.stackY,b.y)),null,null,null,f)||null),j(c)?(b=this.categories&&!this.isRadial,h||(this.cross=h=this.chart.renderer.path().addClass("highcharts-crosshair highcharts-crosshair-"+(b?"category ":"thin ")+d.className).attr({zIndex:y(d.zIndex,2)}).add(),h.attr({stroke:d.color||(b?g("#ccd6eb").setOpacity(.25).get():"#cccccc"),"stroke-width":y(d.width,1)}),d.dashStyle&&h.attr({dashstyle:d.dashStyle})),h.show().attr({d:c}),b&&!d.width&&h.attr({"stroke-width":this.transA}),this.cross.e=a):this.hideCrosshair()):this.hideCrosshair()},hideCrosshair:function(){this.cross&&this.cross.hide()}},n(a.Axis.prototype,f)}(a),function(a){var b=a.Axis,c=a.Date,d=a.dateFormat,e=a.defaultOptions,f=a.defined,g=a.each,h=a.extend,i=a.getMagnitude,j=a.getTZOffset,k=a.normalizeTickInterval,l=a.pick,m=a.timeUnits;b.prototype.getTimeTicks=function(a,b,i,k){var q,v,n=[],o={},p=e.global.useUTC,r=new c(b-j(b)),s=c.hcMakeTime,t=a.unitRange,u=a.count;if(f(b)){r[c.hcSetMilliseconds](t>=m.second?0:u*Math.floor(r.getMilliseconds()/u)),t>=m.second&&r[c.hcSetSeconds](t>=m.minute?0:u*Math.floor(r.getSeconds()/u)),t>=m.minute&&r[c.hcSetMinutes](t>=m.hour?0:u*Math.floor(r[c.hcGetMinutes]()/u)),t>=m.hour&&r[c.hcSetHours](t>=m.day?0:u*Math.floor(r[c.hcGetHours]()/u)),t>=m.day&&r[c.hcSetDate](t>=m.month?1:u*Math.floor(r[c.hcGetDate]()/u)),t>=m.month&&(r[c.hcSetMonth](t>=m.year?0:u*Math.floor(r[c.hcGetMonth]()/u)),q=r[c.hcGetFullYear]()),t>=m.year&&r[c.hcSetFullYear](q-q%u),t===m.week&&r[c.hcSetDate](r[c.hcGetDate]()-r[c.hcGetDay]()+l(k,1)),q=r[c.hcGetFullYear](),k=r[c.hcGetMonth]();var w=r[c.hcGetDate](),x=r[c.hcGetHours]();for((c.hcTimezoneOffset||c.hcGetTimezoneOffset)&&(v=(!p||!!c.hcGetTimezoneOffset)&&(i-b>4*m.month||j(b)!==j(i)),r=r.getTime(),r=new c(r+j(r))),p=r.getTime(),b=1;p<i;)n.push(p),p=t===m.year?s(q+b*u,0):t===m.month?s(q,k+b*u):!v||t!==m.day&&t!==m.week?v&&t===m.hour?s(q,k,w,x+b*u):p+t*u:s(q,k,w+b*u*(t===m.day?1:7)),b++;n.push(p),t<=m.hour&&g(n,function(a){"000000000"===d("%H%M%S%L",a)&&(o[a]="day")})}return n.info=h(a,{higherRanks:o,totalRange:t*u}),n},b.prototype.normalizeTimeTickInterval=function(a,b){var c=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=c[c.length-1];var f,d=m[b[0]],e=b[1];for(f=0;f<c.length&&(b=c[f],d=m[b[0]],e=b[1],!(c[f+1]&&a<=(d*e[e.length-1]+m[c[f+1][0]])/2));f++);return d===m.year&&a<5*d&&(e=[1,2,5]),a=k(a/d,e,"year"===b[0]?Math.max(i(a/d),1):1),{unitRange:d,count:a,unitName:b[0]}}}(a),function(a){var b=a.Axis,c=a.getMagnitude,d=a.map,e=a.normalizeTickInterval,f=a.pick;b.prototype.getLogTickPositions=function(a,b,g,h){var i=this.options,j=this.len,k=this.lin2log,l=this.log2lin,m=[];if(h||(this._minorAutoInterval=null),.5<=a)a=Math.round(a),m=this.getLinearTickPositions(a,b,g);else if(.08<=a)for(var n,o,p,q,r,j=Math.floor(b),i=.3<a?[1,2,4]:.15<a?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9];j<g+1&&!r;j++)for(o=i.length,n=0;n<o&&!r;n++)p=l(k(j)*i[n]),p>b&&(!h||q<=g)&&void 0!==q&&m.push(q),q>g&&(r=!0),q=p;else b=k(b),g=k(g),a=i[h?"minorTickInterval":"tickInterval"],a=f("auto"===a?null:a,this._minorAutoInterval,i.tickPixelInterval/(h?5:1)*(g-b)/((h?j/this.tickPositions.length:j)||1)),a=e(a,null,c(a)),m=d(this.getLinearTickPositions(a,b,g),l),h||(this._minorAutoInterval=a/5);return h||(this.tickInterval=a),m},b.prototype.log2lin=function(a){return Math.log(a)/Math.LN10},b.prototype.lin2log=function(a){return Math.pow(10,a)}}(a),function(a){var b=a.dateFormat,c=a.each,d=a.extend,e=a.format,f=a.isNumber,g=a.map,h=a.merge,i=a.pick,j=a.splat,k=a.syncTimeout,l=a.timeUnits;a.Tooltip=function(){this.init.apply(this,arguments)},a.Tooltip.prototype={init:function(a,b){this.chart=a,this.options=b,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.split=b.split&&!a.inverted,this.shared=b.shared||this.split},cleanSplit:function(a){c(this.chart.series,function(b){var c=b&&b.tt;c&&(!c.isActive||a?b.tt=c.destroy():c.isActive=!1)})},getLabel:function(){var a=this.chart.renderer,b=this.options;return this.label||(this.split?this.label=a.g("tooltip"):(this.label=a.label("",0,0,b.shape||"callout",null,null,b.useHTML,null,"tooltip").attr({padding:b.padding,r:b.borderRadius}),this.label.attr({fill:b.backgroundColor,"stroke-width":b.borderWidth}).css(b.style).shadow(b.shadow)),this.label.attr({zIndex:8}).add()),this.label},update:function(a){this.destroy(),this.init(this.chart,h(!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,b,c,e){var f=this,g=f.now,h=!1!==f.options.animation&&!f.isHidden&&(1<Math.abs(a-g.x)||1<Math.abs(b-g.y)),i=f.followPointer||1<f.len;d(g,{x:h?(2*g.x+a)/3:a,y:h?(g.y+b)/2:b,anchorX:i?void 0:h?(2*g.anchorX+c)/3:c,anchorY:i?void 0:h?(g.anchorY+e)/2:e}),f.getLabel().attr(g),h&&(clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){f&&f.move(a,b,c,e)},32))},hide:function(a){var b=this;clearTimeout(this.hideTimer),a=i(a,this.options.hideDelay,500),this.isHidden||(this.hideTimer=k(function(){b.getLabel()[a?"fadeOut":"hide"](),b.isHidden=!0},a))},getAnchor:function(a,b){var d,m,n,e=this.chart,f=e.inverted,h=e.plotTop,i=e.plotLeft,k=0,l=0;return a=j(a),d=a[0].tooltipPos,this.followPointer&&b&&(void 0===b.chartX&&(b=e.pointer.normalize(b)),d=[b.chartX-e.plotLeft,b.chartY-h]),d||(c(a,function(a){m=a.series.yAxis,n=a.series.xAxis,k+=a.plotX+(!f&&n?n.left-i:0),l+=(a.plotLow?(a.plotLow+a.plotHigh)/2:a.plotY)+(!f&&m?m.top-h:0)}),k/=a.length,l/=a.length,d=[f?e.plotWidth-l:k,this.shared&&!f&&1<a.length&&b?b.chartY-h:f?e.plotHeight-k:l]),g(d,Math.round)},getPosition:function(a,b,c){var h,d=this.chart,e=this.distance,f={},g=c.h||0,j=["y",d.chartHeight,b,c.plotY+d.plotTop,d.plotTop,d.plotTop+d.plotHeight],k=["x",d.chartWidth,a,c.plotX+d.plotLeft,d.plotLeft,d.plotLeft+d.plotWidth],l=!this.followPointer&&i(c.ttBelow,!d.inverted==!!c.negative),m=function(a,b,c,d,h,i){var j=c<d-e,k=d+e+c<b,m=d-e-c;if(d+=e,l&&k)f[a]=d;else if(!l&&j)f[a]=m;else if(j)f[a]=Math.min(i-c,0>m-g?m:m-g);else{if(!k)return!1;f[a]=Math.max(h,d+g+c>b?d:d+g)}},n=function(a,b,c,d){var g;return d<e||d>b-e?g=!1:f[a]=d<c/2?1:d>b-c/2?b-c-2:d-c/2,g},o=function(a){var b=j;j=k,k=b,h=a},p=function(){!1!==m.apply(0,j)?!1!==n.apply(0,k)||h||(o(!0),p()):h?f.x=f.y=0:(o(!0),p())};return(d.inverted||1<this.len)&&o(),p(),f},defaultFormatter:function(a){var c,b=this.points||j(this);return c=[a.tooltipFooterHeaderFormatter(b[0])],c=c.concat(a.bodyFormatter(b)),c.push(a.tooltipFooterHeaderFormatter(b[0],!0)),c},refresh:function(a,b){var e,g,h,d=this.chart,f=this.options,k={},l=[];e=f.formatter||this.defaultFormatter;var k=d.hoverPoints,m=this.shared;clearTimeout(this.hideTimer),this.followPointer=j(a)[0].series.tooltipOptions.followPointer,h=this.getAnchor(a,b),b=h[0],g=h[1],!m||a.series&&a.series.noSharedTooltip?k=a.getLabelConfig():(d.hoverPoints=a,k&&c(k,function(a){a.setState()}),c(a,function(a){a.setState("hover"),l.push(a.getLabelConfig())}),k={x:a[0].category,y:a[0].y},k.points=l,this.len=l.length,a=a[0]),k=e.call(k,this),m=a.series,this.distance=i(m.tooltipOptions.distance,16),!1===k?this.hide():(e=this.getLabel(),this.isHidden&&e.attr({opacity:1}).show(),this.split?this.renderSplit(k,d.hoverPoints):(e.attr({text:k&&k.join?k.join(""):k}),e.removeClass(/highcharts-color-[\d]+/g).addClass("highcharts-color-"+i(a.colorIndex,m.colorIndex)),e.attr({stroke:f.borderColor||a.color||m.color||"#666666"}),this.updatePosition({plotX:b,plotY:g,negative:a.negative,ttBelow:a.ttBelow,h:h[2]||0})),this.isHidden=!1)},renderSplit:function(b,d){var l,e=this,f=[],g=this.chart,h=g.renderer,j=!0,k=this.options,m=this.getLabel();c(b.slice(0,b.length-1),function(a,b){b=d[b-1]||{isHeader:!0,plotX:d[0].plotX};var c=b.series||e,n=c.tt,o=b.series||{},p="highcharts-color-"+i(b.colorIndex,o.colorIndex,"none");n||(c.tt=n=h.label(null,null,null,"callout").addClass("highcharts-tooltip-box "+p).attr({padding:k.padding,r:k.borderRadius,fill:k.backgroundColor,stroke:b.color||o.color||"#333333","stroke-width":k.borderWidth}).add(m)),n.isActive=!0,n.attr({text:a}),n.css(k.style),a=n.getBBox(),o=a.width+n.strokeWidth(),b.isHeader?(l=a.height,o=Math.max(0,Math.min(b.plotX+g.plotLeft-o/2,g.chartWidth-o))):o=b.plotX+g.plotLeft-i(k.distance,16)-o,0>o&&(j=!1),a=(b.series&&b.series.yAxis&&b.series.yAxis.pos)+(b.plotY||0),a-=g.plotTop,f.push({target:b.isHeader?g.plotHeight+l:a,rank:b.isHeader?1:0,size:c.tt.getBBox().height+1,point:b,x:o,tt:n})}),this.cleanSplit(),a.distribute(f,g.plotHeight+l),c(f,function(a){var b=a.point,c=b.series;a.tt.attr({visibility:void 0===a.pos?"hidden":"inherit",x:j||b.isHeader?a.x:b.plotX+g.plotLeft+i(k.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 b=this.chart,c=this.getLabel(),c=(this.options.positioner||this.getPosition).call(this,c.width,c.height,a);this.move(Math.round(c.x),Math.round(c.y||0),a.plotX+b.plotLeft,a.plotY+b.plotTop)},getXDateFormat:function(a,c,d){var e;c=c.dateTimeLabelFormats;var g,i,f=d&&d.closestPointRange,h={millisecond:15,second:12,minute:9,hour:6,day:3},j="millisecond";if(f){i=b("%m-%d %H:%M:%S.%L",a.x);for(g in l){if(f===l.week&&+b("%w",a.x)===d.options.startOfWeek&&"00:00:00.000"===i.substr(6)){g="week";break}if(l[g]>f){g=j;break}if(h[g]&&i.substr(h[g])!=="01-01 00:00:00.000".substr(h[g]))break;"week"!==g&&(j=g)}g&&(e=c[g])}else e=c.day;return e||c.year},tooltipFooterHeaderFormatter:function(a,b){var c=b?"footer":"header";b=a.series;var d=b.tooltipOptions,g=d.xDateFormat,h=b.xAxis,i=h&&"datetime"===h.options.type&&f(a.key),c=d[c+"Format"];return i&&!g&&(g=this.getXDateFormat(a,d,h)),i&&g&&(c=c.replace("{point.key}","{point.key:"+g+"}")),e(c,{point:a,series:b})},bodyFormatter:function(a){return g(a,function(a){var b=a.series.tooltipOptions;return(b.pointFormatter||a.point.tooltipFormatter).call(a.point,b.pointFormat)})}}}(a),function(a){var b=a.addEvent,c=a.attr,d=a.charts,e=a.color,f=a.css,g=a.defined,h=a.doc,i=a.each,j=a.extend,k=a.fireEvent,l=a.offset,m=a.pick,n=a.removeEvent,o=a.splat,p=a.Tooltip,q=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={},p&&b.tooltip.enabled&&(a.tooltip=new p(a,b.tooltip),this.followTouchMove=m(b.tooltip.followTouchMove,!0)),this.setDOMEvents()},zoomOption:function(a){var b=this.chart,c=b.options.chart,d=c.zoomType||"",b=b.inverted;/touch/.test(a.type)&&(d=m(c.pinchType,d)),this.zoomX=a=/x/.test(d),this.zoomY=d=/y/.test(d),this.zoomHor=a&&!b||d&&b,this.zoomVert=d&&!b||a&&b,this.hasZoom=a||d},normalize:function(a,b){var c,d;return a=a||q.event,a.target||(a.target=a.srcElement),d=a.touches?a.touches.length?a.touches.item(0):a.changedTouches[0]:a,b||(this.chartPosition=b=l(this.chart.container)),void 0===d.pageX?(c=Math.max(a.x,a.clientX-b.left),b=a.y):(c=d.pageX-b.left,b=d.pageY-b.top),j(a,{chartX:Math.round(c),chartY:Math.round(b)})},getCoordinates:function(a){var b={xAxis:[],yAxis:[]};return i(this.chart.axes,function(c){b[c.isXAxis?"xAxis":"yAxis"].push({axis:c,value:c.toValue(a[c.horiz?"chartX":"chartY"])})}),b},runPointActions:function(c){var o,p,q,s,e=this.chart,f=e.series,g=e.tooltip,j=!!g&&g.shared,k=!0,l=e.hoverPoint,n=e.hoverSeries,r=[];
if(!j&&!n)for(o=0;o<f.length;o++)!f[o].directTouch&&f[o].options.stickyTracking||(f=[]);if(n&&(j?n.noSharedTooltip:n.directTouch)&&l?r=[l]:(j||!n||n.options.stickyTracking||(f=[n]),i(f,function(a){p=a.noSharedTooltip&&j,q=!j&&a.directTouch,a.visible&&!p&&!q&&m(a.options.enableMouseTracking,!0)&&(s=a.searchPoint(c,!p&&1===a.kdDimensions))&&s.series&&r.push(s)}),r.sort(function(a,b){var c=a.distX-b.distX,d=a.dist-b.dist,e=b.series.group.zIndex-a.series.group.zIndex;return 0!==c&&j?c:0!==d?d:0!==e?e:a.series.index>b.series.index?-1:1})),j)for(o=r.length;o--;)(r[o].x!==r[0].x||r[o].series.noSharedTooltip)&&r.splice(o,1);if(r[0]&&(r[0]!==this.prevKDPoint||g&&g.isHidden)){if(j&&!r[0].series.noSharedTooltip){for(o=0;o<r.length;o++)r[o].onMouseOver(c,r[o]!==(n&&n.directTouch&&l||r[0]));r.length&&g&&g.refresh(r.sort(function(a,b){return a.series.index-b.series.index}),c)}else g&&g.refresh(r[0],c),n&&n.directTouch||r[0].onMouseOver(c);this.prevKDPoint=r[0],k=!1}k&&(f=n&&n.tooltipOptions.followPointer,g&&f&&!g.isHidden&&(f=g.getAnchor([{}],c),g.updatePosition({plotX:f[0],plotY:f[1]}))),this.unDocMouseMove||(this.unDocMouseMove=b(h,"mousemove",function(b){d[a.hoverChartIndex]&&d[a.hoverChartIndex].pointer.onDocumentMouseMove(b)})),i(j?r:[m(l,r[0])],function(a){i(e.axes,function(b){(!a||a.series&&a.series[b.coll]===b)&&b.drawCrosshair(c,a)})})},reset:function(a,b){var c=this.chart,d=c.hoverSeries,e=c.hoverPoint,f=c.hoverPoints,g=c.tooltip,h=g&&g.shared?f:e;a&&h&&i(o(h),function(b){b.series.isCartesian&&void 0===b.plotX&&(a=!1)}),a?g&&h&&(g.refresh(h),e&&(e.setState(e.state,!0),i(c.axes,function(a){a.crosshair&&a.drawCrosshair(null,e)}))):(e&&e.onMouseOut(),f&&i(f,function(a){a.setState()}),d&&d.onMouseOut(),g&&g.hide(b),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),i(c.axes,function(a){a.hideCrosshair()}),this.hoverX=this.prevKDPoint=c.hoverPoints=c.hoverPoint=null)},scaleGroups:function(a,b){var d,c=this.chart;i(c.series,function(e){d=a||e.getPlotBox(),e.xAxis&&e.xAxis.zoomEnabled&&e.group&&(e.group.attr(d),e.markerGroup&&(e.markerGroup.attr(d),e.markerGroup.clip(b?c.clipRect:null)),e.dataLabelsGroup&&e.dataLabelsGroup.attr(d))}),c.clipRect.attr(b||c.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 m,b=this.chart,c=b.options.chart,d=a.chartX,f=a.chartY,g=this.zoomHor,h=this.zoomVert,i=b.plotLeft,j=b.plotTop,k=b.plotWidth,l=b.plotHeight,n=this.selectionMarker,o=this.mouseDownX,p=this.mouseDownY,q=c.panKey&&a[c.panKey+"Key"];n&&n.touch||(d<i?d=i:d>i+k&&(d=i+k),f<j?f=j:f>j+l&&(f=j+l),this.hasDragged=Math.sqrt(Math.pow(o-d,2)+Math.pow(p-f,2)),10<this.hasDragged&&(m=b.isInsidePlot(o-i,p-j),b.hasCartesianSeries&&(this.zoomX||this.zoomY)&&m&&!q&&!n&&(this.selectionMarker=n=b.renderer.rect(i,j,g?1:k,h?1:l,0).attr({fill:c.selectionMarkerFill||e("#335cad").setOpacity(.25).get(),class:"highcharts-selection-marker",zIndex:7}).add()),n&&g&&(d-=o,n.attr({width:Math.abs(d),x:(0<d?0:d)+o})),n&&h&&(d=f-p,n.attr({height:Math.abs(d),y:(0<d?0:d)+p})),m&&!n&&c.panning&&b.pan(a,c.panning)))},drop:function(a){var b=this,c=this.chart,d=this.hasPinched;if(this.selectionMarker){var p,e={originalEvent:a,xAxis:[],yAxis:[]},h=this.selectionMarker,l=h.attr?h.attr("x"):h.x,m=h.attr?h.attr("y"):h.y,n=h.attr?h.attr("width"):h.width,o=h.attr?h.attr("height"):h.height;(this.hasDragged||d)&&(i(c.axes,function(c){if(c.zoomEnabled&&g(c.min)&&(d||b[{xAxis:"zoomX",yAxis:"zoomY"}[c.coll]])){var f=c.horiz,h="touchend"===a.type?c.minPixelPadding:0,i=c.toValue((f?l:m)+h),f=c.toValue((f?l+n:m+o)-h);e[c.coll].push({axis:c,min:Math.min(i,f),max:Math.max(i,f)}),p=!0}}),p&&k(c,"selection",e,function(a){c.zoom(j(a,d?{animation:!1}:null))})),this.selectionMarker=this.selectionMarker.destroy(),d&&this.scaleGroups()}c&&(f(c.container,{cursor:c._cursor}),c.cancelClick=10<this.hasDragged,c.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){d[a.hoverChartIndex]&&d[a.hoverChartIndex].pointer.drop(b)},onDocumentMouseMove:function(a){var b=this.chart,c=this.chartPosition;a=this.normalize(a,c),!c||this.inClass(a.target,"highcharts-tracker")||b.isInsidePlot(a.chartX-b.plotLeft,a.chartY-b.plotTop)||this.reset()},onContainerMouseLeave:function(b){var c=d[a.hoverChartIndex];c&&(b.relatedTarget||b.toElement)&&(c.pointer.reset(),c.pointer.chartPosition=null)},onContainerMouseMove:function(b){var c=this.chart;g(a.hoverChartIndex)&&d[a.hoverChartIndex]&&d[a.hoverChartIndex].mouseIsDown||(a.hoverChartIndex=c.index),b=this.normalize(b),b.returnValue=!1,"mousedown"===c.mouseIsDown&&this.drag(b),!this.inClass(b.target,"highcharts-tracker")&&!c.isInsidePlot(b.chartX-c.plotLeft,b.chartY-c.plotTop)||c.openMenu||this.runPointActions(b)},inClass:function(a,b){for(var d;a;){if(d=c(a,"class")){if(-1!==d.indexOf(b))return!0;if(-1!==d.indexOf("highcharts-container"))return!1}a=a.parentNode}},onTrackerMouseOut:function(a){var b=this.chart.hoverSeries;a=a.relatedTarget||a.toElement,!b||!a||b.options.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,c=b.hoverPoint,d=b.plotLeft,e=b.plotTop;a=this.normalize(a),b.cancelClick||(c&&this.inClass(a.target,"highcharts-tracker")?(k(c.series,"click",j(a,{point:c})),b.hoverPoint&&c.firePointEvent("click",a)):(j(a,this.getCoordinates(a)),b.isInsidePlot(a.chartX-d,a.chartY-e)&&k(b,"click",a)))},setDOMEvents:function(){var c=this,d=c.chart.container;d.onmousedown=function(a){c.onContainerMouseDown(a)},d.onmousemove=function(a){c.onContainerMouseMove(a)},d.onclick=function(a){c.onContainerClick(a)},b(d,"mouseleave",c.onContainerMouseLeave),1===a.chartCount&&b(h,"mouseup",c.onDocumentMouseUp),a.hasTouch&&(d.ontouchstart=function(a){c.onContainerTouchStart(a)},d.ontouchmove=function(a){c.onContainerTouchMove(a)},1===a.chartCount&&b(h,"touchend",c.onDocumentTouchEnd))},destroy:function(){var b;n(this.chart.container,"mouseleave",this.onContainerMouseLeave),a.chartCount||(n(h,"mouseup",this.onDocumentMouseUp),n(h,"touchend",this.onDocumentTouchEnd)),clearInterval(this.tooltipTimeout);for(b in this)this[b]=null}}}(a),function(a){var b=a.charts,c=a.each,d=a.extend,e=a.map,f=a.noop,g=a.pick;d(a.Pointer.prototype,{pinchTranslate:function(a,b,c,d,e,f){this.zoomHor&&this.pinchTranslateDirection(!0,a,b,c,d,e,f),this.zoomVert&&this.pinchTranslateDirection(!1,a,b,c,d,e,f)},pinchTranslateDirection:function(a,b,c,d,e,f,g,h){var o,p,y,i=this.chart,j=a?"x":"y",k=a?"X":"Y",l="chart"+k,m=a?"width":"height",n=i["plot"+(a?"Left":"Top")],q=h||1,r=i.inverted,s=i.bounds[a?"h":"v"],t=1===b.length,u=b[0][l],v=c[0][l],w=!t&&b[1][l],x=!t&&c[1][l];c=function(){!t&&20<Math.abs(u-w)&&(q=h||Math.abs(v-x)/Math.abs(u-w)),p=(n-v)/q+u,o=i["plot"+(a?"Width":"Height")]/q},c(),b=p,b<s.min?(b=s.min,y=!0):b+o>s.max&&(b=s.max-o,y=!0),y?(v-=.8*(v-g[j][0]),t||(x-=.8*(x-g[j][1])),c()):g[j]=[v,x],r||(f[j]=p-n,f[m]=o),f=r?1/q:q,e[m]=o,e[j]=b,d[r?a?"scaleY":"scaleX":"scale"+k]=q,d["translate"+k]=f*n+(v-f*u)},pinch:function(a){var b=this,h=b.chart,i=b.pinchDown,j=a.touches,k=j.length,l=b.lastValidTouch,m=b.hasZoom,n=b.selectionMarker,o={},p=1===k&&(b.inClass(a.target,"highcharts-tracker")&&h.runTrackerClick||b.runChartClick),q={};1<k&&(b.initiated=!0),m&&b.initiated&&!p&&a.preventDefault(),e(j,function(a){return b.normalize(a)}),"touchstart"===a.type?(c(j,function(a,b){i[b]={chartX:a.chartX,chartY:a.chartY}}),l.x=[i[0].chartX,i[1]&&i[1].chartX],l.y=[i[0].chartY,i[1]&&i[1].chartY],c(h.axes,function(a){if(a.zoomEnabled){var b=h.bounds[a.horiz?"h":"v"],c=a.minPixelPadding,d=a.toPixels(g(a.options.min,a.dataMin)),e=a.toPixels(g(a.options.max,a.dataMax)),f=Math.max(d,e);b.min=Math.min(a.pos,Math.min(d,e)-c),b.max=Math.max(a.pos+a.len,f+c)}}),b.res=!0):b.followTouchMove&&1===k?this.runPointActions(b.normalize(a)):i.length&&(n||(b.selectionMarker=n=d({destroy:f,touch:!0},h.plotBox)),b.pinchTranslate(i,j,o,n,q,l),b.hasPinched=m,b.scaleGroups(o,q),b.res&&(b.res=!1,this.reset(!1,0)))},touch:function(b,c){var e,f,d=this.chart;d.index!==a.hoverChartIndex&&this.onContainerMouseLeave({relatedTarget:!0}),a.hoverChartIndex=d.index,1===b.touches.length?(b=this.normalize(b),(f=d.isInsidePlot(b.chartX-d.plotLeft,b.chartY-d.plotTop))&&!d.openMenu?(c&&this.runPointActions(b),"touchmove"===b.type&&(c=this.pinchDown,e=!!c[0]&&4<=Math.sqrt(Math.pow(c[0].chartX-b.chartX,2)+Math.pow(c[0].chartY-b.chartY,2))),g(e,!0)&&this.pinch(b)):c&&this.reset()):2===b.touches.length&&this.pinch(b)},onContainerTouchStart:function(a){this.zoomOption(a),this.touch(a,!0)},onContainerTouchMove:function(a){this.touch(a)},onDocumentTouchEnd:function(c){b[a.hoverChartIndex]&&b[a.hoverChartIndex].pointer.drop(c)}})}(a),function(a){var b=a.addEvent,c=a.charts,d=a.css,e=a.doc,f=a.extend,g=a.noop,h=a.Pointer,i=a.removeEvent,j=a.win,k=a.wrap;if(j.PointerEvent||j.MSPointerEvent){var l={},m=!!j.PointerEvent,n=function(){var a,b=[];b.item=function(a){return this[a]};for(a in l)l.hasOwnProperty(a)&&b.push({pageX:l[a].pageX,pageY:l[a].pageY,target:l[a].target});return b},o=function(b,d,e,f){"touch"!==b.pointerType&&b.pointerType!==b.MSPOINTER_TYPE_TOUCH||!c[a.hoverChartIndex]||(f(b),f=c[a.hoverChartIndex].pointer,f[d]({type:e,target:b.currentTarget,preventDefault:g,touches:n()}))};f(h.prototype,{onContainerPointerDown:function(a){o(a,"onContainerTouchStart","touchstart",function(a){l[a.pointerId]={pageX:a.pageX,pageY:a.pageY,target:a.currentTarget}})},onContainerPointerMove:function(a){o(a,"onContainerTouchMove","touchmove",function(a){l[a.pointerId]={pageX:a.pageX,pageY:a.pageY},l[a.pointerId].target||(l[a.pointerId].target=a.currentTarget)})},onDocumentPointerUp:function(a){o(a,"onDocumentTouchEnd","touchend",function(a){delete l[a.pointerId]})},batchMSEvents:function(a){a(this.chart.container,m?"pointerdown":"MSPointerDown",this.onContainerPointerDown),a(this.chart.container,m?"pointermove":"MSPointerMove",this.onContainerPointerMove),a(e,m?"pointerup":"MSPointerUp",this.onDocumentPointerUp)}}),k(h.prototype,"init",function(a,b,c){a.call(this,b,c),this.hasZoom&&d(b.container,{"-ms-touch-action":"none","touch-action":"none"})}),k(h.prototype,"setDOMEvents",function(a){a.apply(this),(this.hasZoom||this.followTouchMove)&&this.batchMSEvents(b)}),k(h.prototype,"destroy",function(a){this.batchMSEvents(i),a.call(this)})}}(a),function(a){var b,c=a.addEvent,d=a.css,e=a.discardElement,f=a.defined,g=a.each,h=a.extend,i=a.isFirefox,j=a.marginNames,k=a.merge,l=a.pick,m=a.setAnimation,n=a.stableSort,o=a.win,p=a.wrap;b=a.Legend=function(a,b){this.init(a,b)},b.prototype={init:function(a,b){this.chart=a,this.setOptions(b),b.enabled&&(this.render(),c(this.chart,"endResize",function(){this.legend.positionCheckboxes()}))},setOptions:function(a){var b=l(a.padding,8);this.options=a,this.itemStyle=a.itemStyle,this.itemHiddenStyle=k(this.itemStyle,a.itemHiddenStyle),this.itemMarginTop=a.itemMarginTop||0,this.initialItemX=this.padding=b,this.initialItemY=b-5,this.itemHeight=this.maxItemWidth=0,this.symbolWidth=l(a.symbolWidth,16),this.pages=[]},update:function(a,b){var c=this.chart;this.setOptions(k(!0,this.options,a)),this.destroy(),c.isDirtyLegend=c.isDirtyBox=!0,l(b,!0)&&c.redraw()},colorizeItem:function(a,b){a.legendGroup[b?"removeClass":"addClass"]("highcharts-legend-item-hidden");var k,c=this.options,d=a.legendItem,e=a.legendLine,f=a.legendSymbol,g=this.itemHiddenStyle.color,c=b?c.itemStyle.color:g,h=b?a.color||g:g,i=a.options&&a.options.marker,j={fill:h};if(d&&d.css({fill:c,color:c}),e&&e.attr({stroke:h}),f){if(i&&f.isMarker&&(j=a.pointAttribs(),!b))for(k in j)j[k]=g;f.attr(j)}},positionItem:function(a){var b=this.options,c=b.symbolPadding,b=!b.rtl,d=a._legendItemPos,e=d[0],d=d[1],f=a.checkbox;(a=a.legendGroup)&&a.element&&a.translate(b?e:this.legendWidth-e-2*c-4,d),f&&(f.x=e,f.y=d)},destroyItem:function(a){var b=a.checkbox;g(["legendItem","legendLine","legendSymbol","legendGroup"],function(b){a[b]&&(a[b]=a[b].destroy())}),b&&e(a.checkbox)},destroy:function(){function a(a){this[a]&&(this[a]=this[a].destroy())}g(this.getAllItems(),function(b){g(["legendItem","legendGroup"],a,b)}),g(["box","title","group"],a,this),this.display=null},positionCheckboxes:function(a){var c,b=this.group&&this.group.alignAttr,e=this.clipHeight||this.legendHeight,f=this.titleHeight;b&&(c=b.translateY,g(this.allItems,function(g){var i,h=g.checkbox;h&&(i=c+f+h.y+(a||0)+3,d(h,{left:b.translateX+g.checkboxOffset+h.x-20+"px",top:i+"px",display:i>c-6&&i<c+e-6?"":"none"}))}))},renderTitle:function(){var a=this.padding,b=this.options.title,c=0;b.text&&(this.title||(this.title=this.chart.renderer.label(b.text,a-3,a-4,null,null,null,null,null,"legend-title").attr({zIndex:1}).css(b.style).add(this.group)),a=this.title.getBBox(),c=a.height,this.offsetWidth=a.width,this.contentGroup.attr({translateY:c})),this.titleHeight=c},setText:function(b){var c=this.options;b.legendItem.attr({text:c.labelFormat?a.format(c.labelFormat,b):c.labelFormatter.call(b)})},renderItem:function(a){var b=this.chart,c=b.renderer,d=this.options,e="horizontal"===d.layout,f=this.symbolWidth,g=d.symbolPadding,h=this.itemStyle,i=this.itemHiddenStyle,j=this.padding,m=e?l(d.itemDistance,20):0,n=!d.rtl,o=d.width,p=d.itemMarginBottom||0,q=this.itemMarginTop,r=this.initialItemX,s=a.legendItem,t=!a.series,u=!t&&a.series.drawLegendSymbol?a.series:a,v=u.options,v=this.createCheckboxForItem&&v&&v.showCheckbox,w=d.useHTML;s||(a.legendGroup=c.g("legend-item").addClass("highcharts-"+u.type+"-series highcharts-color-"+a.colorIndex+(a.options.className?" "+a.options.className:"")+(t?" highcharts-series-"+a.index:"")).attr({zIndex:1}).add(this.scrollGroup),a.legendItem=s=c.text("",n?f+g:-g,this.baseline||0,w).css(k(a.visible?h:i)).attr({align:n?"left":"right",zIndex:2}).add(a.legendGroup),this.baseline||(h=h.fontSize,this.fontMetrics=c.fontMetrics(h,s),this.baseline=this.fontMetrics.f+3+q,s.attr("y",this.baseline)),u.drawLegendSymbol(this,a),this.setItemEvents&&this.setItemEvents(a,s,w),v&&this.createCheckboxForItem(a)),this.colorizeItem(a,a.visible),this.setText(a),c=s.getBBox(),f=a.checkboxOffset=d.itemWidth||a.legendItemWidth||f+g+c.width+m+(v?20:0),this.itemHeight=g=Math.round(a.legendItemHeight||c.height),e&&this.itemX-r+f>(o||b.chartWidth-2*j-r-d.x)&&(this.itemX=r,this.itemY+=q+this.lastLineHeight+p,this.lastLineHeight=0),this.maxItemWidth=Math.max(this.maxItemWidth,f),this.lastItemY=q+this.itemY+p,this.lastLineHeight=Math.max(g,this.lastLineHeight),a._legendItemPos=[this.itemX,this.itemY],e?this.itemX+=f:(this.itemY+=q+g+p,this.lastLineHeight=g),this.offsetWidth=o||Math.max((e?this.itemX-r-m:f)+j,this.offsetWidth)},getAllItems:function(){var a=[];return g(this.chart.series,function(b){var c=b&&b.options;b&&l(c.showInLegend,!f(c.linkedTo)&&void 0,!0)&&(a=a.concat(b.legendItems||("point"===c.legendType?b.data:b)))}),a},adjustMargins:function(a,b){var c=this.chart,d=this.options,e=d.align.charAt(0)+d.verticalAlign.charAt(0)+d.layout.charAt(0);d.floating||g([/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/],function(g,h){g.test(e)&&!f(a[h])&&(c[j[h]]=Math.max(c[j[h]],c.legend[(h+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][h]*d[h%2?"x":"y"]+l(d.margin,12)+b[h]))})},render:function(){var e,f,i,j,a=this,b=a.chart,c=b.renderer,d=a.group,k=a.box,l=a.options,m=a.padding;a.itemX=a.initialItemX,a.itemY=a.initialItemY,a.offsetWidth=0,a.lastItemY=0,d||(a.group=d=c.g("legend").attr({zIndex:7}).add(),a.contentGroup=c.g().attr({zIndex:1}).add(d),a.scrollGroup=c.g().add(a.contentGroup)),a.renderTitle(),e=a.getAllItems(),n(e,function(a,b){return(a.options&&a.options.legendIndex||0)-(b.options&&b.options.legendIndex||0)}),l.reversed&&e.reverse(),a.allItems=e,a.display=f=!!e.length,a.lastLineHeight=0,g(e,function(b){a.renderItem(b)}),i=(l.width||a.offsetWidth)+m,j=a.lastItemY+a.lastLineHeight+a.titleHeight,j=a.handleOverflow(j),j+=m,k||(a.box=k=c.rect().addClass("highcharts-legend-box").attr({r:l.borderRadius}).add(d),k.isNew=!0),k.attr({stroke:l.borderColor,"stroke-width":l.borderWidth||0,fill:l.backgroundColor||"none"}).shadow(l.shadow),0<i&&0<j&&(k[k.isNew?"attr":"animate"](k.crisp({x:0,y:0,width:i,height:j},k.strokeWidth())),k.isNew=!1),k[f?"show":"hide"](),a.legendWidth=i,a.legendHeight=j,g(e,function(b){a.positionItem(b)}),f&&d.align(h({width:i,height:j},l),!0,"spacingBox"),b.isResizing||this.positionCheckboxes()},handleOverflow:function(a){var h,q,b=this,c=this.chart,d=c.renderer,e=this.options,f=e.y,c=c.spacingBox.height+("top"===e.verticalAlign?-f:f)-this.padding,f=e.maxHeight,i=this.clipRect,j=e.navigation,k=l(j.animation,!0),m=j.arrowSize||12,n=this.nav,o=this.pages,p=this.padding,r=this.allItems,s=function(a){a?i.attr({height:a}):i&&(b.clipRect=i.destroy(),b.contentGroup.clip()),b.contentGroup.div&&(b.contentGroup.div.style.clip=a?"rect("+p+"px,9999px,"+(p+a)+"px,0)":"auto")};return"horizontal"!==e.layout||"middle"===e.verticalAlign||e.floating||(c/=2),f&&(c=Math.min(c,f)),o.length=0,a>c&&!1!==j.enabled?(this.clipHeight=h=Math.max(c-20-this.titleHeight-p,0),this.currentPage=l(this.currentPage,1),this.fullHeight=a,g(r,function(a,b){var c=a._legendItemPos[1];a=Math.round(a.legendItem.getBBox().height);var d=o.length;(!d||c-o[d-1]>h&&(q||c)!==o[d-1])&&(o.push(q||c),d++),b===r.length-1&&c+a-o[d-1]>h&&o.push(c),c!==q&&(q=c)}),i||(i=b.clipRect=d.clipRect(0,p,9999,0),b.contentGroup.clip(i)),s(h),n||(this.nav=n=d.g().attr({zIndex:1}).add(this.group),this.up=d.symbol("triangle",0,0,m,m).on("click",function(){b.scroll(-1,k)}).add(n),this.pager=d.text("",15,10).addClass("highcharts-legend-navigation").css(j.style).add(n),this.down=d.symbol("triangle-down",0,0,m,m).on("click",function(){b.scroll(1,k)}).add(n)),b.scroll(0),a=c):n&&(s(),n.hide(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),a},scroll:function(a,b){var c=this.pages,d=c.length;a=this.currentPage+a;var e=this.clipHeight,f=this.options.navigation,g=this.pager,h=this.padding;a>d&&(a=d),0<a&&(void 0!==b&&m(b,this.chart),this.nav.attr({translateX:h,translateY:e+this.padding+7+this.titleHeight,visibility:"visible"}),this.up.attr({class:1===a?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"}),g.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"}),b=-c[a-1]+this.initialItemY,this.scrollGroup.animate({translateY:b}),this.currentPage=a,this.positionCheckboxes(b))}},a.LegendSymbolMixin={drawRectangle:function(a,b){var c=a.options,d=c.symbolHeight||a.fontMetrics.f,c=c.squareSymbol;b.legendSymbol=this.chart.renderer.rect(c?(a.symbolWidth-d)/2:0,a.baseline-d+1,c?d:a.symbolWidth,d,l(a.options.symbolRadius,d/2)).addClass("highcharts-point").attr({zIndex:3}).add(b.legendGroup)},drawLineMarker:function(a){var b=this.options,c=b.marker,d=a.symbolWidth,e=this.chart.renderer,f=this.legendGroup;a=a.baseline-Math.round(.3*a.fontMetrics.b);var g;g={"stroke-width":b.lineWidth||0},b.dashStyle&&(g.dashstyle=b.dashStyle),this.legendLine=e.path(["M",0,a,"L",d,a]).addClass("highcharts-graph").attr(g).add(f),c&&!1!==c.enabled&&(b=0===this.symbol.indexOf("url")?0:c.radius,this.legendSymbol=c=e.symbol(this.symbol,d/2-b,a-b,2*b,2*b,c).addClass("highcharts-point").add(f),c.isMarker=!0)}},(/Trident\/7\.0/.test(o.navigator.userAgent)||i)&&p(b.prototype,"positionItem",function(a,b){var c=this,d=function(){b._legendItemPos&&a.call(c,b)};d(),setTimeout(d)})}(a),function(a){var b=a.addEvent,c=a.animate,d=a.animObject,e=a.attr,f=a.doc,g=a.Axis,h=a.createElement,i=a.defaultOptions,j=a.discardElement,k=a.charts,l=a.css,m=a.defined,n=a.each,o=a.extend,p=a.find,q=a.fireEvent,r=a.getStyle,s=a.grep,t=a.isNumber,u=a.isObject,v=a.isString,w=a.Legend,x=a.marginNames,y=a.merge,z=a.Pointer,A=a.pick,B=a.pInt,C=a.removeEvent,D=a.seriesTypes,E=a.splat,F=a.svg,G=a.syncTimeout,H=a.win,I=a.Renderer,J=a.Chart=function(){this.getArgs.apply(this,arguments)};a.chart=function(a,b,c){return new J(a,b,c)},J.prototype={callbacks:[],getArgs:function(){var a=[].slice.call(arguments);(v(a[0])||a[0].nodeName)&&(this.renderTo=a.shift()),this.init(a[0],a[1])},init:function(c,d){var e,f=c.series;c.series=null,e=y(i,c),e.series=c.series=f,this.userOptions=c,this.respRules=[],c=e.chart,f=c.events,this.margin=[],this.spacing=[],this.bounds={h:{},v:{}},this.callback=d,this.isResizing=0,this.options=e,this.axes=[],this.series=[],this.hasCartesianSeries=c.showAxes;var g;if(this.index=k.length,k.push(this),a.chartCount++,f)for(g in f)b(this,g,f[g]);this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.firstRender()},initSeries:function(b){var c=this.options.chart;return(c=D[b.type||c.type||c.defaultSeriesType])||a.error(17,!0),c=new c,c.init(this,b),c},isInsidePlot:function(a,b,c){var d=c?b:a;return a=c?a:b,0<=d&&d<=this.plotWidth&&0<=a&&a<=this.plotHeight},redraw:function(b){var h,i,c=this.axes,d=this.series,e=this.pointer,f=this.legend,g=this.isDirtyLegend,j=this.hasCartesianSeries,k=this.isDirtyBox,l=d.length,m=l,p=this.renderer,r=p.isHidden(),s=[];for(a.setAnimation(b,this),r&&this.cloneRenderTo(),this.layOutTitles();m--;)if(b=d[m],b.options.stacking&&(h=!0,b.isDirty)){i=!0;break}if(i)for(m=l;m--;)b=d[m],b.options.stacking&&(b.isDirty=!0);n(d,function(a){a.isDirty&&"point"===a.options.legendType&&(a.updateTotals&&a.updateTotals(),g=!0),a.isDirtyData&&q(a,"updatedData")}),g&&f.options.enabled&&(f.render(),this.isDirtyLegend=!1),h&&this.getStacks(),j&&n(c,function(a){a.updateNames(),a.setScale()}),this.getMargins(),j&&(n(c,function(a){a.isDirty&&(k=!0)}),n(c,function(a){var b=a.min+","+a.max;a.extKey!==b&&(a.extKey=b,s.push(function(){q(a,"afterSetExtremes",o(a.eventArgs,a.getExtremes())),delete a.eventArgs})),(k||h)&&a.redraw()})),k&&this.drawChartBox(),n(d,function(a){(k||a.isDirty)&&a.visible&&a.redraw()}),e&&e.reset(!0),p.draw(),q(this,"redraw"),r&&this.cloneRenderTo(!0),n(s,function(a){a.call()})},get:function(a){function b(b){return b.id===a||b.options.id===a}var c,e,d=this.series;for(c=p(this.axes,b)||p(this.series,b),e=0;!c&&e<d.length;e++)c=p(d[e].points||[],b);return c},getAxes:function(){var a=this,b=this.options,c=b.xAxis=E(b.xAxis||{}),b=b.yAxis=E(b.yAxis||{});n(c,function(a,b){a.index=b,a.isX=!0}),n(b,function(a,b){a.index=b}),c=c.concat(b),n(c,function(b){new g(a,b)})},getSelectedPoints:function(){var a=[];return n(this.series,function(b){a=a.concat(s(b.points||[],function(a){return a.selected}))}),a},getSelectedSeries:function(){return s(this.series,function(a){return a.selected})},setTitle:function(a,b,c){var f,d=this,e=d.options;f=e.title=y({style:{color:"#333333",fontSize:e.isStock?"16px":"18px"}},e.title,a),e=e.subtitle=y({style:{color:"#666666"}},e.subtitle,b),n([["title",a,f],["subtitle",b,e]],function(a,b){var c=a[0],e=d[c],f=a[1];a=a[2],e&&f&&(d[c]=e=e.destroy()),a&&a.text&&!e&&(d[c]=d.renderer.text(a.text,0,0,a.useHTML).attr({align:a.align,class:"highcharts-"+c,zIndex:a.zIndex||4}).add(),d[c].update=function(a){d.setTitle(!b&&a,b&&a)},d[c].css(a.style))}),d.layOutTitles(c)},layOutTitles:function(a){var c,b=0,d=this.renderer,e=this.spacingBox;n(["title","subtitle"],function(a){var g,c=this[a],f=this.options[a];c&&(g=f.style.fontSize,g=d.fontMetrics(g,c).b,c.css({width:(f.width||e.width+f.widthAdjust)+"px"}).align(o({y:b+g+("title"===a?-3:2)},f),!1,"spacingBox"),f.floating||f.verticalAlign||(b=Math.ceil(b+c.getBBox().height)))},this),c=this.titleOffset!==b,this.titleOffset=b,!this.isDirtyBox&&c&&(this.isDirtyBox=c,this.hasRendered&&A(a,!0)&&this.isDirtyBox&&this.redraw())},getChartSize:function(){var a=this.options.chart,b=a.width,a=a.height,c=this.renderToClone||this.renderTo;m(b)||(this.containerWidth=r(c,"width")),m(a)||(this.containerHeight=r(c,"height")),this.chartWidth=Math.max(0,b||this.containerWidth||600),this.chartHeight=Math.max(0,A(a,19<this.containerHeight?this.containerHeight:400))},cloneRenderTo:function(a){var b=this.renderToClone,c=this.container;if(a){if(b){for(;b.childNodes.length;)this.renderTo.appendChild(b.firstChild);j(b),delete this.renderToClone}}else c&&c.parentNode===this.renderTo&&this.renderTo.removeChild(c),this.renderToClone=b=this.renderTo.cloneNode(0),l(b,{position:"absolute",top:"-9999px",display:"block"}),b.style.setProperty&&b.style.setProperty("display","block","important"),f.body.appendChild(b),c&&b.appendChild(c)},setClassName:function(a){this.container.className="highcharts-container "+(a||"")},getContainer:function(){var b,g,i,c=this.options,d=c.chart;b=this.renderTo;var l,j=a.uniqueKey();b||(this.renderTo=b=d.renderTo),v(b)&&(this.renderTo=b=f.getElementById(b)),b||a.error(13,!0),g=B(e(b,"data-highcharts-chart")),t(g)&&k[g]&&k[g].hasRendered&&k[g].destroy(),e(b,"data-highcharts-chart",this.index),b.innerHTML="",d.skipClone||b.offsetWidth||this.cloneRenderTo(),this.getChartSize(),g=this.chartWidth,i=this.chartHeight,l=o({position:"relative",overflow:"hidden",width:g+"px",height:i+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)"},d.style),this.container=b=h("div",{id:j},l,this.renderToClone||b),this._cursor=b.style.cursor,this.renderer=new(a[d.renderer]||I)(b,g,i,null,d.forExport,c.exporting&&c.exporting.allowHTML),this.setClassName(d.className),this.renderer.setStyle(d.style),this.renderer.chartIndex=this.index},getMargins:function(a){var b=this.spacing,c=this.margin,d=this.titleOffset;this.resetMargins(),d&&!m(c[0])&&(this.plotTop=Math.max(this.plotTop,d+this.options.title.margin+b[0])),this.legend.display&&this.legend.adjustMargins(c,b),this.extraBottomMargin&&(this.marginBottom+=this.extraBottomMargin),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&&n(a.axes,function(a){a.visible&&a.getOffset()}),n(x,function(d,e){m(c[e])||(a[d]+=b[e])}),a.setChartSize()},reflow:function(a){var b=this,c=b.options.chart,d=b.renderTo,e=m(c.width),g=c.width||r(d,"width"),c=c.height||r(d,"height"),d=a?a.target:H;e||b.isPrinting||!g||!c||d!==H&&d!==f||(g===b.containerWidth&&c===b.containerHeight||(clearTimeout(b.reflowTimeout),b.reflowTimeout=G(function(){b.container&&b.setSize(void 0,void 0,!1)},a?100:0)),b.containerWidth=g,b.containerHeight=c)},initReflow:function(){var c,a=this;c=b(H,"resize",function(b){a.reflow(b)}),b(a,"destroy",c)},setSize:function(b,e,f){var g=this,h=g.renderer;g.isResizing+=1,a.setAnimation(f,g),g.oldChartHeight=g.chartHeight,g.oldChartWidth=g.chartWidth,void 0!==b&&(g.options.chart.width=b),void 0!==e&&(g.options.chart.height=e),g.getChartSize(),b=h.globalAnimation,(b?c:l)(g.container,{width:g.chartWidth+"px",height:g.chartHeight+"px"},b),g.setChartSize(!0),h.setSize(g.chartWidth,g.chartHeight,f),n(g.axes,function(a){a.isDirty=!0,a.setScale()}),g.isDirtyLegend=!0,g.isDirtyBox=!0,g.layOutTitles(),g.getMargins(),g.setResponsive&&g.setResponsive(!1),g.redraw(f),g.oldChartHeight=null,q(g,"resize"),G(function(){g&&q(g,"endResize",null,function(){--g.isResizing})},d(b).duration)},setChartSize:function(a){var i,j,k,l,b=this.inverted,c=this.renderer,d=this.chartWidth,e=this.chartHeight,f=this.options.chart,g=this.spacing,h=this.clipOffset;this.plotLeft=i=Math.round(this.plotLeft),this.plotTop=j=Math.round(this.plotTop),this.plotWidth=k=Math.max(0,Math.round(d-i-this.marginRight)),this.plotHeight=l=Math.max(0,Math.round(e-j-this.marginBottom)),this.plotSizeX=b?l:k,this.plotSizeY=b?k:l,this.plotBorderWidth=f.plotBorderWidth||0,this.spacingBox=c.spacingBox={x:g[3],y:g[0],width:d-g[3]-g[1],height:e-g[0]-g[2]},this.plotBox=c.plotBox={x:i,y:j,width:k,height:l},d=2*Math.floor(this.plotBorderWidth/2),b=Math.ceil(Math.max(d,h[3])/2),c=Math.ceil(Math.max(d,h[0])/2),this.clipBox={x:b,y:c,width:Math.floor(this.plotSizeX-Math.max(d,h[1])/2-b),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(d,h[2])/2-c))},a||n(this.axes,function(a){a.setAxisSize(),a.setAxisTranslation()})},resetMargins:function(){var a=this,b=a.options.chart;n(["margin","spacing"],function(c){var d=b[c],e=u(d)?d:[d,d,d,d];n(["Top","Right","Bottom","Left"],function(d,f){a[c][f]=A(b[c+d],e[f])})}),n(x,function(b,c){a[b]=A(a.margin[c],a.spacing[c])}),a.axisOffset=[0,0,0,0],a.clipOffset=[0,0,0,0]},drawChartBox:function(){var h,m,a=this.options.chart,b=this.renderer,c=this.chartWidth,d=this.chartHeight,e=this.chartBackground,f=this.plotBackground,g=this.plotBorder,i=this.plotBGImage,j=a.backgroundColor,k=a.plotBackgroundColor,l=a.plotBackgroundImage,n=this.plotLeft,o=this.plotTop,p=this.plotWidth,q=this.plotHeight,r=this.plotBox,s=this.clipRect,t=this.clipBox,u="animate";e||(this.chartBackground=e=b.rect().addClass("highcharts-background").add(),u="attr"),h=a.borderWidth||0,m=h+(a.shadow?8:0),j={fill:j||"none"},(h||e["stroke-width"])&&(j.stroke=a.borderColor,j["stroke-width"]=h),e.attr(j).shadow(a.shadow),e[u]({x:m/2,y:m/2,width:c-m-h%2,height:d-m-h%2,r:a.borderRadius}),u="animate",f||(u="attr",this.plotBackground=f=b.rect().addClass("highcharts-plot-background").add()),f[u](r),f.attr({fill:k||"none"}).shadow(a.plotShadow),l&&(i?i.animate(r):this.plotBGImage=b.image(l,n,o,p,q).add()),s?s.animate({width:t.width,height:t.height}):this.clipRect=b.clipRect(t),u="animate",g||(u="attr",this.plotBorder=g=b.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),g.attr({stroke:a.plotBorderColor,"stroke-width":a.plotBorderWidth||0,fill:"none"}),g[u](g.crisp({x:n,y:o,width:p,height:q},-g.strokeWidth())),this.isDirtyBox=!1},propFromSeries:function(){var c,e,f,a=this,b=a.options.chart,d=a.options.series;n(["inverted","angular","polar"],function(g){for(c=D[b.type||b.defaultSeriesType],f=b[g]||c&&c.prototype[g],e=d&&d.length;!f&&e--;)(c=D[d[e].type])&&c.prototype[g]&&(f=!0);a[g]=f})},linkSeries:function(){var a=this,b=a.series;n(b,function(a){a.linkedSeries.length=0}),n(b,function(b){var c=b.options.linkedTo;v(c)&&(c=":previous"===c?a.series[b.index-1]:a.get(c))&&c.linkedParent!==b&&(c.linkedSeries.push(b),b.linkedParent=c,b.visible=A(b.options.visible,c.options.visible,b.visible))})},renderSeries:function(){n(this.series,function(a){a.translate(),a.render()})},renderLabels:function(){var a=this,b=a.options.labels;b.items&&n(b.items,function(c){var d=o(b.style,c.style),e=B(d.left)+a.plotLeft,f=B(d.top)+a.plotTop+12;delete d.left,delete d.top,a.renderer.text(c.html,e,f).attr({zIndex:2}).css(d).add()})},render:function(){var d,e,f,a=this.axes,b=this.renderer,c=this.options;this.setTitle(),this.legend=new w(this,c.legend),this.getStacks&&this.getStacks(),this.getMargins(!0),this.setChartSize(),c=this.plotWidth,d=this.plotHeight-=21,n(a,function(a){a.setScale()}),this.getAxisMargins(),e=1.1<c/this.plotWidth,f=1.05<d/this.plotHeight,(e||f)&&(n(a,function(a){(a.horiz&&e||!a.horiz&&f)&&a.setTickInterval(!0)}),this.getMargins()),this.drawChartBox(),this.hasCartesianSeries&&n(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=y(!0,this.options.credits,a),a.enabled&&!this.credits&&(this.credits=this.renderer.text(a.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",function(){a.href&&(H.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 f,b=this,c=b.axes,d=b.series,e=b.container,g=e&&e.parentNode;
for(q(b,"destroy"),k[b.index]=void 0,a.chartCount--,b.renderTo.removeAttribute("data-highcharts-chart"),C(b),f=c.length;f--;)c[f]=c[f].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),f=d.length;f--;)d[f]=d[f].destroy();n("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())}),e&&(e.innerHTML="",C(e),g&&j(e));for(f in b)delete b[f]},isReadyToRender:function(){var a=this;return!(!F&&H==H.top&&"complete"!==f.readyState)||(f.attachEvent("onreadystatechange",function(){f.detachEvent("onreadystatechange",a.firstRender),"complete"===f.readyState&&a.firstRender()}),!1)},firstRender:function(){var a=this,b=a.options;a.isReadyToRender()&&(a.getContainer(),q(a,"init"),a.resetMargins(),a.setChartSize(),a.propFromSeries(),a.getAxes(),n(b.series||[],function(b){a.initSeries(b)}),a.linkSeries(),q(a,"beforeRender"),z&&(a.pointer=new z(a,b)),a.render(),a.renderer.draw(),!a.renderer.imgCount&&a.onload&&a.onload(),a.cloneRenderTo(!0))},onload:function(){n([this.callback].concat(this.callbacks),function(a){a&&void 0!==this.index&&a.apply(this,[this])},this),q(this,"load"),m(this.index)&&!1!==this.options.chart.reflow&&this.initReflow(),this.onload=null}}}(a),function(a){var b,c=a.each,d=a.extend,e=a.erase,f=a.fireEvent,g=a.format,h=a.isArray,i=a.isNumber,j=a.pick,k=a.removeEvent;b=a.Point=function(){},b.prototype={init:function(a,b,c){return this.series=a,this.color=a.color,this.applyOptions(b,c),a.options.colorByPoint?(b=a.options.colors||a.chart.options.colors,this.color=this.color||b[a.colorCounter],b=b.length,c=a.colorCounter,a.colorCounter++,a.colorCounter===b&&(a.colorCounter=0)):c=a.colorIndex,this.colorIndex=j(this.colorIndex,c),a.chart.pointCount++,this},applyOptions:function(a,c){var e=this.series,f=e.options.pointValKey||e.pointValKey;return a=b.prototype.optionsToObject.call(this,a),d(this,a),this.options=this.options?d(this.options,a):a,a.group&&delete this.group,f&&(this.y=this[f]),this.isNull=j(this.isValid&&!this.isValid(),null===this.x||!i(this.y,!0)),this.selected&&(this.state="select"),"name"in this&&void 0===c&&e.xAxis&&e.xAxis.hasNames&&(this.x=e.xAxis.nameToX(this)),void 0===this.x&&e&&(this.x=void 0===c?e.autoIncrement(this):c),this},optionsToObject:function(a){var b={},c=this.series,d=c.options.keys,e=d||c.pointArrayMap||["y"],f=e.length,g=0,j=0;if(i(a)||null===a)b[e[0]]=a;else if(h(a))for(!d&&a.length>f&&(c=typeof a[0],"string"===c?b.name=a[0]:"number"===c&&(b.x=a[0]),g++);j<f;)d&&void 0===a[g]||(b[e[j]]=a[g]),g++,j++;else"object"==typeof a&&(b=a,a.dataLabels&&(c._hasPointLabels=!0),a.marker&&(c._hasPointMarkers=!0));return b},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:"")},getZone:function(){var d,a=this.series,b=a.zones,a=a.zoneAxis||"y",c=0;for(d=b[c];this[a]>=d.value;)d=b[++c];return d&&d.color&&!this.options.color&&(this.color=d.color),d},destroy:function(){var c,a=this.series.chart,b=a.hoverPoints;a.pointCount--,b&&(this.setState(),e(b,this),b.length||(a.hoverPoints=null)),this===a.hoverPoint&&this.onMouseOut(),(this.graphic||this.dataLabel)&&(k(this),this.destroyElements()),this.legendItem&&a.legend.destroyItem(this);for(c in this)this[c]=null},destroyElements:function(){for(var b,a=["graphic","dataLabel","dataLabelUpper","connector","shadowGroup"],c=6;c--;)b=a[c],this[b]&&(this[b]=this[b].destroy())},getLabelConfig:function(){return{x:this.category,y:this.y,color:this.color,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}},tooltipFormatter:function(a){var b=this.series,d=b.tooltipOptions,e=j(d.valueDecimals,""),f=d.valuePrefix||"",h=d.valueSuffix||"";return c(b.pointArrayMap||["y"],function(b){b="{point."+b,(f||h)&&(a=a.replace(b+"}",f+b+"}"+h)),a=a.replace(b+"}",b+":,."+e+"f}")}),g(a,{point:this,series:this.series})},firePointEvent:function(a,b,c){var d=this,e=this.series.options;(e.point.events[a]||d.options&&d.options.events&&d.options.events[a])&&this.importEvents(),"click"===a&&e.allowPointSelect&&(c=function(a){d.select&&d.select(null,a.ctrlKey||a.metaKey||a.shiftKey)}),f(this,a,b,c)},visible:!0}}(a),function(a){var b=a.addEvent,c=a.animObject,d=a.arrayMax,e=a.arrayMin,f=a.correctFloat,g=a.Date,h=a.defaultOptions,i=a.defaultPlotOptions,j=a.defined,k=a.each,l=a.erase,m=a.extend,n=a.fireEvent,o=a.grep,p=a.isArray,q=a.isNumber,r=a.isString,s=a.merge,t=a.pick,u=a.removeEvent,v=a.splat,w=a.SVGElement,x=a.syncTimeout,y=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:{lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{marker:{}}},stickyTracking:!0,turboThreshold:1e3},{isCartesian:!0,pointClass:a.Point,sorted:!0,requireSorting:!0,directTouch:!1,axisTypes:["xAxis","yAxis"],colorCounter:0,parallelArrays:["x","y"],coll:"series",init:function(a,c){var e,f,h,d=this,g=a.series;d.chart=a,d.options=c=d.setOptions(c),d.linkedSeries=[],d.bindAxes(),m(d,{name:c.name,state:"",visible:!1!==c.visible,selected:!0===c.selected}),f=c.events;for(e in f)b(d,e,f[e]);for((f&&f.click||c.point&&c.point.events&&c.point.events.click||c.allowPointSelect)&&(a.runTrackerClick=!0),d.getColor(),d.getSymbol(),k(d.parallelArrays,function(a){d[a+"Data"]=[]}),d.setData(c.data,!1),d.isCartesian&&(a.hasCartesianSeries=!0),g.length&&(h=g[g.length-1]),d._i=t(h&&h._i,-1)+1,a=this.insert(g);a<g.length;a++)g[a].index=a,g[a].name=g[a].name||"Series "+(g[a].index+1)},insert:function(a){var c,b=this.options.index;if(q(b)){for(c=a.length;c--;)if(b>=t(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 t(c,a.length-1)},bindAxes:function(){var e,b=this,c=b.options,d=b.chart;k(b.axisTypes||[],function(f){k(d[f],function(a){e=a.options,(c[f]===e.index||void 0!==c[f]&&c[f]===e.id||void 0===c[f]&&0===e.index)&&(b.insert(a.series),b[f]=a,a.isDirty=!0)}),b[f]||b.optionalAxis===f||a.error(18,!0)})},updateParallelArrays:function(a,b){var c=a.series,d=arguments,e=q(b)?function(d){var e="y"===d&&c.toYData?c.toYData(a):a[d];c[d+"Data"][b]=e}:function(a){Array.prototype[b].apply(c[a+"Data"],Array.prototype.slice.call(d,2))};k(c.parallelArrays,e)},autoIncrement:function(){var c,a=this.options,b=this.xIncrement,d=a.pointIntervalUnit,b=t(b,a.pointStart,0);return this.pointInterval=c=t(this.pointInterval,a.pointInterval,1),d&&(a=new g(b),"day"===d?a=+a[g.hcSetDate](a[g.hcGetDate]()+c):"month"===d?a=+a[g.hcSetMonth](a[g.hcGetMonth]()+c):"year"===d&&(a=+a[g.hcSetFullYear](a[g.hcGetFullYear]()+c)),c=a-b),this.xIncrement=b+c,b},setOptions:function(a){var b=this.chart,c=b.options.plotOptions,b=b.userOptions||{},d=b.plotOptions||{},e=c[this.type];return this.userOptions=a,c=s(e,c.series,a),this.tooltipOptions=s(h.tooltip,h.plotOptions[this.type].tooltip,b.tooltip,d.series&&d.series.tooltip,d[this.type]&&d[this.type].tooltip,a.tooltip),null===e.marker&&delete c.marker,this.zoneAxis=c.zoneAxis,a=this.zones=(c.zones||[]).slice(),!c.negativeColor&&!c.negativeFillColor||c.zones||a.push({value:c[this.zoneAxis+"Threshold"]||c.threshold||0,className:"highcharts-negative",color:c.negativeColor,fillColor:c.negativeFillColor}),a.length&&j(a[a.length-1].value)&&a.push({color:this.color,fillColor:this.fillColor}),c},getCyclic:function(a,b,c){var d,e=this.userOptions,f=a+"Index",g=a+"Counter",h=c?c.length:t(this.chart.options.chart[a+"Count"],this.chart[a+"Count"]);b||(d=t(e[f],e["_"+f]),j(d)||(e["_"+f]=d=this.chart[g]%h,this.chart[g]+=1),c&&(b=c[d])),void 0!==d&&(this[f]=d),this[a]=b},getColor:function(){this.options.colorByPoint?this.options.color=null:this.getCyclic("color",this.options.color||i[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,e){var i,f=this,g=f.points,h=g&&g.length||0,j=f.options,l=f.chart,m=null,n=f.xAxis,o=j.turboThreshold,s=this.xData,u=this.yData,v=(i=f.pointArrayMap)&&i.length;if(b=b||[],i=b.length,c=t(c,!0),!1!==e&&i&&h===i&&!f.cropped&&!f.hasGroupedData&&f.visible)k(b,function(a,b){g[b].update&&a!==j.data[b]&&g[b].update(a,!1,null,!1)});else{if(f.xIncrement=null,f.colorCounter=0,k(this.parallelArrays,function(a){f[a+"Data"].length=0}),o&&i>o){for(d=0;null===m&&d<i;)m=b[d],d++;if(q(m))for(d=0;d<i;d++)s[d]=this.autoIncrement(),u[d]=b[d];else if(p(m))if(v)for(d=0;d<i;d++)m=b[d],s[d]=m[0],u[d]=m.slice(1,v+1);else for(d=0;d<i;d++)m=b[d],s[d]=m[0],u[d]=m[1];else a.error(12)}else for(d=0;d<i;d++)void 0!==b[d]&&(m={series:f},f.pointClass.prototype.applyOptions.apply(m,[b[d]]),f.updateParallelArrays(m,d));for(r(u[0])&&a.error(14,!0),f.data=[],f.options.data=f.userOptions.data=b,d=h;d--;)g[d]&&g[d].destroy&&g[d].destroy();n&&(n.minRange=n.userMinRange),f.isDirty=l.isDirtyBox=!0,f.isDirtyData=!!g,d=!1}"point"===j.legendType&&(this.processData(),this.generatePoints()),c&&l.redraw(d)},processData:function(b){var f,c=this.xData,d=this.yData,e=c.length;f=0;var g,h,j,i=this.xAxis,k=this.options;j=k.cropThreshold;var o,p,l=this.getExtremesFromAll||k.getExtremesFromAll,m=this.isCartesian,k=i&&i.val2lin,n=i&&i.isLog;if(m&&!this.isDirty&&!i.isDirty&&!this.yAxis.isDirty&&!b)return!1;for(i&&(b=i.getExtremes(),o=b.min,p=b.max),m&&this.sorted&&!l&&(!j||e>j||this.forceCrop)&&(c[e-1]<o||c[0]>p?(c=[],d=[]):(c[0]<o||c[e-1]>p)&&(f=this.cropData(this.xData,this.yData,o,p),c=f.xData,d=f.yData,f=f.start,g=!0)),j=c.length||1;--j;)e=n?k(c[j])-k(c[j-1]):c[j]-c[j-1],0<e&&(void 0===h||e<h)?h=e:0>e&&this.requireSorting&&a.error(15);this.cropped=g,this.cropStart=f,this.processedXData=c,this.processedYData=d,this.closestPointRange=h},cropData:function(a,b,c,d){var i,e=a.length,f=0,g=e,h=t(this.cropShoulder,1);for(i=0;i<e;i++)if(a[i]>=c){f=Math.max(0,i-h);break}for(c=i;c<e;c++)if(a[c]>d){g=c+h;break}return{xData:a.slice(f,g),yData:b.slice(f,g),start:f,end:g}},generatePoints:function(){var c,i,k,m,a=this.options.data,b=this.data,d=this.processedXData,e=this.processedYData,f=this.pointClass,g=d.length,h=this.cropStart||0,j=this.hasGroupedData,l=[];for(b||j||(b=[],b.length=a.length,b=this.data=b),m=0;m<g;m++)i=h+m,j?(k=(new f).init(this,[d[m]].concat(v(e[m]))),k.dataGroup=this.groupMap[m]):(k=b[i])||void 0===a[i]||(b[i]=k=(new f).init(this,a[i],d[m])),k.index=i,l[m]=k;if(b&&(g!==(c=b.length)||j))for(m=0;m<c;m++)m!==h||j||(m+=g),b[m]&&(b[m].destroyElements(),b[m].plotX=void 0);this.data=b,this.points=l},getExtremes:function(a){var f,b=this.yAxis,c=this.processedXData,g=[],h=0;f=this.xAxis.getExtremes();var k,l,m,n,i=f.min,j=f.max;for(a=a||this.stackedYData||this.processedYData||[],f=a.length,n=0;n<f;n++)if(l=c[n],m=a[n],k=(q(m,!0)||p(m))&&(!b.isLog||m.length||0<m),l=this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||(c[n+1]||l)>=i&&(c[n-1]||l)<=j,k&&l)if(k=m.length)for(;k--;)null!==m[k]&&(g[h++]=m[k]);else g[h++]=m;this.dataMin=e(g),this.dataMax=d(g)},translate:function(){this.processedXData||this.processData(),this.generatePoints();var o,p,r,s,a=this.options,b=a.stacking,c=this.xAxis,d=c.categories,e=this.yAxis,g=this.points,h=g.length,i=!!this.modifyValue,k=a.pointPlacement,l="between"===k||q(k),m=a.threshold,n=a.startFromThreshold?m:0,u=Number.MAX_VALUE;for("between"===k&&(k=.5),q(k)&&(k*=t(a.pointRange||c.pointRange)),a=0;a<h;a++){var v=g[a],w=v.x,x=v.y;p=v.low;var z,y=b&&e.stacks[(this.negStacks&&x<(n?0:m)?"-":"")+this.stackKey];e.isLog&&null!==x&&0>=x&&(v.isNull=!0),v.plotX=o=f(Math.min(Math.max(-1e5,c.translate(w,0,0,0,1,k,"flags"===this.type)),1e5)),b&&this.visible&&!v.isNull&&y&&y[w]&&(s=this.getStackIndicator(s,w,this.index),z=y[w],x=z.points[s.key],p=x[0],x=x[1],p===n&&s.key===y[w].base&&(p=t(m,e.min)),e.isLog&&0>=p&&(p=null),v.total=v.stackTotal=z.total,v.percentage=z.total&&v.y/z.total*100,v.stackY=x,z.setOffset(this.pointXOffset||0,this.barW||0)),v.yBottom=j(p)?e.translate(p,0,1,0,1):null,i&&(x=this.modifyValue(x,v)),v.plotY=p="number"==typeof x&&1/0!==x?Math.min(Math.max(-1e5,e.translate(x,0,1,0,1)),1e5):void 0,v.isInside=void 0!==p&&0<=p&&p<=e.len&&0<=o&&o<=c.len,v.clientX=l?f(c.translate(w,0,0,0,1,k)):o,v.negative=v.y<(m||0),v.category=d&&void 0!==d[v.x]?d[v.x]:v.x,v.isNull||(void 0!==r&&(u=Math.min(u,Math.abs(o-r))),r=o),v.zone=this.zones.length&&v.getZone()}this.closestPointRangePx=u},getValidPoints:function(a,b){var c=this.chart;return o(a||this.points||[],function(a){return!(b&&!c.isInsidePlot(a.plotX,a.plotY,c.inverted))&&!a.isNull})},setClip:function(a){var b=this.chart,c=this.options,d=b.renderer,e=b.inverted,f=this.clipBox,g=f||b.clipBox,h=this.sharedClipKey||["_sharedClip",a&&a.duration,a&&a.easing,g.height,c.xAxis,c.yAxis].join(),i=b[h],j=b[h+"m"];i||(a&&(g.width=0,b[h+"m"]=j=d.clipRect(-99,e?-b.plotLeft:-b.plotTop,99,e?b.chartWidth:b.chartHeight)),b[h]=i=d.clipRect(g),i.count={length:0}),a&&!i.count[this.index]&&(i.count[this.index]=!0,i.count.length+=1),!1!==c.clip&&(this.group.clip(a||f?i:b.clipRect),this.markerGroup.clip(j),this.sharedClipKey=h),a||(i.count[this.index]&&(delete i.count[this.index],--i.count.length),0===i.count.length&&h&&b[h]&&(f||(b[h]=b[h].destroy()),b[h+"m"]&&(b[h+"m"]=b[h+"m"].destroy())))},animate:function(a){var e,b=this.chart,d=c(this.options.animation);a?this.setClip(d):(e=this.sharedClipKey,(a=b[e])&&a.animate({width:b.plotSizeX},d),b[e+"m"]&&b[e+"m"].animate({width:b.plotSizeX+99},d),this.animate=null)},afterAnimate:function(){this.setClip(),n(this,"afterAnimate")},drawPoints:function(){var c,d,e,f,h,i,j,k,a=this.points,b=this.chart,g=this.options.marker,l=this.markerGroup,m=t(g.enabled,!!this.xAxis.isRadial||null,this.closestPointRangePx>2*g.radius);if(!1!==g.enabled||this._hasPointMarkers)for(d=a.length;d--;)e=a[d],c=e.plotY,f=e.graphic,h=e.marker||{},i=!!e.marker,j=m&&void 0===h.enabled||h.enabled,k=e.isInside,j&&q(c)&&null!==e.y?(c=t(h.symbol,this.symbol),e.hasImage=0===c.indexOf("url"),j=this.markerAttribs(e,e.selected&&"select"),f?f[k?"show":"hide"](!0).animate(j):k&&(0<j.width||e.hasImage)&&(e.graphic=f=b.renderer.symbol(c,j.x,j.y,j.width,j.height,i?h:g).add(l)),f&&f.attr(this.pointAttribs(e,e.selected&&"select")),f&&f.addClass(e.getClassName(),!0)):f&&(e.graphic=f.destroy())},markerAttribs:function(a,b){var c=this.options.marker,d=a&&a.options,e=d&&d.marker||{},d=t(e.radius,c.radius);return b&&(c=c.states[b],b=e.states&&e.states[b],d=t(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=a&&a.options,e=d&&d.marker||{},f=this.color,g=d&&d.color,h=a&&a.color,d=t(e.lineWidth,c.lineWidth);return a=a&&a.zone&&a.zone.color,f=g||a||h||f,a=e.fillColor||c.fillColor||f,f=e.lineColor||c.lineColor||f,b&&(c=c.states[b],b=e.states&&e.states[b]||{},d=t(b.lineWidth,c.lineWidth,d+t(b.lineWidthPlus,c.lineWidthPlus,0)),a=b.fillColor||c.fillColor||a,f=b.lineColor||c.lineColor||f),{stroke:f,"stroke-width":d,fill:a}},destroy:function(){var d,f,g,h,a=this,b=a.chart,c=/AppleWebKit\/533/.test(y.navigator.userAgent),e=a.data||[];for(n(a,"destroy"),u(a),k(a.axisTypes||[],function(b){(h=a[b])&&h.series&&(l(h.series,a),h.isDirty=h.forceRedraw=!0)}),a.legendItem&&a.chart.legend.destroyItem(a),d=e.length;d--;)(f=e[d])&&f.destroy&&f.destroy();a.points=null,clearTimeout(a.animationTimeout);for(g in a)a[g]instanceof w&&!a[g].survive&&(d=c&&"group"===g?"hide":"destroy",a[g][d]());b.hoverSeries===a&&(b.hoverSeries=null),l(b.series,a);for(g in a)delete a[g]},getGraphPath:function(a,b,c){var g,l,d=this,e=d.options,f=e.step,h=[],i=[];return a=a||d.points,(g=a.reversed)&&a.reverse(),(f={right:1,center:2}[f]||f&&3)&&g&&(f=4-f),!e.connectNulls||b||c||(a=this.getValidPoints(a)),k(a,function(g,k){var m=g.plotX,n=g.plotY,o=a[k-1];(g.leftCliff||o&&o.rightCliff)&&!c&&(l=!0),g.isNull&&!j(b)&&0<k?l=!e.connectNulls:g.isNull&&!b?l=!0:(0===k||l?k=["M",g.plotX,g.plotY]:d.getPointSpline?k=d.getPointSpline(a,g,k):f?(k=1===f?["L",o.plotX,n]:2===f?["L",(o.plotX+m)/2,o.plotY,"L",(o.plotX+m)/2,n]:["L",m,o.plotY],k.push("L",m,n)):k=["L",m,n],i.push(g.x),f&&i.push(g.x),h.push.apply(h,k),l=!1)}),h.xMap=i,d.graphPath=h},drawGraph:function(){var a=this,b=this.options,c=(this.gappedPath||this.getGraphPath).call(this),d=[["graph","highcharts-graph",b.lineColor||this.color,b.dashStyle]];k(this.zones,function(c,e){d.push(["zone-graph-"+e,"highcharts-graph highcharts-zone-graph-"+e+" "+(c.className||""),c.color||a.color,c.dashStyle||b.dashStyle])}),k(d,function(d,e){var f=d[0],g=a[f];g?(g.endX=c.xMap,g.animate({d:c})):c.length&&(a[f]=a.chart.renderer.path(c).addClass(d[1]).attr({zIndex:1}).add(a.group),g={stroke:d[2],"stroke-width":b.lineWidth,fill:a.fillGraph&&a.color||"none"},d[3]?g.dashstyle=d[3]:"square"!==b.linecap&&(g["stroke-linecap"]=g["stroke-linejoin"]="round"),g=a[f].attr(g).shadow(2>e&&b.shadow)),g&&(g.startX=c.xMap,g.isArea=c.isArea)})},applyZones:function(){var e,f,h,n,o,q,r,s,u,a=this,b=this.chart,c=b.renderer,d=this.zones,g=this.clips||[],i=this.graph,j=this.area,l=Math.max(b.chartWidth,b.chartHeight),m=this[(this.zoneAxis||"y")+"Axis"],p=b.inverted,v=!1;d.length&&(i||j)&&m&&void 0!==m.min&&(o=m.reversed,q=m.horiz,i&&i.hide(),j&&j.hide(),n=m.getExtremes(),k(d,function(d,k){e=o?q?b.plotWidth:0:q?0:m.toPixels(n.min),e=Math.min(Math.max(t(f,e),0),l),f=Math.min(Math.max(Math.round(m.toPixels(t(d.value,n.max),!0)),0),l),v&&(e=f=m.toPixels(n.max)),r=Math.abs(e-f),s=Math.min(e,f),u=Math.max(e,f),m.isXAxis?(h={x:p?u:s,y:0,width:r,height:l},q||(h.x=b.plotHeight-h.x)):(h={x:0,y:p?u:s,width:l,height:r},q&&(h.y=b.plotWidth-h.y)),p&&c.isVML&&(h=m.isXAxis?{x:0,y:o?s:u,height:h.width,width:b.chartWidth}:{x:h.y-b.plotLeft-b.spacingBox.x,y:0,width:h.height,height:b.chartHeight}),g[k]?g[k].animate(h):(g[k]=c.clipRect(h),i&&a["zone-graph-"+k].clip(g[k]),j&&a["zone-area-"+k].clip(g[k])),v=d.value>n.max}),this.clips=g)},invertGroups:function(a){function c(){var b={width:d.yAxis.len,height:d.xAxis.len};k(["group","markerGroup"],function(c){d[c]&&d[c].attr(b).invert(a)})}var e,d=this;d.xAxis&&(e=b(d.chart,"resize",c),b(d,"destroy",e),c(a),d.invertGroups=c)},plotGroup:function(a,b,c,d,e){var f=this[a],g=!f;return g&&(this[a]=f=this.chart.renderer.g(b).attr({zIndex:d||.1}).add(e),f.addClass("highcharts-series-"+this.index+" highcharts-"+this.type+"-series highcharts-color-"+this.colorIndex+" "+(this.options.className||""))),f.attr({visibility:c})[g?"attr":"animate"](this.getPlotBox()),f},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 d,a=this,b=a.chart,e=a.options,f=!!a.animate&&b.renderer.isSVG&&c(e.animation).duration,g=a.visible?"inherit":"hidden",h=e.zIndex,i=a.hasRendered,j=b.seriesGroup,k=b.inverted;d=a.plotGroup("group","series",g,h,j),a.markerGroup=a.plotGroup("markerGroup","markers",g,h,j),f&&a.animate(!0),d.inverted=!!a.isCartesian&&k,a.drawGraph&&(a.drawGraph(),a.applyZones()),a.drawDataLabels&&a.drawDataLabels(),a.visible&&a.drawPoints(),a.drawTracker&&!1!==a.options.enableMouseTracking&&a.drawTracker(),a.invertGroups(k),!1===e.clip||a.sharedClipKey||i||d.clip(b.clipRect),f&&a.animate(),i||(a.animationTimeout=x(function(){a.afterAnimate()},f)),a.isDirty=a.isDirtyData=!1,a.hasRendered=!0},redraw:function(){var a=this.chart,b=this.isDirty||this.isDirtyData,c=this.group,d=this.xAxis,e=this.yAxis;c&&(a.inverted&&c.attr({width:a.plotWidth,height:a.plotHeight}),c.animate({translateX:t(d&&d.left,a.plotLeft),translateY:t(e&&e.top,a.plotTop)})),this.translate(),this.render(),b&&delete this.kdTree},kdDimensions:1,kdAxisArray:["clientX","plotY"],searchPoint:function(a,b){var c=this.xAxis,d=this.yAxis,e=this.chart.inverted;return this.searchKDTree({clientX:e?c.len-a.chartY+c.pos:a.chartX-c.pos,plotY:e?d.len-a.chartX+d.pos:a.chartY-d.pos},b)},buildKDTree:function(){function a(c,d,e){var f,g;if(g=c&&c.length)return f=b.kdAxisArray[d%e],c.sort(function(a,b){return a[f]-b[f]}),g=Math.floor(g/2),{point:c[g],left:a(c.slice(0,g),d+1,e),right:a(c.slice(g+1),d+1,e)}}var b=this,c=b.kdDimensions;delete b.kdTree,x(function(){b.kdTree=a(b.getValidPoints(null,!b.directTouch),c,c)},b.options.kdNow?0:1)},searchKDTree:function(a,b){function c(a,b,h,i){var m,n,k=b.point,l=d.kdAxisArray[h%i],o=k;return n=j(a[e])&&j(k[e])?Math.pow(a[e]-k[e],2):null,m=j(a[f])&&j(k[f])?Math.pow(a[f]-k[f],2):null,m=(n||0)+(m||0),k.dist=j(m)?Math.sqrt(m):Number.MAX_VALUE,k.distX=j(n)?Math.sqrt(n):Number.MAX_VALUE,l=a[l]-k[l],m=0>l?"left":"right",n=0>l?"right":"left",b[m]&&(m=c(a,b[m],h+1,i),o=m[g]<o[g]?m:k),b[n]&&Math.sqrt(l*l)<o[g]&&(a=c(a,b[n],h+1,i),o=a[g]<o[g]?a:o),o}var d=this,e=this.kdAxisArray[0],f=this.kdAxisArray[1],g=b?"distX":"dist";if(this.kdTree||this.buildKDTree(),this.kdTree)return c(a,this.kdTree,this.kdDimensions,this.kdDimensions)}})}(a),function(a){function b(a,b,c,d,e){var f=a.chart.inverted;this.axis=a,this.isNegative=c,this.options=b,this.x=d,this.total=null,this.points={},this.stack=e,this.rightCliff=this.leftCliff=0,this.alignOptions={align:b.align||(f?c?"left":"right":"center"),verticalAlign:b.verticalAlign||(f?"middle":c?"bottom":"top"),y:j(b.y,f?4:c?14:-6),x:j(b.x,f?c?-6:6:0)},this.textAlign=b.textAlign||(f?c?"right":"left":"center")}var c=a.Axis,d=a.Chart,e=a.correctFloat,f=a.defined,g=a.destroyObjectProperties,h=a.each,i=a.format,j=a.pick;a=a.Series,b.prototype={destroy:function(){g(this,this.axis)},render:function(a){var b=this.options,c=b.format,c=c?i(c,this):b.formatter.call(this);this.label?this.label.attr({text:c,visibility:"hidden"}):this.label=this.axis.chart.renderer.text(c,null,null,b.useHTML).css(b.style).attr({align:this.textAlign,rotation:b.rotation,visibility:"hidden"}).add(a)},setOffset:function(a,b){var c=this.axis,d=c.chart,e=d.inverted,f=c.reversed,f=this.isNegative&&!f||!this.isNegative&&f,g=c.translate(c.usePercentage?100:this.total,0,0,0,1),c=c.translate(0),c=Math.abs(g-c);a=d.xAxis[0].translate(this.x)+a;var h=d.plotHeight,e={x:e?f?g:g-c:a,y:e?h-a-b:f?h-g-c:h-g,width:e?c:b,height:e?b:c};(b=this.label)&&(b.align(this.alignOptions,null,e),e=b.alignAttr,b[!1===this.options.crop||d.isInsidePlot(e.x,e.y)?"show":"hide"](!0))}},d.prototype.getStacks=function(){var a=this;h(a.yAxis,function(a){a.stacks&&a.hasVisibleSeries&&(a.oldStacks=a.stacks)}),h(a.series,function(b){!b.options.stacking||!0!==b.visible&&!1!==a.options.chart.ignoreHiddenSeries||(b.stackKey=b.type+j(b.options.stack,""))})},c.prototype.buildStacks=function(){var b,e,a=this.series,c=j(this.options.reversedStacks,!0),d=a.length;if(!this.isXAxis){for(this.usePercentage=!1,e=d;e--;)a[c?e:d-e-1].setStackedPoints();for(e=d;e--;)b=a[c?e:d-e-1],b.setStackCliffs&&b.setStackCliffs();if(this.usePercentage)for(e=0;e<d;e++)a[e].setPercentStacks()}},c.prototype.renderStackTotals=function(){var d,e,a=this.chart,b=a.renderer,c=this.stacks,f=this.stackTotalGroup;f||(this.stackTotalGroup=f=b.g("stack-labels").attr({visibility:"visible",zIndex:6}).add()),f.translate(a.plotLeft,a.plotTop);for(d in c)for(e in a=c[d])a[e].render(f)},c.prototype.resetStacks=function(){var b,c,a=this.stacks;if(!this.isXAxis)for(b in a)for(c in a[b])a[b][c].touched<this.stacksTouched?(a[b][c].destroy(),delete a[b][c]):(a[b][c].total=null,a[b][c].cum=null)},c.prototype.cleanStacks=function(){var a,b,c;if(!this.isXAxis)for(b in this.oldStacks&&(a=this.stacks=this.oldStacks),a)for(c in a[b])a[b][c].cum=a[b][c].total},a.prototype.setStackedPoints=function(){if(this.options.stacking&&(!0===this.visible||!1===this.chart.options.chart.ignoreHiddenSeries)){var s,t,u,v,w,x,y,a=this.processedXData,c=this.processedYData,d=[],g=c.length,h=this.options,i=h.threshold,k=h.startFromThreshold?i:0,l=h.stack,h=h.stacking,m=this.stackKey,n="-"+m,o=this.negStacks,p=this.yAxis,q=p.stacks,r=p.oldStacks;for(p.stacksTouched+=1,w=0;w<g;w++)x=a[w],y=c[w],s=this.getStackIndicator(s,x,this.index),v=s.key,u=(t=o&&y<(k?0:i))?n:m,q[u]||(q[u]={}),q[u][x]||(r[u]&&r[u][x]?(q[u][x]=r[u][x],q[u][x].total=null):q[u][x]=new b(p,p.options.stackLabels,t,x,l)),u=q[u][x],null!==y&&(u.points[v]=u.points[this.index]=[j(u.cum,k)],f(u.cum)||(u.base=v),u.touched=p.stacksTouched,0<s.index&&!1===this.singleStacks&&(u.points[v][0]=u.points[this.index+","+x+",0"][0])),"percent"===h?(t=t?m:n,o&&q[t]&&q[t][x]?(t=q[t][x],u.total=t.total=Math.max(t.total,u.total)+Math.abs(y)||0):u.total=e(u.total+(Math.abs(y)||0))):u.total=e(u.total+(y||0)),u.cum=j(u.cum,k)+(y||0),null!==y&&(u.points[v].push(u.cum),d[w]=u.cum);"percent"===h&&(p.usePercentage=!0),this.stackedYData=d,p.oldStacks={}}},a.prototype.setPercentStacks=function(){var f,a=this,b=a.stackKey,c=a.yAxis.stacks,d=a.processedXData;h([b,"-"+b],function(b){for(var h,i,g=d.length;g--;)h=d[g],f=a.getStackIndicator(f,h,a.index,b),(h=(i=c[b]&&c[b][h])&&i.points[f.key])&&(i=i.total?100/i.total:0,h[0]=e(h[0]*i),h[1]=e(h[1]*i),a.stackedYData[g]=h[1])})},a.prototype.getStackIndicator=function(a,b,c,d){return!f(a)||a.x!==b||d&&a.key!==d?a={x:b,index:0,key:d}:a.index++,a.key=[c,b,a.index].join(),a}}(a),function(a){var b=a.addEvent,c=a.animate,d=a.Axis,e=a.createElement,f=a.css,g=a.defined,h=a.each,i=a.erase,j=a.extend,k=a.fireEvent,l=a.inArray,m=a.isNumber,n=a.isObject,o=a.merge,p=a.pick,q=a.Point,r=a.Series,s=a.seriesTypes,t=a.setAnimation,u=a.splat;j(a.Chart.prototype,{addSeries:function(a,b,c){var d,e=this;return a&&(b=p(b,!0),k(e,"addSeries",{options:a},function(){d=e.initSeries(a),e.isDirtyLegend=!0,e.linkSeries(),b&&e.redraw(c)})),d},addAxis:function(a,b,c,e){var f=b?"xAxis":"yAxis",g=this.options;a=o(a,{index:this[f].length,isX:b}),new d(this,a),g[f]=u(g[f]||{}),g[f].push(a),p(c,!0)&&this.redraw(e)},showLoading:function(a){var d=this,g=d.options,h=d.loadingDiv,i=g.loading,k=function(){h&&f(h,{left:d.plotLeft+"px",top:d.plotTop+"px",width:d.plotWidth+"px",height:d.plotHeight+"px"})};h||(d.loadingDiv=h=e("div",{className:"highcharts-loading highcharts-loading-hidden"},null,d.container),d.loadingSpan=e("span",{className:"highcharts-loading-inner"},null,h),b(d,"redraw",k)),h.className="highcharts-loading",d.loadingSpan.innerHTML=a||g.lang.loading,f(h,j(i.style,{zIndex:10})),f(d.loadingSpan,i.labelStyle),d.loadingShown||(f(h,{opacity:0,display:""}),c(h,{opacity:i.style.opacity||.5},{duration:i.showDuration||0})),d.loadingShown=!0,k()},hideLoading:function(){var a=this.options,b=this.loadingDiv;b&&(b.className="highcharts-loading highcharts-loading-hidden",c(b,{opacity:0},{duration:a.loading.hideDuration||100,complete:function(){f(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".split(" "),update:function(a,b){var c,f,i,d={credits:"addCredits",title:"setTitle",subtitle:"setSubtitle"},e=a.chart;if(e){o(!0,this.options.chart,e),"className"in e&&this.setClassName(e.className),("inverted"in e||"polar"in e)&&(this.propFromSeries(),f=!0);for(c in e)e.hasOwnProperty(c)&&(-1!==l("chart."+c,this.propsRequireUpdateSeries)&&(i=!0),-1!==l(c,this.propsRequireDirtyBox)&&(this.isDirtyBox=!0));"style"in e&&this.renderer.setStyle(e.style)}for(c in a)this[c]&&"function"==typeof this[c].update?this[c].update(a[c],!1):"function"==typeof this[d[c]]&&this[d[c]](a[c]),"chart"!==c&&-1!==l(c,this.propsRequireUpdateSeries)&&(i=!0);a.colors&&(this.options.colors=a.colors),a.plotOptions&&o(!0,this.options.plotOptions,a.plotOptions),h(["xAxis","yAxis","series"],function(b){a[b]&&h(u(a[b]),function(a){var c=g(a.id)&&this.get(a.id)||this[b][0];c&&c.coll===b&&c.update(a,!1)},this)},this),f&&h(this.axes,function(a){a.update({},!1)}),i&&h(this.series,function(a){a.update({},!1)}),a.loading&&o(!0,this.options.loading,a.loading),c=e&&e.width,e=e&&e.height,m(c)&&c!==this.chartWidth||m(e)&&e!==this.chartHeight?this.setSize(c,e):p(b,!0)&&this.redraw()},setSubtitle:function(a){this.setTitle(void 0,a)}}),j(q.prototype,{update:function(a,b,c,d){function e(){f.applyOptions(a),null===f.y&&h&&(f.graphic=h.destroy()),n(a,!0)&&(h&&h.element&&a&&a.marker&&a.marker.symbol&&(f.graphic=h.destroy()),a&&a.dataLabels&&f.dataLabel&&(f.dataLabel=f.dataLabel.destroy())),i=f.index,g.updateParallelArrays(f,i),k.data[i]=n(k.data[i],!0)?f.options:a,g.isDirty=g.isDirtyData=!0,!g.fixedBox&&g.hasCartesianSeries&&(j.isDirtyBox=!0),"point"===k.legendType&&(j.isDirtyLegend=!0),b&&j.redraw(c)}var i,f=this,g=f.series,h=f.graphic,j=g.chart,k=g.options;b=p(b,!0),!1===d?e():f.firePointEvent("update",{options:a},e)},remove:function(a,b){this.series.removePoint(l(this,this.series.data),a,b)}}),j(r.prototype,{addPoint:function(a,b,c,d){var j,k,m,n,e=this.options,f=this.data,g=this.chart,h=this.xAxis&&this.xAxis.names,i=e.data,l=this.xData;if(b=p(b,!0),j={series:this},this.pointClass.prototype.applyOptions.apply(j,[a]),n=j.x,m=l.length,this.requireSorting&&n<l[m-1])for(k=!0;m&&l[m-1]>n;)m--;this.updateParallelArrays(j,"splice",m,0,0),this.updateParallelArrays(j,m),h&&j.name&&(h[n]=j.name),i.splice(m,0,a),k&&(this.data.splice(m,0,null),this.processData()),"point"===e.legendType&&this.generatePoints(),c&&(f[0]&&f[0].remove?f[0].remove(!1):(f.shift(),this.updateParallelArrays(j,"shift"),i.shift())),this.isDirtyData=this.isDirty=!0,b&&g.redraw(d)},removePoint:function(a,b,c){var d=this,e=d.data,f=e[a],g=d.points,h=d.chart,i=function(){g&&g.length===e.length&&g.splice(a,1),e.splice(a,1),d.options.data.splice(a,1),d.updateParallelArrays(f||{series:d},"splice",a,1),f&&f.destroy(),d.isDirty=!0,d.isDirtyData=!0,b&&h.redraw()};t(c,h),b=p(b,!0),f?f.firePointEvent("remove",null,i):i()},remove:function(a,b,c){function d(){e.destroy(),f.isDirtyLegend=f.isDirtyBox=!0,f.linkSeries(),p(a,!0)&&f.redraw(b)}var e=this,f=e.chart;!1!==c?k(e,"remove",null,d):d()},update:function(a,b){var l,c=this,d=this.chart,e=this.userOptions,f=this.type,g=a.type||e.type||d.options.chart.type,i=s[f].prototype,k=["group","markerGroup","dataLabelsGroup"];(g&&g!==f||void 0!==a.zIndex)&&(k.length=0),h(k,function(a){k[a]=c[a],delete c[a]}),a=o(e,{animation:!1,index:this.index,pointStart:this.xData[0]},{data:this.options.data},a),this.remove(!1,null,!1);for(l in i)this[l]=void 0;j(this,s[g||f].prototype),h(k,function(a){c[a]=k[a]}),this.init(d,a),d.linkSeries(),p(b,!0)&&d.redraw(!1)}}),j(d.prototype,{update:function(a,b){var c=this.chart;a=c.options[this.coll][this.options.index]=o(this.userOptions,a),this.destroy(!0),this.init(c,j(a,{events:void 0})),c.isDirtyBox=!0,p(b,!0)&&c.redraw()},remove:function(a){for(var b=this.chart,c=this.coll,d=this.series,e=d.length;e--;)d[e]&&d[e].remove(!1);i(b.axes,this),i(b[c],this),b.options[c].splice(this.options.index,1),h(b[c],function(a,b){a.options.index=b}),this.destroy(),b.isDirtyBox=!0,p(a,!0)&&b.redraw()},setTitle:function(a,b){this.update({title:a},b)},setCategories:function(a,b){
this.update({categories:a},b)}})}(a),function(a){var b=a.color,c=a.each,d=a.map,e=a.pick,f=a.Series,g=a.seriesType;g("area","line",{softThreshold:!1,threshold:0},{singleStacks:!1,getStackPoints:function(){var n,p,q,a=[],b=[],f=this.xAxis,g=this.yAxis,h=g.stacks[this.stackKey],i={},j=this.points,k=this.index,l=g.series,m=l.length,o=e(g.options.reversedStacks,!0)?1:-1;if(this.options.stacking){for(p=0;p<j.length;p++)i[j[p].x]=j[p];for(q in h)null!==h[q].total&&b.push(q);b.sort(function(a,b){return a-b}),n=d(l,function(){return this.visible}),c(b,function(d,e){var l,q,j=0;if(i[d]&&!i[d].isNull)a.push(i[d]),c([-1,1],function(a){var c=1===a?"rightNull":"leftNull",f=0,g=h[b[e+a]];if(g)for(p=k;0<=p&&p<m;)l=g.points[p],l||(p===k?i[d][c]=!0:n[p]&&(q=h[d].points[p])&&(f-=q[1]-q[0])),p+=o;i[d][1===a?"rightCliff":"leftCliff"]=f});else{for(p=k;0<=p&&p<m;){if(l=h[d].points[p]){j=l[1];break}p+=o}j=g.toPixels(j,!0),a.push({isNull:!0,plotX:f.toPixels(d,!0),plotY:j,yBottom:j})}})}return a},getGraphPath:function(a){var h,i,m,q,b=f.prototype.getGraphPath,c=this.options,d=c.stacking,g=this.yAxis,j=[],k=[],l=this.index,n=g.stacks[this.stackKey],o=c.threshold,p=g.getThreshold(c.threshold),c=c.connectNulls||"percent"===d,r=function(b,c,e){var f=a[b];b=d&&n[f.x].points[l];var h=f[e+"Null"]||0;e=f[e+"Cliff"]||0;var i,q,f=!0;e||h?(i=(h?b[0]:b[1])+e,q=b[0]+e,f=!!h):!d&&a[c]&&a[c].isNull&&(i=q=o),void 0!==i&&(k.push({plotX:m,plotY:null===i?p:g.getThreshold(i),isNull:f}),j.push({plotX:m,plotY:null===q?p:g.getThreshold(q),doCurve:!1}))};for(a=a||this.points,d&&(a=this.getStackPoints()),h=0;h<a.length;h++)i=a[h].isNull,m=e(a[h].rectPlotX,a[h].plotX),q=e(a[h].yBottom,p),(!i||c)&&(c||r(h,h-1,"left"),i&&!d&&c||(k.push(a[h]),j.push({x:h,plotX:m,plotY:q})),c||r(h,h+1,"right"));return h=b.call(this,k,!0,!0),j.reversed=!0,i=b.call(this,j,!0,!0),i.length&&(i[0]="L"),i=h.concat(i),b=b.call(this,k,!1,c),i.xMap=h.xMap,this.areaPath=i,b},drawGraph:function(){this.areaPath=[],f.prototype.drawGraph.apply(this);var a=this,d=this.areaPath,g=this.options,h=[["area","highcharts-area",this.color,g.fillColor]];c(this.zones,function(b,c){h.push(["zone-area-"+c,"highcharts-area highcharts-zone-area-"+c+" "+b.className,b.color||a.color,b.fillColor||g.fillColor])}),c(h,function(c){var f=c[0],h=a[f];h?(h.endX=d.xMap,h.animate({d:d})):(h=a[f]=a.chart.renderer.path(d).addClass(c[1]).attr({fill:e(c[3],b(c[2]).setOpacity(e(g.fillOpacity,.75)).get()),zIndex:0}).add(a.group),h.isArea=!0),h.startX=d.xMap,h.shiftUnit=g.step?2:1})},drawLegendSymbol:a.LegendSymbolMixin.drawRectangle})}(a),function(a){var b=a.pick;(a=a.seriesType)("spline","line",{},{getPointSpline:function(a,c,d){var e=c.plotX,f=c.plotY,g=a[d-1];d=a[d+1];var h,i,j,k;if(g&&!g.isNull&&!1!==g.doCurve&&d&&!d.isNull&&!1!==d.doCurve){a=g.plotY,j=d.plotX,d=d.plotY;var l=0;h=(1.5*e+g.plotX)/2.5,i=(1.5*f+a)/2.5,j=(1.5*e+j)/2.5,k=(1.5*f+d)/2.5,j!==h&&(l=(k-i)*(j-e)/(j-h)+f-k),i+=l,k+=l,i>a&&i>f?(i=Math.max(a,f),k=2*f-i):i<a&&i<f&&(i=Math.min(a,f),k=2*f-i),k>d&&k>f?(k=Math.max(d,f),i=2*f-k):k<d&&k<f&&(k=Math.min(d,f),i=2*f-k),c.rightContX=j,c.rightContY=k}return c=["C",b(g.rightContX,g.plotX),b(g.rightContY,g.plotY),b(h,e),b(i,f),e,f],g.rightContX=g.rightContY=null,c}})}(a),function(a){var b=a.seriesTypes.area.prototype,c=a.seriesType;c("areaspline","spline",a.defaultPlotOptions.area,{getStackPoints:b.getStackPoints,getGraphPath:b.getGraphPath,setStackCliffs:b.setStackCliffs,drawGraph:b.drawGraph,drawLegendSymbol:a.LegendSymbolMixin.drawRectangle})}(a),function(a){var b=a.animObject,c=a.color,d=a.each,e=a.extend,f=a.isNumber,g=a.merge,h=a.pick,i=a.Series,j=a.seriesType,k=a.svg;j("column","line",{borderRadius: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(){i.prototype.init.apply(this,arguments);var a=this,b=a.chart;b.hasRendered&&d(b.series,function(b){b.type===a.type&&(b.isDirty=!0)})},getColumnMetrics:function(){var g,a=this,b=a.options,c=a.xAxis,e=a.yAxis,f=c.reversed,i={},j=0;!1===b.grouping?j=1:d(a.chart.series,function(b){var f,c=b.options,d=b.yAxis;b.type===a.type&&b.visible&&e.len===d.len&&e.pos===d.pos&&(c.stacking?(g=b.stackKey,void 0===i[g]&&(i[g]=j++),f=i[g]):!1!==c.grouping&&(f=j++),b.columnIndex=f)});var k=Math.min(Math.abs(c.transA)*(c.ordinalSlope||b.pointRange||c.closestPointRange||c.tickInterval||1),c.len),l=k*b.groupPadding,m=(k-2*l)/j,b=Math.min(b.maxPointWidth||c.len,h(b.pointWidth,m*(1-2*b.pointPadding)));return a.columnMetrics={width:b,offset:(m-b)/2+(l+((a.columnIndex||0)+(f?1:0))*m-k/2)*(f?-1:1)},a.columnMetrics},crispCol:function(a,b,c,d){var e=this.chart,f=this.borderWidth,g=-(f%2?.5:0),f=f%2?.5:1;return e.inverted&&e.renderer.isVML&&(f+=1),c=Math.round(a+c)+g,a=Math.round(a)+g,d=Math.round(b+d)+f,g=.5>=Math.abs(b)&&.5<d,b=Math.round(b)+f,d-=b,g&&d&&(--b,d+=1),{x:a,y:b,width:c-a,height:d}},translate:function(){var a=this,b=a.chart,c=a.options,e=a.dense=2>a.closestPointRange*a.xAxis.transA,e=a.borderWidth=h(c.borderWidth,e?0:1),f=a.yAxis,g=a.translatedThreshold=f.getThreshold(c.threshold),j=h(c.minPointLength,5),k=a.getColumnMetrics(),l=k.width,m=a.barW=Math.max(l,1+2*e),n=a.pointXOffset=k.offset;b.inverted&&(g-=.5),c.pointPadding&&(m=Math.ceil(m)),i.prototype.translate.apply(a),d(a.points,function(c){var p,d=h(c.yBottom,g),e=999+Math.abs(d),e=Math.min(Math.max(-e,c.plotY),f.len+e),i=c.plotX+n,k=m,o=Math.min(e,d),q=Math.max(e,d)-o;Math.abs(q)<j&&j&&(q=j,p=!f.reversed&&!c.negative||f.reversed&&c.negative,o=Math.abs(o-g)>j?d-j:g-(p?j:0)),c.barX=i,c.pointWidth=l,c.tooltipPos=b.inverted?[f.len+f.pos-b.plotLeft-e,a.xAxis.len-i-k/2,q]:[i+k/2,e+f.pos-b.plotTop,q],c.shapeType="rect",c.shapeArgs=a.crispCol.apply(a,c.isNull?[c.plotX,f.len/2,0,0]:[i,o,k,q])})},getSymbol:a.noop,drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,drawGraph:function(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")},pointAttribs:function(a,b){var e,d=this.options,f=this.pointAttrToOptions||{};e=f.stroke||"borderColor";var g=f["stroke-width"]||"borderWidth",h=a&&a.color||this.color,i=a[e]||d[e]||this.color||h,j=a[g]||d[g]||this[g]||0,f=d.dashStyle;return a&&this.zones.length&&(h=(h=a.getZone())&&h.color||a.options.color||this.color),b&&(a=d.states[b],b=a.brightness,h=a.color||void 0!==b&&c(h).brighten(a.brightness).get()||h,i=a[e]||i,j=a[g]||j,f=a.dashStyle||f),e={fill:h,stroke:i,"stroke-width":j},d.borderRadius&&(e.r=d.borderRadius),f&&(e.dashstyle=f),e},drawPoints:function(){var i,a=this,b=this.chart,c=a.options,e=b.renderer,h=c.animationLimit||250;d(a.points,function(d){var j=d.graphic;f(d.plotY)&&null!==d.y?(i=d.shapeArgs,j?j[b.pointCount<h?"animate":"attr"](g(i)):d.graphic=j=e[d.shapeType](i).attr({class:d.getClassName()}).add(d.group||a.group),j.attr(a.pointAttribs(d,d.selected&&"select")).shadow(c.shadow,null,c.stacking&&!c.borderRadius)):j&&(d.graphic=j.destroy())})},animate:function(a){var c=this,d=this.yAxis,f=c.options,g=this.chart.inverted,h={};k&&(a?(h.scaleY=.001,a=Math.min(d.pos+d.len,Math.max(d.pos,d.toPixels(f.threshold))),g?h.translateX=a-d.len:h.translateY=a,c.group.attr(h)):(h[g?"translateX":"translateY"]=d.pos,c.group.animate(h,e(b(c.options.animation),{step:function(a,b){c.group.attr({scaleY:Math.max(.001,b.pos)})}})),c.animate=null))},remove:function(){var a=this,b=a.chart;b.hasRendered&&d(b.series,function(b){b.type===a.type&&(b.isDirty=!0)}),i.prototype.remove.apply(a,arguments)}})}(a),function(a){(a=a.seriesType)("bar","column",null,{inverted:!0})}(a),function(a){var b=a.Series;(a=a.seriesType)("scatter","line",{lineWidth:0,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,kdDimensions:2,drawGraph:function(){this.options.lineWidth&&b.prototype.drawGraph.call(this)}})}(a),function(a){var b=a.pick,c=a.relativeLength;a.CenteredSeriesMixin={getCenter:function(){var i,j,a=this.options,d=this.chart,e=2*(a.slicedOffset||0),f=d.plotWidth-2*e,d=d.plotHeight-2*e,g=a.center,g=[b(g[0],"50%"),b(g[1],"50%"),a.size||"100%",a.innerSize||0],h=Math.min(f,d);for(i=0;4>i;++i)j=g[i],a=2>i||2===i&&/%$/.test(j),g[i]=c(j,[f,d,h,g[2]][i])+(a?e:0);return g[3]>g[2]&&(g[3]=g[2]),g}}}(a),function(a){var b=a.addEvent,c=a.defined,d=a.each,e=a.extend,f=a.inArray,g=a.noop,h=a.pick,i=a.Point,j=a.Series,k=a.seriesType,l=a.setAnimation;k("pie","line",{center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{distance:30,enabled:!0,formatter:function(){return null===this.y?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 b=this,c=b.points,e=b.startAngleRad;a||(d(c,function(a){var c=a.graphic,d=a.shapeArgs;c&&(c.attr({r:a.startR||b.center[3]/2,start:e,end:e}),c.animate({r:d.r,start:d.start,end:d.end},b.options.animation))}),b.animate=null)},updateTotals:function(){var a,e,b=0,c=this.points,d=c.length,f=this.options.ignoreHiddenPoint;for(a=0;a<d;a++)e=c[a],0>e.y&&(e.y=null),b+=f&&!e.visible?0:e.y;for(this.total=b,a=0;a<d;a++)e=c[a],e.percentage=0<b&&(e.visible||!f)?e.y/b*100:0,e.total=b},generatePoints:function(){j.prototype.generatePoints.call(this),this.updateTotals()},translate:function(a){this.generatePoints();var f,g,i,n,p,b=0,c=this.options,d=c.slicedOffset,e=d+(c.borderWidth||0),j=c.startAngle||0,k=this.startAngleRad=Math.PI/180*(j-90),j=(this.endAngleRad=Math.PI/180*(h(c.endAngle,j+360)-90))-k,l=this.points,m=c.dataLabels.distance,c=c.ignoreHiddenPoint,o=l.length;for(a||(this.center=a=this.getCenter()),this.getX=function(b,c){return i=Math.asin(Math.min((b-a[1])/(a[2]/2+m),1)),a[0]+(c?-1:1)*Math.cos(i)*(a[2]/2+m)},n=0;n<o;n++)p=l[n],f=k+b*j,c&&!p.visible||(b+=p.percentage/100),g=k+b*j,p.shapeType="arc",p.shapeArgs={x:a[0],y:a[1],r:a[2]/2,innerR:a[3]/2,start:Math.round(1e3*f)/1e3,end:Math.round(1e3*g)/1e3},i=(g+f)/2,i>1.5*Math.PI?i-=2*Math.PI:i<-Math.PI/2&&(i+=2*Math.PI),p.slicedTranslation={translateX:Math.round(Math.cos(i)*d),translateY:Math.round(Math.sin(i)*d)},f=Math.cos(i)*a[2]/2,g=Math.sin(i)*a[2]/2,p.tooltipPos=[a[0]+.7*f,a[1]+.7*g],p.half=i<-Math.PI/2||i>Math.PI/2?1:0,p.angle=i,e=Math.min(e,m/5),p.labelPos=[a[0]+f+Math.cos(i)*m,a[1]+g+Math.sin(i)*m,a[0]+f+Math.cos(i)*e,a[1]+g+Math.sin(i)*e,a[0]+f,a[1]+g,0>m?"center":p.half?"right":"left",i]},drawGraph:null,drawPoints:function(){var c,f,g,h,a=this,b=a.chart.renderer,i=a.options.shadow;i&&!a.shadowGroup&&(a.shadowGroup=b.g("shadow").add(a.group)),d(a.points,function(d){if(null!==d.y){f=d.graphic,h=d.shapeArgs,c=d.sliced?d.slicedTranslation:{};var j=d.shadowGroup;i&&!j&&(j=d.shadowGroup=b.g("shadow").add(a.shadowGroup)),j&&j.attr(c),g=a.pointAttribs(d,d.selected&&"select"),f?f.setRadialReference(a.center).attr(g).animate(e(h,c)):(d.graphic=f=b[d.shapeType](h).addClass(d.getClassName()).setRadialReference(a.center).attr(c).add(a.group),d.visible||f.attr({visibility:"hidden"}),f.attr(g).attr({"stroke-linejoin":"round"}).shadow(i,j))}})},searchPoint:g,sortByAngle:function(a,b){a.sort(function(a,c){return void 0!==a.angle&&(c.angle-a.angle)*b})},drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,getCenter:a.CenteredSeriesMixin.getCenter,getSymbol:g},{init:function(){i.prototype.init.apply(this,arguments);var c,a=this;return a.name=h(a.name,"Slice"),c=function(b){a.slice("select"===b.type)},b(a,"select",c),b(a,"unselect",c),a},setVisible:function(a,b){var c=this,e=c.series,g=e.chart,i=e.options.ignoreHiddenPoint;b=h(b,i),a!==c.visible&&(c.visible=c.options.visible=a=void 0===a?!c.visible:a,e.options.data[f(c,e.data)]=c.options,d(["graphic","dataLabel","connector","shadowGroup"],function(b){c[b]&&c[b][a?"show":"hide"](!0)}),c.legendItem&&g.legend.colorizeItem(c,a),a||"hover"!==c.state||c.setState(""),i&&(e.isDirty=!0),b&&g.redraw())},slice:function(a,b,d){var e=this.series;l(d,e.chart),h(b,!0),this.sliced=this.options.sliced=a=c(a)?a:!this.sliced,e.options.data[f(this,e.data)]=this.options,a=a?this.slicedTranslation:{translateX:0,translateY:0},this.graphic.animate(a),this.shadowGroup&&this.shadowGroup.animate(a)},haloPath:function(a){var b=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(b.x,b.y,b.r+a,b.r+a,{innerR:this.shapeArgs.r,start:b.start,end:b.end})}})}(a),function(a){var b=a.addEvent,c=a.arrayMax,d=a.defined,e=a.each,f=a.extend,g=a.format,h=a.map,i=a.merge,j=a.noop,k=a.pick,l=a.relativeLength,m=a.Series,n=a.seriesTypes,o=a.stableSort;a.distribute=function(a,b){function c(a,b){return a.target-b.target}var d,j,f=!0,g=a,i=[];for(j=0,d=a.length;d--;)j+=a[d].size;if(j>b){for(o(a,function(a,b){return(b.rank||0)-(a.rank||0)}),j=d=0;j<=b;)j+=a[d].size,d++;i=a.splice(d-1,a.length)}for(o(a,c),a=h(a,function(a){return{size:a.size,targets:[a.target]}});f;){for(d=a.length;d--;)f=a[d],j=(Math.min.apply(0,f.targets)+Math.max.apply(0,f.targets))/2,f.pos=Math.min(Math.max(0,j-f.size/2),b-f.size);for(d=a.length,f=!1;d--;)0<d&&a[d-1].pos+a[d-1].size>a[d].pos&&(a[d-1].size+=a[d].size,a[d-1].targets=a[d-1].targets.concat(a[d].targets),a[d-1].pos+a[d-1].size>b&&(a[d-1].pos=b-a[d-1].size),a.splice(d,1),f=!0)}d=0,e(a,function(a){var b=0;e(a.targets,function(){g[d].pos=a.pos+b,b+=g[d].size,d++})}),g.push.apply(g,i),o(g,c)},m.prototype.drawDataLabels=function(){var l,m,o,p,a=this,c=a.options,h=c.dataLabels,j=a.points,n=a.hasRendered||0,q=k(h.defer,!0),r=a.chart.renderer;(h.enabled||a._hasPointLabels)&&(a.dlProcessOptions&&a.dlProcessOptions(h),p=a.plotGroup("dataLabelsGroup","data-labels",q&&!n?"hidden":"visible",h.zIndex||6),q&&(p.attr({opacity:+n}),n||b(a,"afterAnimate",function(){a.visible&&p.show(!0),p[c.animation?"animate":"attr"]({opacity:1},{duration:200})})),m=h,e(j,function(b){var e,n,q,u,j=b.dataLabel,s=b.connector,t=!0,v={};if(l=b.dlOptions||b.options&&b.options.dataLabels,e=k(l&&l.enabled,m.enabled)&&null!==b.y,j&&!e)b.dataLabel=j.destroy();else if(e){if(h=i(m,l),u=h.style,e=h.rotation,n=b.getLabelConfig(),o=h.format?g(h.format,n):h.formatter.call(n,h),u.color=k(h.color,u.color,a.color,"#000000"),j)d(o)?(j.attr({text:o}),t=!1):(b.dataLabel=j=j.destroy(),s&&(b.connector=s.destroy()));else if(d(o)){j={fill:h.backgroundColor,stroke:h.borderColor,"stroke-width":h.borderWidth,r:h.borderRadius||0,rotation:e,padding:h.padding,zIndex:1},"contrast"===u.color&&(v.color=h.inside||0>h.distance||c.stacking?r.getContrast(b.color||a.color):"#000000"),c.cursor&&(v.cursor=c.cursor);for(q in j)void 0===j[q]&&delete j[q];j=b.dataLabel=r[e?"text":"label"](o,0,-9999,h.shape,null,null,h.useHTML,null,"data-label").attr(j),j.addClass("highcharts-data-label-color-"+b.colorIndex+" "+(h.className||"")+(h.useHTML?"highcharts-tracker":"")),j.css(f(u,v)),j.add(p),j.shadow(h.shadow)}j&&a.alignDataLabel(b,j,h,null,t)}}))},m.prototype.alignDataLabel=function(a,b,c,d,e){var m,g=this.chart,h=g.inverted,i=k(a.plotX,-9999),j=k(a.plotY,-9999),l=b.getBBox(),n=c.rotation,o=c.align,p=this.visible&&(a.series.forceDL||g.isInsidePlot(i,Math.round(j),h)||d&&g.isInsidePlot(i,h?d.x+1:d.y+d.height-1,h)),q="justify"===k(c.overflow,"justify");p&&(m=c.style.fontSize,m=g.renderer.fontMetrics(m,b).b,d=f({x:h?g.plotWidth-j:i,y:Math.round(h?g.plotHeight-i:j),width:0,height:0},d),f(c,{width:l.width,height:l.height}),n?(q=!1,h=g.renderer.rotCorr(m,n),h={x:d.x+c.x+d.width/2+h.x,y:d.y+c.y+{top:0,middle:.5,bottom:1}[c.verticalAlign]*d.height},b[e?"attr":"animate"](h).attr({align:o}),i=(n+720)%360,i=180<i&&360>i,"left"===o?h.y-=i?l.height:0:"center"===o?(h.x-=l.width/2,h.y-=l.height/2):"right"===o&&(h.x-=l.width,h.y-=i?0:l.height)):(b.align(c,null,d),h=b.alignAttr),q?this.justifyDataLabel(b,c,h,l,d,e):k(c.crop,!0)&&(p=g.isInsidePlot(h.x,h.y)&&g.isInsidePlot(h.x+l.width,h.y+l.height)),c.shape&&!n&&b.attr({anchorX:a.plotX,anchorY:a.plotY})),p||(b.attr({y:-9999}),b.placed=!1)},m.prototype.justifyDataLabel=function(a,b,c,d,e,f){var j,k,g=this.chart,h=b.align,i=b.verticalAlign,l=a.box?0:a.padding||0;j=c.x+l,0>j&&("right"===h?b.align="left":b.x=-j,k=!0),j=c.x+d.width-l,j>g.plotWidth&&("left"===h?b.align="right":b.x=g.plotWidth-j,k=!0),j=c.y+l,0>j&&("bottom"===i?b.verticalAlign="top":b.y=-j,k=!0),j=c.y+d.height-l,j>g.plotHeight&&("top"===i?b.verticalAlign="bottom":b.y=g.plotHeight-j,k=!0),k&&(a.placed=!f,a.align(b,null,e))},n.pie&&(n.pie.prototype.drawDataLabels=function(){var f,p,v,w,x,y,A,B,C,D,b=this,d=b.data,g=b.chart,i=b.options.dataLabels,j=k(i.connectorPadding,10),l=k(i.connectorWidth,1),n=g.plotWidth,o=g.plotHeight,q=i.distance,r=b.center,s=r[2]/2,t=r[1],u=0<q,z=[[],[]],E=[0,0,0,0];b.visible&&(i.enabled||b._hasPointLabels)&&(m.prototype.drawDataLabels.apply(b),e(d,function(a){a.dataLabel&&a.visible&&(z[a.half].push(a),a.dataLabel._pos=null)}),e(z,function(c,d){var e,k,m,p,u,l=c.length;if(l)for(b.sortByAngle(c,d-.5),0<q&&(e=Math.max(0,t-s-q),k=Math.min(t+s+q,g.plotHeight),m=h(c,function(a){if(a.dataLabel)return u=a.dataLabel.getBBox().height||21,{target:a.labelPos[1]-e+u/2,size:u,rank:a.y}}),a.distribute(m,k+u-e)),D=0;D<l;D++)f=c[D],x=f.labelPos,v=f.dataLabel,C=!1===f.visible?"hidden":"inherit",p=x[1],m?void 0===m[D].pos?C="hidden":(y=m[D].size,B=e+m[D].pos):B=p,A=i.justify?r[0]+(d?-1:1)*(s+q):b.getX(B<e+2||B>k-2?p:B,d),v._attr={visibility:C,align:x[6]},v._pos={x:A+i.x+({left:j,right:-j}[x[6]]||0),y:B+i.y-10},x.x=A,x.y=B,null===b.options.size&&(w=v.width,A-w<j?E[3]=Math.max(Math.round(w-A+j),E[3]):A+w>n-j&&(E[1]=Math.max(Math.round(A+w-n+j),E[1])),0>B-y/2?E[0]=Math.max(Math.round(-B+y/2),E[0]):B+y/2>o&&(E[2]=Math.max(Math.round(B+y/2-o),E[2])))}),0===c(E)||this.verifyDataLabelOverflow(E))&&(this.placeDataLabels(),u&&l&&e(this.points,function(a){var c;p=a.connector,(v=a.dataLabel)&&v._pos&&a.visible?(C=v._attr.visibility,(c=!p)&&(a.connector=p=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+a.colorIndex).add(b.dataLabelsGroup),p.attr({"stroke-width":l,stroke:i.connectorColor||a.color||"#666666"})),p[c?"attr":"animate"]({d:b.connectorPath(a.labelPos)}),p.attr("visibility",C)):p&&(a.connector=p.destroy())}))},n.pie.prototype.connectorPath=function(a){var b=a.x,c=a.y;return k(this.options.dataLabels.softConnector,!0)?["M",b+("left"===a[6]?5:-5),c,"C",b,c,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),c,"L",a[2],a[3],"L",a[4],a[5]]},n.pie.prototype.placeDataLabels=function(){e(this.points,function(a){var b=a.dataLabel;b&&a.visible&&((a=b._pos)?(b.attr(b._attr),b[b.moved?"animate":"attr"](a),b.moved=!0):b&&b.attr({y:-9999}))})},n.pie.prototype.alignDataLabel=j,n.pie.prototype.verifyDataLabelOverflow=function(a){var f,g,b=this.center,c=this.options,d=c.center,e=c.minSize||80;return null!==d[0]?f=Math.max(b[2]-Math.max(a[1],a[3]),e):(f=Math.max(b[2]-a[1]-a[3],e),b[0]+=(a[3]-a[1])/2),null!==d[1]?f=Math.max(Math.min(f,b[2]-Math.max(a[0],a[2])),e):(f=Math.max(Math.min(f,b[2]-a[0]-a[2]),e),b[1]+=(a[0]-a[2])/2),f<b[2]?(b[2]=f,b[3]=Math.min(l(c.innerSize||0,f),f),this.translate(b),this.drawDataLabels&&this.drawDataLabels()):g=!0,g}),n.column&&(n.column.prototype.alignDataLabel=function(a,b,c,d,e){var f=this.chart.inverted,g=a.series,h=a.dlBox||a.shapeArgs,j=k(a.below,a.plotY>k(this.translatedThreshold,g.yAxis.len)),l=k(c.inside,!!this.options.stacking);h&&(d=i(h),0>d.y&&(d.height+=d.y,d.y=0),h=d.y+d.height-g.yAxis.len,0<h&&(d.height-=h),f&&(d={x:g.yAxis.len-d.y-d.height,y:g.xAxis.len-d.x-d.width,width:d.height,height:d.width}),l||(f?(d.x+=j?0:d.width,d.width=0):(d.y+=j?d.height:0,d.height=0))),c.align=k(c.align,!f||l?"center":j?"right":"left"),c.verticalAlign=k(c.verticalAlign,f||l?"middle":j?"top":"bottom"),m.prototype.alignDataLabel.call(this,a,b,c,d,e)})}(a),function(a){var b=a.Chart,c=a.each,d=a.pick,e=a.addEvent;b.prototype.callbacks.push(function(a){function b(){var b=[];c(a.series,function(a){var e=a.options.dataLabels,f=a.dataLabelCollections||["dataLabel"];(e.enabled||a._hasPointLabels)&&!e.allowOverlap&&a.visible&&c(f,function(e){c(a.points,function(a){a[e]&&(a[e].labelrank=d(a.labelrank,a.shapeArgs&&a.shapeArgs.height),b.push(a[e]))})})}),a.hideOverlappingLabels(b)}b(),e(a,"redraw",b)}),b.prototype.hideOverlappingLabels=function(a){var d,e,f,g,h,i,j,k,l,b=a.length,m=function(a,b,c,d,e,f,g,h){return!(e>a+c||e+g<a||f>b+d||f+h<b)};for(e=0;e<b;e++)(d=a[e])&&(d.oldOpacity=d.opacity,d.newOpacity=1);for(a.sort(function(a,b){return(b.labelrank||0)-(a.labelrank||0)}),e=0;e<b;e++)for(f=a[e],d=e+1;d<b;++d)g=a[d],f&&g&&f.placed&&g.placed&&0!==f.newOpacity&&0!==g.newOpacity&&(h=f.alignAttr,i=g.alignAttr,j=f.parentGroup,k=g.parentGroup,l=2*(f.box?0:f.padding),h=m(h.x+j.translateX,h.y+j.translateY,f.width-l,f.height-l,i.x+k.translateX,i.y+k.translateY,g.width-l,g.height-l))&&((f.labelrank<g.labelrank?f:g).newOpacity=0);c(a,function(a){var b,c;a&&(c=a.newOpacity,a.oldOpacity!==c&&a.placed&&(c?a.show(!0):b=function(){a.hide()},a.alignAttr.opacity=c,a[a.isOld?"animate":"attr"](a.alignAttr,null,b)),a.isOld=!0)})}}(a),function(a){var b=a.addEvent,c=a.Chart,d=a.createElement,e=a.css,f=a.defaultOptions,g=a.defaultPlotOptions,h=a.each,i=a.extend,j=a.fireEvent,k=a.hasTouch,l=a.inArray,m=a.isObject,n=a.Legend,o=a.merge,p=a.pick,q=a.Point,r=a.Series,s=a.seriesTypes,t=a.svg;a=a.TrackerMixin={drawTrackerPoint:function(){var a=this,b=a.chart,c=b.pointer,d=function(a){for(var d,c=a.target;c&&!d;)d=c.point,c=c.parentNode;void 0!==d&&d!==b.hoverPoint&&d.onMouseOver(a)};h(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||(h(a.trackerGroups,function(b){a[b]&&(a[b].addClass("highcharts-tracker").on("mouseover",d).on("mouseout",function(a){c.onTrackerMouseOut(a)}),k&&a[b].on("touchstart",d),a.options.cursor&&a[b].css(e).css({cursor:a.options.cursor}))}),a._hasTracking=!0)},drawTrackerGraph:function(){var m,a=this,b=a.options,c=b.trackByArea,d=[].concat(c?a.areaPath:a.graphPath),e=d.length,f=a.chart,g=f.pointer,i=f.renderer,j=f.options.tooltip.snap,l=a.tracker,n=function(){f.hoverSeries!==a&&a.onMouseOver()},o="rgba(192,192,192,"+(t?1e-4:.002)+")";if(e&&!c)for(m=e+1;m--;)"M"===d[m]&&d.splice(m+1,0,d[m+1]-j,d[m+2],"L"),(m&&"M"===d[m]||m===e)&&d.splice(m,0,"L",d[m-2]+j,d[m-1]);l?l.attr({d:d}):a.graph&&(a.tracker=i.path(d).attr({"stroke-linejoin":"round",visibility:a.visible?"visible":"hidden",stroke:o,fill:c?o:"none","stroke-width":a.graph.strokeWidth()+(c?0:2*j),zIndex:2}).add(a.group),h([a.tracker,a.markerGroup],function(a){a.addClass("highcharts-tracker").on("mouseover",n).on("mouseout",function(a){g.onTrackerMouseOut(a)}),b.cursor&&a.css({cursor:b.cursor}),k&&a.on("touchstart",n)}))}},s.column&&(s.column.prototype.drawTracker=a.drawTrackerPoint),s.pie&&(s.pie.prototype.drawTracker=a.drawTrackerPoint),s.scatter&&(s.scatter.prototype.drawTracker=a.drawTrackerPoint),i(n.prototype,{setItemEvents:function(a,b,c){var d=this,e=d.chart,f="highcharts-legend-"+(a.series?"point":"series")+"-active";(c?b:a.legendGroup).on("mouseover",function(){a.setState("hover"),e.seriesGroup.addClass(f),b.css(d.options.itemHoverStyle)}).on("mouseout",function(){b.css(a.visible?d.itemStyle:d.itemHiddenStyle),e.seriesGroup.removeClass(f),a.setState()}).on("click",function(b){var c=function(){a.setVisible&&a.setVisible()};b={browserEvent:b},a.firePointEvent?a.firePointEvent("legendItemClick",b,c):j(a,"legendItemClick",b,c)})},createCheckboxForItem:function(a){a.checkbox=d("input",{type:"checkbox",checked:a.selected,defaultChecked:a.selected},this.options.itemCheckboxStyle,this.chart.container),b(a.checkbox,"click",function(b){j(a.series||a,"checkboxClick",{checked:b.target.checked,item:a},function(){a.select()})})}}),f.legend.itemStyle.cursor="pointer",i(c.prototype,{showResetZoom:function(){var a=this,b=f.lang,c=a.options.chart.resetZoomButton,d=c.theme,e=d.states,g="chart"===c.relativeTo?null:"plotBox";this.resetZoomButton=a.renderer.button(b.resetZoom,null,null,function(){a.zoomOut()},d,e&&e.hover).attr({align:c.position.align,title:b.resetZoomTitle}).addClass("highcharts-reset-zoom").add().align(c.position,!1,g)},zoomOut:function(){var a=this;j(a,"selection",{resetSelection:!0},function(){a.zoom()})},zoom:function(a){var b,e,c=this.pointer,d=!1;!a||a.resetSelection?h(this.axes,function(a){b=a.zoom()}):h(a.xAxis.concat(a.yAxis),function(a){var e=a.axis;c[e.isXAxis?"zoomX":"zoomY"]&&(b=e.zoom(a.min,a.max),e.displayBtn&&(d=!0))}),e=this.resetZoomButton,d&&!e?this.showResetZoom():!d&&m(e)&&(this.resetZoomButton=e.destroy()),b&&this.redraw(p(this.options.chart.animation,a&&a.animation,100>this.pointCount))},pan:function(a,b){var f,c=this,d=c.hoverPoints;d&&h(d,function(a){a.setState()}),h("xy"===b?[1,0]:[1],function(b){b=c[b?"xAxis":"yAxis"][0];var d=b.horiz,e=a[d?"chartX":"chartY"],d=d?"mouseDownX":"mouseDownY",g=c[d],h=(b.pointRange||0)/2,i=b.getExtremes(),j=b.toValue(g-e,!0)+h,h=b.toValue(g+b.len-e,!0)-h,k=h<j,g=k?h:j,j=k?j:h,h=Math.min(i.dataMin,i.min)-g,i=j-Math.max(i.dataMax,i.max);b.series.length&&0>h&&0>i&&(b.setExtremes(g,j,!1,!1,{trigger:"pan"}),f=!0),c[d]=e}),f&&c.redraw(!1),e(c.container,{cursor:"move"})}}),i(q.prototype,{select:function(a,b){var c=this,d=c.series,e=d.chart;a=p(a,!c.selected),c.firePointEvent(a?"select":"unselect",{accumulate:b},function(){c.selected=c.options.selected=a,d.options.data[l(c,d.data)]=c.options,c.setState(a&&"select"),b||h(e.getSelectedPoints(),function(a){a.selected&&a!==c&&(a.selected=a.options.selected=!1,d.options.data[l(a,d.data)]=a.options,a.setState(""),a.firePointEvent("unselect"))})})},onMouseOver:function(a,b){var c=this.series,d=c.chart,e=d.tooltip,f=d.hoverPoint;this.series&&(b||(f&&f!==this&&f.onMouseOut(),d.hoverSeries!==c&&c.onMouseOver(),d.hoverPoint=this),!e||e.shared&&!c.noSharedTooltip?e||this.setState("hover"):(this.setState("hover"),e.refresh(this,a)),this.firePointEvent("mouseOver"))},onMouseOut:function(){var a=this.series.chart,b=a.hoverPoints;this.firePointEvent("mouseOut"),b&&-1!==l(this,b)||(this.setState(),a.hoverPoint=null)},importEvents:function(){if(!this.hasImportedEvents){var c,a=o(this.series.options.point,this.options).events;this.events=a;for(c in a)b(this,c,a[c]);this.hasImportedEvents=!0}},setState:function(a,b){var r,c=Math.floor(this.plotX),d=this.plotY,e=this.series,f=e.options.states[a]||{},h=g[e.type].marker&&e.options.marker,j=h&&!1===h.enabled,k=h&&h.states&&h.states[a]||{},l=!1===k.enabled,m=e.stateMarkerGraphic,n=this.marker||{},o=e.chart,q=e.halo,s=h&&e.markerAttribs;a=a||"",a===this.state&&!b||this.selected&&"select"!==a||!1===f.enabled||a&&(l||j&&!1===k.enabled)||a&&n.states&&n.states[a]&&!1===n.states[a].enabled||(s&&(r=e.markerAttribs(this,a)),this.graphic?(this.state&&this.graphic.removeClass("highcharts-point-"+this.state),a&&this.graphic.addClass("highcharts-point-"+a),this.graphic.attr(e.pointAttribs(this,a)),r&&this.graphic.animate(r,p(o.options.chart.animation,k.animation,h.animation)),m&&m.hide()):(a&&k&&(h=n.symbol||e.symbol,m&&m.currentSymbol!==h&&(m=m.destroy()),m?m[b?"animate":"attr"]({x:r.x,y:r.y}):h&&(e.stateMarkerGraphic=m=o.renderer.symbol(h,r.x,r.y,r.width,r.height).add(e.markerGroup),m.currentSymbol=h),m&&m.attr(e.pointAttribs(this,a))),m&&(m[a&&o.isInsidePlot(c,d,o.inverted)?"show":"hide"](),m.element.point=this)),(c=f.halo)&&c.size?(q||(e.halo=q=o.renderer.path().add(s?e.markerGroup:e.group)),q[b?"animate":"attr"]({d:this.haloPath(c.size)}),q.attr({class:"highcharts-halo highcharts-color-"+p(this.colorIndex,e.colorIndex)}),q.point=this,q.attr(i({fill:this.color||e.color,"fill-opacity":c.opacity,zIndex:-1},c.attributes))):q&&q.point&&q.point.haloPath&&q.animate({d:q.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)}}),i(r.prototype,{onMouseOver:function(){var a=this.chart,b=a.hoverSeries;b&&b!==this&&b.onMouseOut(),this.options.events.mouseOver&&j(this,"mouseOver"),this.setState("hover"),a.hoverSeries=this},onMouseOut:function(){var a=this.options,b=this.chart,c=b.tooltip,d=b.hoverPoint;b.hoverSeries=null,d&&d.onMouseOut(),this&&a.events.mouseOut&&j(this,"mouseOut"),!c||a.stickyTracking||c.shared&&!this.noSharedTooltip||c.hide(),this.setState()},setState:function(a){var b=this,c=b.options,d=b.graph,e=c.states,f=c.lineWidth,c=0;if(a=a||"",b.state!==a&&(h([b.group,b.markerGroup],function(c){c&&(b.state&&c.removeClass("highcharts-series-"+b.state),a&&c.addClass("highcharts-series-"+a))}),b.state=a,!e[a]||!1!==e[a].enabled)&&(a&&(f=e[a].lineWidth||f+(e[a].lineWidthPlus||0)),d&&!d.dashstyle))for(e={"stroke-width":f},d.attr(e);b["zone-graph-"+c];)b["zone-graph-"+c].attr(e),c+=1},setVisible:function(a,b){var f,c=this,d=c.chart,e=c.legendItem,g=d.options.chart.ignoreHiddenSeries,i=c.visible;f=(c.visible=a=c.options.visible=c.userOptions.visible=void 0===a?!i:a)?"show":"hide",h(["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&&h(d.series,function(a){a.options.stacking&&a.visible&&(a.isDirty=!0)}),h(c.linkedSeries,function(b){b.setVisible(a,!1)}),g&&(d.isDirtyBox=!0),!1!==b&&d.redraw(),j(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),j(this,a?"select":"unselect")},drawTracker:a.drawTrackerGraph})}(a),function(a){var b=a.Chart,c=a.each,d=a.inArray,e=a.isObject,f=a.pick,g=a.splat;b.prototype.setResponsive=function(a){var b=this.options.responsive;b&&b.rules&&c(b.rules,function(b){this.matchResponsiveRule(b,a)},this)},b.prototype.matchResponsiveRule=function(b,c){var g,d=this.respRules,e=b.condition;g=e.callback||function(){return this.chartWidth<=f(e.maxWidth,Number.MAX_VALUE)&&this.chartHeight<=f(e.maxHeight,Number.MAX_VALUE)&&this.chartWidth>=f(e.minWidth,0)&&this.chartHeight>=f(e.minHeight,0)},void 0===b._id&&(b._id=a.uniqueKey()),g=g.call(this),!d[b._id]&&g?b.chartOptions&&(d[b._id]=this.currentOptions(b.chartOptions),this.update(b.chartOptions,c)):d[b._id]&&!g&&(this.update(d[b._id],c),delete d[b._id])},b.prototype.currentOptions=function(a){function b(a,c,f){var h,i;for(h in a)if(-1<d(h,["series","xAxis","yAxis"]))for(a[h]=g(a[h]),f[h]=[],i=0;i<a[h].length;i++)f[h][i]={},b(a[h][i],c[h][i],f[h][i]);else e(a[h])?(f[h]={},b(a[h],c[h]||{},f[h])):f[h]=c[h]||null}var c={};return b(a,this.options,c),c}}(a),a});
</script>
<script src="//cdnjs.cloudflare.com/ajax/libs/highcharts/5.0.6/modules/exporting.js"></script>
</head>
<body>
<div class="container container-fluid">
<?php if ($outdated == true) { ?>
<div class="card card-inverse card-danger text-xs-center">
<div class="card-block">
<blockquote class="card-blockquote">
Script Outdated. Click <a href="?update">here</a> to update <?= basename(__FILE__); ?>.
</blockquote>
</div>
</div>
<?php } ?>
<nav class="navbar">
<div class="navbar-header">
<button type="button" class="navbar-toggler hidden-sm-up pull-left" style="line-height:30px;" data-toggle="collapse" data-target=".navbar-responsive-collapse">☰</button>
<span class="navbar-brand" style="line-height:40px;">Dragonball</span>
</div>
<div class="navbar-collapse collapse navbar-responsive-collapse navbar-toggleable-xs">
<ul class="nav navbar-nav">
<li class="active"><a href="#stats" data-toggle="tab">Stats</a></li>
<li><a href="#admins" data-toggle="tab">Admins</a></li>
<li><a href="#servers" data-toggle="tab">Servers</a></li>
</ul>
</div>
</nav>
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="stats">
<div class="card">
<div class="card-content">
<div class="card-body">
<div id="servers-graph"></div>
</div>
<footer class="card-footer">
<a href="https://maxdb.net/lib/ExtensiveFetch/Servers.php" target="_blank" class="btn btn-flat btn-warning">View Raw Source</a>
</footer>
</div>
</div>
</div>
<div role="tabpanel" class="tab-pane fade" id="admins">
<div class="card">
<div class="card-content">
<div class="card-body">
<table class="table table-hover">
<thead>
<tr>
<th>Name</th>
<th>Play Time</th>
</tr>
</thead>
<tbody>
<?php foreach ($admin_list as $k => $v) { ?>
<tr>
<td><?= $v; ?></td>
<td><?= (isset($occurrence[$k]) ? ($occurrence[$k] * 5) . " minutes" : '0 minutes'); ?></td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
<footer class="card-footer">
<a href="https://maxdb.net/lib/ExtensiveFetch/Admins.php" target="_blank" class="btn btn-flat btn-warning">View Raw Source</a>
</footer>
</div>
</div>
</div>
<div role="tabpanel" class="tab-pane fade" id="servers">
<div class="card">
<div class="card-content">
<div class="card-body">
<ul class="list-group">
<?php foreach ($vc_request['servers'] as $server) { ?>
<a class="list-group-item">
<div class="bmd-list-group-col">
<p class="list-group-item-heading"><?= $server['hostname']; ?> <span class="label <?= ($vc_request['latest_version'] - $server['version'] == 0 ? 'label-success' : 'label-danger');?>">v<?= $server['version']; ?></span></p>
<p class="list-group-item-text"><?= $server['host']; ?></p>
</div>
</a>
<?php } ?>
</ul>
</div>
<footer class="card-footer">
<a href="https://maxdb.net/lib/ExtensiveFetch/Server_List.php" target="_blank" class="btn btn-flat btn-warning">View Raw Source</a>
</footer>
</div>
</div>
</div>
</div>
</body>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-material-design/0.5.9/js/material.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-material-design/0.5.9/js/ripples.min.js"></script>
<script>$.material.init()</script>
<script>
$(function () {
Highcharts.setOptions({
global: {
useUTC: false
}
});
Highcharts.chart('servers-graph', {
chart: {
zoomType: 'x'
},
title: {
text: 'Server Statistics'
},
xAxis: {
type: 'datetime',
visible: false
},
yAxis: {
title: {
text: 'Players'
}
},
labels: {
items: [{
html: 'Server Popularity',
style: {
left: '73px',
top: '18px',
color: (Highcharts.theme && Highcharts.theme.textColor) || 'black'
}
}]
},
tooltip: {
pointFormat: '{series.name} with <b>{point.y:,.0f}</b><br/>players'
},
series: [
<?php foreach ($s_request as $k => $v) {
$x = [];
$v = explode(';', $v);
$pie[$i]['host'] = $k;
$pie[$i]['data'] = 0;
foreach ($v as $w) {
$y = explode(',', $w);
$pie[$i]['data'] += $y['1'];
$x[] = $y;
} ?>
{
type: 'area',
name: '<?= $k; ?>',
turboThreshold: 0,
data: <?= json_encode($x, JSON_NUMERIC_CHECK); ?>,
marker: {
lineWidth: 2,
lineColor: Highcharts.getOptions().colors[<?= $i; ?>],
fillColor: 'white'
}
}, <?php $i++; } ?> {
type: 'pie',
name: 'Monthly Population',
data: [
<?php foreach ($pie as $pd) { ?>
{
name: '<?= $pd['host']; ?>',
y: <?= $pd['data']; ?>,
color: Highcharts.getOptions().colors[<?= $i; ?>]
}, <?php $i++; } ?>
],
tooltip: {
pointFormat: 'Occupied <b>{point.percentage:,.0f}</b>% of monthly traffic'
},
center: [100, 80],
size: 100,
showInLegend: false,
dataLabels: {
enabled: false
}
}]
});
});
</script>
</html>