highcharts
Version:
JavaScript charting framework
105 lines (103 loc) • 254 kB
JavaScript
/*
Highcharts JS v8.0.1 (2020-03-02)
(c) 2009-2018 Torstein Honsi
License: www.highcharts.com/license
*/
(function(aa,R){"object"===typeof module&&module.exports?(R["default"]=R,module.exports=aa.document?R(aa):R):"function"===typeof define&&define.amd?define("highcharts/highcharts",function(){return R(aa)}):(aa.Highcharts&&aa.Highcharts.error(16,!0),aa.Highcharts=R(aa))})("undefined"!==typeof window?window:this,function(aa){function R(e,g,X,u){e.hasOwnProperty(g)||(e[g]=u.apply(null,X))}var p={};R(p,"parts/Globals.js",[],function(){var e="undefined"!==typeof aa?aa:"undefined"!==typeof window?window:
{},g=e.document,X=e.navigator&&e.navigator.userAgent||"",u=g&&g.createElementNS&&!!g.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,p=/(edge|msie|trident)/i.test(X)&&!e.opera,L=-1!==X.indexOf("Firefox"),E=-1!==X.indexOf("Chrome"),A=L&&4>parseInt(X.split("Firefox/")[1],10);return{product:"Highcharts",version:"8.0.1",deg2rad:2*Math.PI/360,doc:g,hasBidiBug:A,hasTouch:!!e.TouchEvent,isMS:p,isWebKit:-1!==X.indexOf("AppleWebKit"),isFirefox:L,isChrome:E,isSafari:!E&&-1!==X.indexOf("Safari"),
isTouchDevice:/(Mobile|Android|Windows Phone)/.test(X),SVG_NS:"http://www.w3.org/2000/svg",chartCount:0,seriesTypes:{},symbolSizes:{},svg:u,win:e,marginNames:["plotTop","marginRight","marginBottom","plotLeft"],noop:function(){},charts:[],dateFormats:{}}});R(p,"parts/Utilities.js",[p["parts/Globals.js"]],function(e){function g(){var b,a=arguments,q={},d=function(b,a){"object"!==typeof b&&(b={});Y(a,function(q,c){!M(q,!0)||m(q)||v(q)?b[c]=a[c]:b[c]=d(b[c]||{},q)});return b};!0===a[0]&&(q=a[1],a=Array.prototype.slice.call(a,
2));var c=a.length;for(b=0;b<c;b++)q=d(q,a[b]);return q}function X(b,a,q){var d;r(a)?c(q)?b.setAttribute(a,q):b&&b.getAttribute&&((d=b.getAttribute(a))||"class"!==a||(d=b.getAttribute(a+"Name"))):Y(a,function(a,q){b.setAttribute(q,a)});return d}function u(){for(var b=arguments,a=b.length,q=0;q<a;q++){var d=b[q];if("undefined"!==typeof d&&null!==d)return d}}function p(b,a){if(!b)return a;var q=b.split(".").reverse();if(1===q.length)return a[b];for(b=q.pop();"undefined"!==typeof b&&"undefined"!==typeof a&&
null!==a;)a=a[b],b=q.pop();return a}e.timers=[];var L=e.charts,E=e.doc,A=e.win,C=e.error=function(b,a,q,d){var c=H(b),n=c?"Highcharts error #"+b+": www.highcharts.com/errors/"+b+"/":b.toString(),x=function(){if(a)throw Error(n);A.console&&console.log(n)};if("undefined"!==typeof d){var f="";c&&(n+="?");e.objectEach(d,function(b,a){f+="\n"+a+": "+b;c&&(n+=encodeURI(a)+"="+encodeURI(b))});n+=f}q?e.fireEvent(q,"displayError",{code:b,message:n,params:d},x):x()},J=function(){function b(b,a,q){this.options=
a;this.elem=b;this.prop=q}b.prototype.dSetter=function(){var b=this.paths[0],a=this.paths[1],q=[],d=this.now,c=b.length;if(1===d)q=this.toD;else if(c===a.length&&1>d)for(;c--;){var n=parseFloat(b[c]);q[c]=isNaN(n)||"A"===a[c-4]||"A"===a[c-5]?a[c]:d*parseFloat(""+(a[c]-n))+n}else q=a;this.elem.attr("d",q,null,!0)};b.prototype.update=function(){var b=this.elem,a=this.prop,q=this.now,d=this.options.step;if(this[a+"Setter"])this[a+"Setter"]();else b.attr?b.element&&b.attr(a,q,null,!0):b.style[a]=q+this.unit;
d&&d.call(b,q,this)};b.prototype.run=function(b,a,q){var d=this,c=d.options,n=function(b){return n.stopped?!1:d.step(b)},x=A.requestAnimationFrame||function(b){setTimeout(b,13)},f=function(){for(var b=0;b<e.timers.length;b++)e.timers[b]()||e.timers.splice(b--,1);e.timers.length&&x(f)};b!==a||this.elem["forceAnimate:"+this.prop]?(this.startTime=+new Date,this.start=b,this.end=a,this.unit=q,this.now=this.start,this.pos=0,n.elem=this.elem,n.prop=this.prop,n()&&1===e.timers.push(n)&&x(f)):(delete c.curAnim[this.prop],
c.complete&&0===Object.keys(c.curAnim).length&&c.complete.call(this.elem))};b.prototype.step=function(b){var a=+new Date,q=this.options,d=this.elem,c=q.complete,n=q.duration,x=q.curAnim;if(d.attr&&!d.element)b=!1;else if(b||a>=n+this.startTime){this.now=this.end;this.pos=1;this.update();var f=x[this.prop]=!0;Y(x,function(b){!0!==b&&(f=!1)});f&&c&&c.call(d);b=!1}else this.pos=q.easing((a-this.startTime)/n),this.now=this.start+(this.end-this.start)*this.pos,this.update(),b=!0;return b};b.prototype.initPath=
function(b,a,q){function d(b){for(B=b.length;B--;){var a="M"===b[B]||"L"===b[B];var q=/[a-zA-Z]/.test(b[B+3]);a&&q&&b.splice(B+1,0,b[B+1],b[B+2],b[B+1],b[B+2])}}function c(b,a){for(;b.length<V;){b[0]=a[V-b.length];var q=b.slice(0,Q);[].splice.apply(b,[0,0].concat(q));l&&(q=b.slice(b.length-Q),[].splice.apply(b,[b.length,0].concat(q)),B--)}b[0]="M"}function n(b,a){for(var q=(V-b.length)/Q;0<q&&q--;)k=b.slice().splice(b.length/y-Q,Q*y),k[0]=a[V-Q-q*Q],G&&(k[Q-6]=k[Q-2],k[Q-5]=k[Q-1]),[].splice.apply(b,
[b.length/y,0].concat(k)),l&&q--}a=a||"";var x=b.startX,f=b.endX,G=-1<a.indexOf("C"),Q=G?7:3,k,B;a=a.split(" ");q=q.slice();var l=b.isArea,y=l?2:1;G&&(d(a),d(q));if(x&&f){for(B=0;B<x.length;B++)if(x[B]===f[0]){var h=B;break}else if(x[0]===f[f.length-x.length+B]){h=B;var t=!0;break}else if(x[x.length-1]===f[f.length-x.length+B]){h=x.length-B;break}"undefined"===typeof h&&(a=[])}if(a.length&&H(h)){var V=q.length+h*y*Q;t?(c(a,q),n(q,a)):(c(q,a),n(a,q))}return[a,q]};b.prototype.fillSetter=function(){e.Fx.prototype.strokeSetter.apply(this,
arguments)};b.prototype.strokeSetter=function(){this.elem.attr(this.prop,e.color(this.start).tweenTo(e.color(this.end),this.pos),null,!0)};return b}();e.Fx=J;e.merge=g;var z=e.pInt=function(b,a){return parseInt(b,a||10)},r=e.isString=function(b){return"string"===typeof b},D=e.isArray=function(b){b=Object.prototype.toString.call(b);return"[object Array]"===b||"[object Array Iterator]"===b},M=e.isObject=function(b,a){return!!b&&"object"===typeof b&&(!a||!D(b))},v=e.isDOMElement=function(b){return M(b)&&
"number"===typeof b.nodeType},m=e.isClass=function(b){var a=b&&b.constructor;return!(!M(b,!0)||v(b)||!a||!a.name||"Object"===a.name)},H=e.isNumber=function(b){return"number"===typeof b&&!isNaN(b)&&Infinity>b&&-Infinity<b},f=e.erase=function(b,a){for(var q=b.length;q--;)if(b[q]===a){b.splice(q,1);break}},c=e.defined=function(b){return"undefined"!==typeof b&&null!==b};e.attr=X;var l=e.splat=function(b){return D(b)?b:[b]},h=e.syncTimeout=function(b,a,q){if(0<a)return setTimeout(b,a,q);b.call(0,q);return-1},
d=e.clearTimeout=function(b){c(b)&&clearTimeout(b)},a=e.extend=function(b,a){var q;b||(b={});for(q in a)b[q]=a[q];return b};e.pick=u;var k=e.css=function(b,q){e.isMS&&!e.svg&&q&&"undefined"!==typeof q.opacity&&(q.filter="alpha(opacity="+100*q.opacity+")");a(b.style,q)},t=e.createElement=function(b,q,d,c,n){b=E.createElement(b);q&&a(b,q);n&&k(b,{padding:"0",border:"none",margin:"0"});d&&k(b,d);c&&c.appendChild(b);return b},w=e.extendClass=function(b,q){var d=function(){};d.prototype=new b;a(d.prototype,
q);return d},y=e.pad=function(b,a,q){return Array((a||2)+1-String(b).replace("-","").length).join(q||"0")+b},F=e.relativeLength=function(b,a,q){return/%$/.test(b)?a*parseFloat(b)/100+(q||0):parseFloat(b)},I=e.wrap=function(b,a,q){var d=b[a];b[a]=function(){var b=Array.prototype.slice.call(arguments),a=arguments,c=this;c.proceed=function(){d.apply(c,arguments.length?arguments:a)};b.unshift(d);b=q.apply(this,b);c.proceed=null;return b}},S=e.format=function(b,a,q){var d="{",c=!1,n=[],x=/f$/,f=/\.([0-9])/,
G=e.defaultOptions.lang,k=q&&q.time||e.time;for(q=q&&q.numberFormatter||Q;b;){var B=b.indexOf(d);if(-1===B)break;var l=b.slice(0,B);if(c){l=l.split(":");d=p(l.shift()||"",a);if(l.length&&"number"===typeof d)if(l=l.join(":"),x.test(l)){var y=parseInt((l.match(f)||["","-1"])[1],10);null!==d&&(d=q(d,y,G.decimalPoint,-1<l.indexOf(",")?G.thousandsSep:""))}else d=k.dateFormat(l,d);n.push(d)}else n.push(l);b=b.slice(B+1);d=(c=!c)?"}":"{"}n.push(b);return n.join("")},O=e.getMagnitude=function(b){return Math.pow(10,
Math.floor(Math.log(b)/Math.LN10))},N=e.normalizeTickInterval=function(b,a,q,d,c){var n=b;q=u(q,1);var x=b/q;a||(a=c?[1,1.2,1.5,2,2.5,3,4,5,6,8,10]:[1,2,2.5,5,10],!1===d&&(1===q?a=a.filter(function(b){return 0===b%1}):.1>=q&&(a=[1/q])));for(d=0;d<a.length&&!(n=a[d],c&&n*q>=b||!c&&x<=(a[d]+(a[d+1]||a[d]))/2);d++);return n=P(n*q,-Math.round(Math.log(.001)/Math.LN10))},n=e.stableSort=function(b,a){var q=b.length,d,c;for(c=0;c<q;c++)b[c].safeI=c;b.sort(function(b,q){d=a(b,q);return 0===d?b.safeI-q.safeI:
d});for(c=0;c<q;c++)delete b[c].safeI},b=e.arrayMin=function(b){for(var a=b.length,q=b[0];a--;)b[a]<q&&(q=b[a]);return q},B=e.arrayMax=function(b){for(var a=b.length,q=b[0];a--;)b[a]>q&&(q=b[a]);return q},x=e.destroyObjectProperties=function(b,a){Y(b,function(q,d){q&&q!==a&&q.destroy&&q.destroy();delete b[d]})},T=e.discardElement=function(b){var a=e.garbageBin;a||(a=t("div"));b&&a.appendChild(b);a.innerHTML=""},P=e.correctFloat=function(b,a){return parseFloat(b.toPrecision(a||14))},W=e.setAnimation=
function(b,a){a.renderer.globalAnimation=u(b,a.options.chart.animation,!0)},U=e.animObject=function(b){return M(b)?g(b):{duration:b?500:0}},q=e.timeUnits={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5,month:24192E5,year:314496E5},Q=e.numberFormat=function(b,a,q,d){b=+b||0;a=+a;var c=e.defaultOptions.lang,n=(b.toString().split(".")[1]||"").split("e")[0].length,x=b.toString().split("e");if(-1===a)a=Math.min(n,20);else if(!H(a))a=2;else if(a&&x[1]&&0>x[1]){var f=a+ +x[1];0<=f?(x[0]=
(+x[0]).toExponential(f).split("e")[0],a=f):(x[0]=x[0].split(".")[0]||0,b=20>a?(x[0]*Math.pow(10,x[1])).toFixed(a):0,x[1]=0)}var G=(Math.abs(x[1]?x[0]:b)+Math.pow(10,-Math.max(a,n)-1)).toFixed(a);n=String(z(G));f=3<n.length?n.length%3:0;q=u(q,c.decimalPoint);d=u(d,c.thousandsSep);b=(0>b?"-":"")+(f?n.substr(0,f)+d:"");b+=n.substr(f).replace(/(\d{3})(?=\d)/g,"$1"+d);a&&(b+=q+G.slice(-a));x[1]&&0!==+b&&(b+="e"+x[1]);return b};Math.easeInOutSine=function(b){return-.5*(Math.cos(Math.PI*b)-1)};var Z=e.getStyle=
function(b,a,q){if("width"===a)return a=Math.min(b.offsetWidth,b.scrollWidth),q=b.getBoundingClientRect&&b.getBoundingClientRect().width,q<a&&q>=a-1&&(a=Math.floor(q)),Math.max(0,a-e.getStyle(b,"padding-left")-e.getStyle(b,"padding-right"));if("height"===a)return Math.max(0,Math.min(b.offsetHeight,b.scrollHeight)-e.getStyle(b,"padding-top")-e.getStyle(b,"padding-bottom"));A.getComputedStyle||C(27,!0);if(b=A.getComputedStyle(b,void 0))b=b.getPropertyValue(a),u(q,"opacity"!==a)&&(b=z(b));return b},
ca=e.inArray=function(b,a,q){return a.indexOf(b,q)},G=e.find=Array.prototype.find?function(b,a){return b.find(a)}:function(b,a){var q,d=b.length;for(q=0;q<d;q++)if(a(b[q],q))return b[q]};e.keys=Object.keys;var V=e.offset=function(b){var a=E.documentElement;b=b.parentElement||b.parentNode?b.getBoundingClientRect():{top:0,left:0};return{top:b.top+(A.pageYOffset||a.scrollTop)-(a.clientTop||0),left:b.left+(A.pageXOffset||a.scrollLeft)-(a.clientLeft||0)}},ba=e.stop=function(b,a){for(var q=e.timers.length;q--;)e.timers[q].elem!==
b||a&&a!==e.timers[q].prop||(e.timers[q].stopped=!0)},Y=e.objectEach=function(b,a,q){for(var d in b)Object.hasOwnProperty.call(b,d)&&a.call(q||b[d],b[d],d,b)};Y({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(b,a){e[a]=function(a){return Array.prototype[b].apply(a,[].slice.call(arguments,1))}});var fa=e.addEvent=function(b,a,q,d){void 0===d&&(d={});var c=b.addEventListener||e.addEventListenerPolyfill;var n="function"===typeof b&&b.prototype?b.prototype.protoEvents=b.prototype.protoEvents||
{}:b.hcEvents=b.hcEvents||{};e.Point&&b instanceof e.Point&&b.series&&b.series.chart&&(b.series.chart.runTrackerClick=!0);c&&c.call(b,a,q,!1);n[a]||(n[a]=[]);n[a].push({fn:q,order:"number"===typeof d.order?d.order:Infinity});n[a].sort(function(b,a){return b.order-a.order});return function(){da(b,a,q)}},da=e.removeEvent=function(b,a,q){function d(a,q){var d=b.removeEventListener||e.removeEventListenerPolyfill;d&&d.call(b,a,q,!1)}function c(q){var c;if(b.nodeName){if(a){var n={};n[a]=!0}else n=q;Y(n,
function(b,a){if(q[a])for(c=q[a].length;c--;)d(a,q[a][c].fn)})}}var n;["protoEvents","hcEvents"].forEach(function(x,f){var G=(f=f?b:b.prototype)&&f[x];G&&(a?(n=G[a]||[],q?(G[a]=n.filter(function(b){return q!==b.fn}),d(a,q)):(c(G),G[a]=[])):(c(G),f[x]={}))})},ha=e.fireEvent=function(b,q,d,c){var n;d=d||{};if(E.createEvent&&(b.dispatchEvent||b.fireEvent)){var x=E.createEvent("Events");x.initEvent(q,!0,!0);a(x,d);b.dispatchEvent?b.dispatchEvent(x):b.fireEvent(q,x)}else d.target||a(d,{preventDefault:function(){d.defaultPrevented=
!0},target:b,type:q}),function(a,q){void 0===a&&(a=[]);void 0===q&&(q=[]);var c=0,x=0,f=a.length+q.length;for(n=0;n<f;n++)!1===(a[c]?q[x]?a[c].order<=q[x].order?a[c++]:q[x++]:a[c++]:q[x++]).fn.call(b,d)&&d.preventDefault()}(b.protoEvents&&b.protoEvents[q],b.hcEvents&&b.hcEvents[q]);c&&!d.defaultPrevented&&c.call(b,d)},ia=e.animate=function(b,a,q){var d,c="",n,x;if(!M(q)){var f=arguments;q={duration:f[2],easing:f[3],complete:f[4]}}H(q.duration)||(q.duration=400);q.easing="function"===typeof q.easing?
q.easing:Math[q.easing]||Math.easeInOutSine;q.curAnim=g(a);Y(a,function(f,G){ba(b,G);x=new J(b,q,G);n=null;"d"===G?(x.paths=x.initPath(b,b.d,a.d),x.toD=a.d,d=0,n=1):b.attr?d=b.attr(G):(d=parseFloat(Z(b,G))||0,"opacity"!==G&&(c="px"));n||(n=f);n&&n.match&&n.match("px")&&(n=n.replace(/px/g,""));x.run(d,n,c)})},ja=e.seriesType=function(b,a,q,d,c){var n=e.getOptions(),x=e.seriesTypes;n.plotOptions[b]=g(n.plotOptions[a],q);x[b]=w(x[a]||function(){},d);x[b].prototype.type=b;c&&(x[b].prototype.pointClass=
w(e.Point,c));return x[b]},ea=e.uniqueKey=function(){var b=Math.random().toString(36).substring(2,9),a=0;return function(){return"highcharts-"+b+"-"+a++}}(),ka=e.isFunction=function(b){return"function"===typeof b};A.jQuery&&(A.jQuery.fn.highcharts=function(){var b=[].slice.call(arguments);if(this[0])return b[0]?(new (e[r(b[0])?b.shift():"Chart"])(this[0],b[0],b[1]),this):L[X(this[0],"data-highcharts-chart")]});return{Fx:J,addEvent:fa,animate:ia,animObject:U,arrayMax:B,arrayMin:b,attr:X,clamp:function(b,
a,q){return b>a?b<q?b:q:a},clearTimeout:d,correctFloat:P,createElement:t,css:k,defined:c,destroyObjectProperties:x,discardElement:T,erase:f,error:C,extend:a,extendClass:w,find:G,fireEvent:ha,format:S,getMagnitude:O,getNestedProperty:p,getStyle:Z,inArray:ca,isArray:D,isClass:m,isDOMElement:v,isFunction:ka,isNumber:H,isObject:M,isString:r,merge:g,normalizeTickInterval:N,numberFormat:Q,objectEach:Y,offset:V,pad:y,pick:u,pInt:z,relativeLength:F,removeEvent:da,seriesType:ja,setAnimation:W,splat:l,stableSort:n,
stop:ba,syncTimeout:h,timeUnits:q,uniqueKey:ea,wrap:I}});R(p,"parts/Color.js",[p["parts/Globals.js"],p["parts/Utilities.js"]],function(e,g){var X=g.isNumber,u=g.merge,p=g.pInt;g=function(){function e(e){this.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(e){return[p(e[1]),p(e[2]),p(e[3]),parseFloat(e[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(e){return[p(e[1]),p(e[2]),
p(e[3]),1]}}];this.rgba=[];this.init(e)}e.parse=function(g){return new e(g)};e.prototype.init=function(g){var A,C;if((this.input=g=e.names[g&&g.toLowerCase?g.toLowerCase():""]||g)&&g.stops)this.stops=g.stops.map(function(r){return new e(r[1])});else{if(g&&g.charAt&&"#"===g.charAt()){var u=g.length;g=parseInt(g.substr(1),16);7===u?A=[(g&16711680)>>16,(g&65280)>>8,g&255,1]:4===u&&(A=[(g&3840)>>4|(g&3840)>>8,(g&240)>>4|g&240,(g&15)<<4|g&15,1])}if(!A)for(C=this.parsers.length;C--&&!A;){var z=this.parsers[C];
(u=z.regex.exec(g))&&(A=z.parse(u))}}this.rgba=A||[]};e.prototype.get=function(e){var g=this.input,C=this.rgba;if("undefined"!==typeof this.stops){var E=u(g);E.stops=[].concat(E.stops);this.stops.forEach(function(g,r){E.stops[r]=[E.stops[r][0],g.get(e)]})}else E=C&&X(C[0])?"rgb"===e||!e&&1===C[3]?"rgb("+C[0]+","+C[1]+","+C[2]+")":"a"===e?C[3]:"rgba("+C.join(",")+")":g;return E};e.prototype.brighten=function(e){var g,u=this.rgba;if(this.stops)this.stops.forEach(function(g){g.brighten(e)});else if(X(e)&&
0!==e)for(g=0;3>g;g++)u[g]+=p(255*e),0>u[g]&&(u[g]=0),255<u[g]&&(u[g]=255);return this};e.prototype.setOpacity=function(e){this.rgba[3]=e;return this};e.prototype.tweenTo=function(e,g){var u=this.rgba,A=e.rgba;A.length&&u&&u.length?(e=1!==A[3]||1!==u[3],g=(e?"rgba(":"rgb(")+Math.round(A[0]+(u[0]-A[0])*(1-g))+","+Math.round(A[1]+(u[1]-A[1])*(1-g))+","+Math.round(A[2]+(u[2]-A[2])*(1-g))+(e?","+(A[3]+(u[3]-A[3])*(1-g)):"")+")"):g=e.input||"none";return g};e.names={white:"#ffffff",black:"#000000"};return e}();
e.Color=g;e.color=g.parse;return e.Color});R(p,"parts/SvgRenderer.js",[p["parts/Globals.js"],p["parts/Color.js"],p["parts/Utilities.js"]],function(e,g,p){var u=g.parse,K=p.addEvent,L=p.animate,E=p.animObject,A=p.attr,C=p.createElement,J=p.css,z=p.defined,r=p.destroyObjectProperties,D=p.erase,M=p.extend,v=p.inArray,m=p.isArray,H=p.isNumber,f=p.isObject,c=p.isString,l=p.merge,h=p.objectEach,d=p.pick,a=p.pInt,k=p.removeEvent,t=p.splat,w=p.stop,y=p.uniqueKey,F=e.charts,I=e.deg2rad,S=e.doc,O=e.hasTouch,
N=e.isFirefox,n=e.isMS,b=e.isWebKit,B=e.noop,x=e.svg,T=e.SVG_NS,P=e.symbolSizes,W=e.win;var U=e.SVGElement=function(){return this};M(U.prototype,{opacity:1,SVG_NS:T,textProps:"direction fontSize fontWeight fontFamily fontStyle color lineHeight width textAlign textDecoration textOverflow textOutline cursor".split(" "),init:function(b,a){this.element="span"===a?C(a):S.createElementNS(this.SVG_NS,a);this.renderer=b;e.fireEvent(this,"afterInit")},animate:function(b,a,c){var q=E(d(a,this.renderer.globalAnimation,
!0));d(S.hidden,S.msHidden,S.webkitHidden,!1)&&(q.duration=0);0!==q.duration?(c&&(q.complete=c),L(this,b,q)):(this.attr(b,void 0,c),h(b,function(b,a){q.step&&q.step.call(this,b,{prop:a,pos:1})},this));return this},complexColor:function(b,a,d){var q=this.renderer,c,n,x,f,k,Q,B,t,w,P,Z,T=[],v;e.fireEvent(this.renderer,"complexColor",{args:arguments},function(){b.radialGradient?n="radialGradient":b.linearGradient&&(n="linearGradient");n&&(x=b[n],k=q.gradients,B=b.stops,P=d.radialReference,m(x)&&(b[n]=
x={x1:x[0],y1:x[1],x2:x[2],y2:x[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===n&&P&&!z(x.gradientUnits)&&(f=x,x=l(x,q.getRadialAttr(P,f),{gradientUnits:"userSpaceOnUse"})),h(x,function(b,a){"id"!==a&&T.push(a,b)}),h(B,function(b){T.push(b)}),T=T.join(","),k[T]?Z=k[T].attr("id"):(x.id=Z=y(),k[T]=Q=q.createElement(n).attr(x).add(q.defs),Q.radAttr=f,Q.stops=[],B.forEach(function(b){0===b[1].indexOf("rgba")?(c=u(b[1]),t=c.get("rgb"),w=c.get("a")):(t=b[1],w=1);b=q.createElement("stop").attr({offset:b[0],
"stop-color":t,"stop-opacity":w}).add(Q);Q.stops.push(b)})),v="url("+q.url+"#"+Z+")",d.setAttribute(a,v),d.gradient=T,b.toString=function(){return v})})},applyTextOutline:function(b){var a=this.element,q;-1!==b.indexOf("contrast")&&(b=b.replace(/contrast/g,this.renderer.getContrast(a.style.fill)));b=b.split(" ");var d=b[b.length-1];if((q=b[0])&&"none"!==q&&e.svg){this.fakeTS=!0;b=[].slice.call(a.getElementsByTagName("tspan"));this.ySetter=this.xSetter;q=q.replace(/(^[\d\.]+)(.*?)$/g,function(b,a,
q){return 2*a+q});this.removeTextOutline(b);var c=a.textContent?/^[\u0591-\u065F\u066A-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC]/.test(a.textContent):!1;var n=a.firstChild;b.forEach(function(b,x){0===x&&(b.setAttribute("x",a.getAttribute("x")),x=a.getAttribute("y"),b.setAttribute("y",x||0),null===x&&a.setAttribute("y",0));x=b.cloneNode(!0);A(c&&!N?b:x,{"class":"highcharts-text-outline",fill:d,stroke:d,"stroke-width":q,"stroke-linejoin":"round"});a.insertBefore(x,n)});c&&N&&b[0]&&(b=b[0].cloneNode(!0),b.textContent=
" ",a.insertBefore(b,n))}},removeTextOutline:function(b){for(var a=b.length,q;a--;)q=b[a],"highcharts-text-outline"===q.getAttribute("class")&&D(b,this.element.removeChild(q))},symbolCustomAttribs:"x y width height r start end innerR anchorX anchorY rounded".split(" "),attr:function(b,a,d,c){var q=this.element,n,x=this,f,k,B=this.symbolCustomAttribs;if("string"===typeof b&&"undefined"!==typeof a){var Q=b;b={};b[Q]=a}"string"===typeof b?x=(this[b+"Getter"]||this._defaultGetter).call(this,b,q):(h(b,
function(a,d){f=!1;c||w(this,d);this.symbolName&&-1!==v(d,B)&&(n||(this.symbolAttr(b),n=!0),f=!0);!this.rotation||"x"!==d&&"y"!==d||(this.doTransform=!0);f||(k=this[d+"Setter"]||this._defaultSetter,k.call(this,a,d,q),!this.styledMode&&this.shadows&&/^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(d)&&this.updateShadows(d,a,k))},this),this.afterSetters());d&&d.call(this);return x},afterSetters:function(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)},updateShadows:function(b,
a,d){for(var q=this.shadows,c=q.length;c--;)d.call(q[c],"height"===b?Math.max(a-(q[c].cutHeight||0),0):"d"===b?this.d:a,b,q[c])},addClass:function(b,a){var q=a?"":this.attr("class")||"";b=(b||"").split(/ /g).reduce(function(b,a){-1===q.indexOf(a)&&b.push(a);return b},q?[q]:[]).join(" ");b!==q&&this.attr("class",b);return this},hasClass:function(b){return-1!==(this.attr("class")||"").split(" ").indexOf(b)},removeClass:function(b){return this.attr("class",(this.attr("class")||"").replace(c(b)?new RegExp(" ?"+
b+" ?"):b,""))},symbolAttr:function(b){var a=this;"x y r start end width height innerR anchorX anchorY clockwise".split(" ").forEach(function(q){a[q]=d(b[q],a[q])});a.attr({d:a.renderer.symbols[a.symbolName](a.x,a.y,a.width,a.height,a)})},clip:function(b){return this.attr("clip-path",b?"url("+this.renderer.url+"#"+b.id+")":"none")},crisp:function(b,a){a=a||b.strokeWidth||0;var q=Math.round(a)%2/2;b.x=Math.floor(b.x||this.x||0)+q;b.y=Math.floor(b.y||this.y||0)+q;b.width=Math.floor((b.width||this.width||
0)-2*q);b.height=Math.floor((b.height||this.height||0)-2*q);z(b.strokeWidth)&&(b.strokeWidth=a);return b},css:function(b){var q=this.styles,d={},c=this.element,n="",f=!q,k=["textOutline","textOverflow","width"];b&&b.color&&(b.fill=b.color);q&&h(b,function(b,a){b!==q[a]&&(d[a]=b,f=!0)});if(f){q&&(b=M(q,d));if(b)if(null===b.width||"auto"===b.width)delete this.textWidth;else if("text"===c.nodeName.toLowerCase()&&b.width)var B=this.textWidth=a(b.width);this.styles=b;B&&!x&&this.renderer.forExport&&delete b.width;
if(c.namespaceURI===this.SVG_NS){var l=function(b,a){return"-"+a.toLowerCase()};h(b,function(b,a){-1===k.indexOf(a)&&(n+=a.replace(/([A-Z])/g,l)+":"+b+";")});n&&A(c,"style",n)}else J(c,b);this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),b&&b.textOutline&&this.applyTextOutline(b.textOutline))}return this},getStyle:function(b){return W.getComputedStyle(this.element||this,"").getPropertyValue(b)},strokeWidth:function(){if(!this.renderer.styledMode)return this["stroke-width"]||
0;var b=this.getStyle("stroke-width"),d=0;if(b.indexOf("px")===b.length-2)d=a(b);else if(""!==b){var c=S.createElementNS(T,"rect");A(c,{width:b,"stroke-width":0});this.element.parentNode.appendChild(c);d=c.getBBox().width;c.parentNode.removeChild(c)}return d},on:function(b,a){var q=this,d=q.element;O&&"click"===b?(d.ontouchstart=function(b){q.touchEventFired=Date.now();b.preventDefault();a.call(d,b)},d.onclick=function(b){(-1===W.navigator.userAgent.indexOf("Android")||1100<Date.now()-(q.touchEventFired||
0))&&a.call(d,b)}):d["on"+b]=a;return this},setRadialReference:function(b){var a=this.renderer.gradients[this.element.gradient];this.element.radialReference=b;a&&a.radAttr&&a.animate(this.renderer.getRadialAttr(b,a.radAttr));return this},translate:function(b,a){return this.attr({translateX:b,translateY:a})},invert:function(b){this.inverted=b;this.updateTransform();return this},updateTransform:function(){var b=this.translateX||0,a=this.translateY||0,c=this.scaleX,n=this.scaleY,x=this.inverted,f=this.rotation,
k=this.matrix,B=this.element;x&&(b+=this.width,a+=this.height);b=["translate("+b+","+a+")"];z(k)&&b.push("matrix("+k.join(",")+")");x?b.push("rotate(90) scale(-1,1)"):f&&b.push("rotate("+f+" "+d(this.rotationOriginX,B.getAttribute("x"),0)+" "+d(this.rotationOriginY,B.getAttribute("y")||0)+")");(z(c)||z(n))&&b.push("scale("+d(c,1)+" "+d(n,1)+")");b.length&&B.setAttribute("transform",b.join(" "))},toFront:function(){var b=this.element;b.parentNode.appendChild(b);return this},align:function(b,a,n){var q,
x={};var f=this.renderer;var k=f.alignedObjects;var B,Q;if(b){if(this.alignOptions=b,this.alignByTranslate=a,!n||c(n))this.alignTo=q=n||"renderer",D(k,this),k.push(this),n=null}else b=this.alignOptions,a=this.alignByTranslate,q=this.alignTo;n=d(n,f[q],f);q=b.align;f=b.verticalAlign;k=(n.x||0)+(b.x||0);var l=(n.y||0)+(b.y||0);"right"===q?B=1:"center"===q&&(B=2);B&&(k+=(n.width-(b.width||0))/B);x[a?"translateX":"x"]=Math.round(k);"bottom"===f?Q=1:"middle"===f&&(Q=2);Q&&(l+=(n.height-(b.height||0))/
Q);x[a?"translateY":"y"]=Math.round(l);this[this.placed?"animate":"attr"](x);this.placed=!0;this.alignAttr=x;return this},getBBox:function(b,a){var q,c=this.renderer,n=this.element,x=this.styles,f=this.textStr,k,B=c.cache,l=c.cacheKeys,Q=n.namespaceURI===this.SVG_NS;a=d(a,this.rotation,0);var y=c.styledMode?n&&U.prototype.getStyle.call(n,"font-size"):x&&x.fontSize;if(z(f)){var h=f.toString();-1===h.indexOf("<")&&(h=h.replace(/[0-9]/g,"0"));h+=["",a,y,this.textWidth,x&&x.textOverflow].join()}h&&!b&&
(q=B[h]);if(!q){if(Q||c.forExport){try{(k=this.fakeTS&&function(b){[].forEach.call(n.querySelectorAll(".highcharts-text-outline"),function(a){a.style.display=b})})&&k("none"),q=n.getBBox?M({},n.getBBox()):{width:n.offsetWidth,height:n.offsetHeight},k&&k("")}catch(ea){""}if(!q||0>q.width)q={width:0,height:0}}else q=this.htmlGetBBox();c.isSVG&&(b=q.width,c=q.height,Q&&(q.height=c={"11px,17":14,"13px,20":16}[x&&x.fontSize+","+Math.round(c)]||c),a&&(x=a*I,q.width=Math.abs(c*Math.sin(x))+Math.abs(b*Math.cos(x)),
q.height=Math.abs(c*Math.cos(x))+Math.abs(b*Math.sin(x))));if(h&&0<q.height){for(;250<l.length;)delete B[l.shift()];B[h]||l.push(h);B[h]=q}}return q},show:function(b){return this.attr({visibility:b?"inherit":"visible"})},hide:function(b){b?this.attr({y:-9999}):this.attr({visibility:"hidden"});return this},fadeOut:function(b){var a=this;a.animate({opacity:0},{duration:b||150,complete:function(){a.attr({y:-9999})}})},add:function(b){var a=this.renderer,q=this.element;b&&(this.parentGroup=b);this.parentInverted=
b&&b.inverted;"undefined"!==typeof this.textStr&&a.buildText(this);this.added=!0;if(!b||b.handleZ||this.zIndex)var d=this.zIndexSetter();d||(b?b.element:a.box).appendChild(q);if(this.onAdd)this.onAdd();return this},safeRemoveChild:function(b){var a=b.parentNode;a&&a.removeChild(b)},destroy:function(){var b=this,a=b.element||{},d=b.renderer,c=d.isSVG&&"SPAN"===a.nodeName&&b.parentGroup,n=a.ownerSVGElement,x=b.clipPath;a.onclick=a.onmouseout=a.onmouseover=a.onmousemove=a.point=null;w(b);x&&n&&([].forEach.call(n.querySelectorAll("[clip-path],[CLIP-PATH]"),
function(b){-1<b.getAttribute("clip-path").indexOf(x.element.id)&&b.removeAttribute("clip-path")}),b.clipPath=x.destroy());if(b.stops){for(n=0;n<b.stops.length;n++)b.stops[n]=b.stops[n].destroy();b.stops=null}b.safeRemoveChild(a);for(d.styledMode||b.destroyShadows();c&&c.div&&0===c.div.childNodes.length;)a=c.parentGroup,b.safeRemoveChild(c.div),delete c.div,c=a;b.alignTo&&D(d.alignedObjects,b);h(b,function(a,d){b[d]&&b[d].parentGroup===b&&b[d].destroy&&b[d].destroy();delete b[d]})},shadow:function(b,
a,c){var q=[],n,x=this.element;if(!b)this.destroyShadows();else if(!this.shadows){var f=d(b.width,3);var k=(b.opacity||.15)/f;var B=this.parentInverted?"(-1,-1)":"("+d(b.offsetX,1)+", "+d(b.offsetY,1)+")";for(n=1;n<=f;n++){var l=x.cloneNode(0);var h=2*f+1-2*n;A(l,{stroke:b.color||"#000000","stroke-opacity":k*n,"stroke-width":h,transform:"translate"+B,fill:"none"});l.setAttribute("class",(l.getAttribute("class")||"")+" highcharts-shadow");c&&(A(l,"height",Math.max(A(l,"height")-h,0)),l.cutHeight=h);
a?a.element.appendChild(l):x.parentNode&&x.parentNode.insertBefore(l,x);q.push(l)}this.shadows=q}return this},destroyShadows:function(){(this.shadows||[]).forEach(function(b){this.safeRemoveChild(b)},this);this.shadows=void 0},xGetter:function(b){"circle"===this.element.nodeName&&("x"===b?b="cx":"y"===b&&(b="cy"));return this._defaultGetter(b)},_defaultGetter:function(b){b=d(this[b+"Value"],this[b],this.element?this.element.getAttribute(b):null,0);/^[\-0-9\.]+$/.test(b)&&(b=parseFloat(b));return b},
dSetter:function(b,a,d){b&&b.join&&(b=b.join(" "));/(NaN| {2}|^$)/.test(b)&&(b="M 0 0");this[a]!==b&&(d.setAttribute(a,b),this[a]=b)},dashstyleSetter:function(b){var d,q=this["stroke-width"];"inherit"===q&&(q=1);if(b=b&&b.toLowerCase()){b=b.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(d=b.length;d--;)b[d]=a(b[d])*
q;b=b.join(",").replace(/NaN/g,"none");this.element.setAttribute("stroke-dasharray",b)}},alignSetter:function(b){var a={left:"start",center:"middle",right:"end"};a[b]&&(this.alignValue=b,this.element.setAttribute("text-anchor",a[b]))},opacitySetter:function(b,a,d){this[a]=b;d.setAttribute(a,b)},titleSetter:function(b){var a=this.element.getElementsByTagName("title")[0];a||(a=S.createElementNS(this.SVG_NS,"title"),this.element.appendChild(a));a.firstChild&&a.removeChild(a.firstChild);a.appendChild(S.createTextNode(String(d(b,
"")).replace(/<[^>]*>/g,"").replace(/</g,"<").replace(/>/g,">")))},textSetter:function(b){b!==this.textStr&&(delete this.bBox,delete this.textPxLength,this.textStr=b,this.added&&this.renderer.buildText(this))},setTextPath:function(b,a){var d=this.element,q={textAnchor:"text-anchor"},c=!1,n=this.textPathWrapper,x=!n;a=l(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},a);var f=a.attributes;if(b&&a&&a.enabled){n&&null===n.element.parentNode?(x=!0,n=n.destroy()):n&&this.removeTextOutline.call(n.parentGroup,
[].slice.call(d.getElementsByTagName("tspan")));this.options&&this.options.padding&&(f.dx=-this.options.padding);n||(this.textPathWrapper=n=this.renderer.createElement("textPath"),c=!0);var k=n.element;(a=b.element.getAttribute("id"))||b.element.setAttribute("id",a=y());if(x)for(b=d.getElementsByTagName("tspan");b.length;)b[0].setAttribute("y",0),H(f.dx)&&b[0].setAttribute("x",-f.dx),k.appendChild(b[0]);c&&n.add({element:this.text?this.text.element:d});k.setAttributeNS("http://www.w3.org/1999/xlink",
"href",this.renderer.url+"#"+a);z(f.dy)&&(k.parentNode.setAttribute("dy",f.dy),delete f.dy);z(f.dx)&&(k.parentNode.setAttribute("dx",f.dx),delete f.dx);h(f,function(b,a){k.setAttribute(q[a]||a,b)});d.removeAttribute("transform");this.removeTextOutline.call(n,[].slice.call(d.getElementsByTagName("tspan")));this.text&&!this.renderer.styledMode&&this.attr({fill:"none","stroke-width":0});this.applyTextOutline=this.updateTransform=B}else n&&(delete this.updateTransform,delete this.applyTextOutline,this.destroyTextPath(d,
b),this.updateTransform(),this.options.rotation&&this.applyTextOutline(this.options.style.textOutline));return this},destroyTextPath:function(b,a){var d=b.getElementsByTagName("text")[0];if(d){if(d.removeAttribute("dx"),d.removeAttribute("dy"),a.element.setAttribute("id",""),d.getElementsByTagName("textPath").length){for(b=this.textPathWrapper.element.childNodes;b.length;)d.appendChild(b[0]);d.removeChild(this.textPathWrapper.element)}}else if(b.getAttribute("dx")||b.getAttribute("dy"))b.removeAttribute("dx"),
b.removeAttribute("dy");this.textPathWrapper=this.textPathWrapper.destroy()},fillSetter:function(b,a,d){"string"===typeof b?d.setAttribute(a,b):b&&this.complexColor(b,a,d)},visibilitySetter:function(b,a,d){"inherit"===b?d.removeAttribute(a):this[a]!==b&&d.setAttribute(a,b);this[a]=b},zIndexSetter:function(b,d){var c=this.renderer,q=this.parentGroup,n=(q||c).element||c.box,x=this.element,f=!1;c=n===c.box;var k=this.added;var B;z(b)?(x.setAttribute("data-z-index",b),b=+b,this[d]===b&&(k=!1)):z(this[d])&&
x.removeAttribute("data-z-index");this[d]=b;if(k){(b=this.zIndex)&&q&&(q.handleZ=!0);d=n.childNodes;for(B=d.length-1;0<=B&&!f;B--){q=d[B];k=q.getAttribute("data-z-index");var l=!z(k);if(q!==x)if(0>b&&l&&!c&&!B)n.insertBefore(x,d[B]),f=!0;else if(a(k)<=b||l&&(!z(b)||0<=b))n.insertBefore(x,d[B+1]||null),f=!0}f||(n.insertBefore(x,d[c?3:0]||null),f=!0)}return f},_defaultSetter:function(b,a,d){d.setAttribute(a,b)}});U.prototype.yGetter=U.prototype.xGetter;U.prototype.translateXSetter=U.prototype.translateYSetter=
U.prototype.rotationSetter=U.prototype.verticalAlignSetter=U.prototype.rotationOriginXSetter=U.prototype.rotationOriginYSetter=U.prototype.scaleXSetter=U.prototype.scaleYSetter=U.prototype.matrixSetter=function(b,a){this[a]=b;this.doTransform=!0};U.prototype["stroke-widthSetter"]=U.prototype.strokeSetter=function(b,a,d){this[a]=b;this.stroke&&this["stroke-width"]?(U.prototype.fillSetter.call(this,this.stroke,"stroke",d),d.setAttribute("stroke-width",this["stroke-width"]),this.hasStroke=!0):"stroke-width"===
a&&0===b&&this.hasStroke?(d.removeAttribute("stroke"),this.hasStroke=!1):this.renderer.styledMode&&this["stroke-width"]&&(d.setAttribute("stroke-width",this["stroke-width"]),this.hasStroke=!0)};g=e.SVGRenderer=function(){this.init.apply(this,arguments)};M(g.prototype,{Element:U,SVG_NS:T,init:function(a,d,c,n,x,f,k){var q=this.createElement("svg").attr({version:"1.1","class":"highcharts-root"});k||q.css(this.getStyle(n));n=q.element;a.appendChild(n);A(a,"dir","ltr");-1===a.innerHTML.indexOf("xmlns")&&
A(n,"xmlns",this.SVG_NS);this.isSVG=!0;this.box=n;this.boxWrapper=q;this.alignedObjects=[];this.url=(N||b)&&S.getElementsByTagName("base").length?W.location.href.split("#")[0].replace(/<[^>]*>/g,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"";this.createElement("desc").add().element.appendChild(S.createTextNode("Created with Highcharts 8.0.1"));this.defs=this.createElement("defs").add();this.allowHTML=f;this.forExport=x;this.styledMode=k;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=
0;this.setSize(d,c,!1);var B;N&&a.getBoundingClientRect&&(d=function(){J(a,{left:0,top:0});B=a.getBoundingClientRect();J(a,{left:Math.ceil(B.left)-B.left+"px",top:Math.ceil(B.top)-B.top+"px"})},d(),this.unSubPixelFix=K(W,"resize",d))},definition:function(b){function a(b,c){var n;t(b).forEach(function(b){var q=d.createElement(b.tagName),x={};h(b,function(b,a){"tagName"!==a&&"children"!==a&&"textContent"!==a&&(x[a]=b)});q.attr(x);q.add(c||d.defs);b.textContent&&q.element.appendChild(S.createTextNode(b.textContent));
a(b.children||[],q);n=q});return n}var d=this;return a(b)},getStyle:function(b){return this.style=M({fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif',fontSize:"12px"},b)},setStyle:function(b){this.boxWrapper.css(this.getStyle(b))},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var b=this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();r(this.gradients||{});this.gradients=null;b&&(this.defs=b.destroy());this.unSubPixelFix&&
this.unSubPixelFix();return this.alignedObjects=null},createElement:function(b){var a=new this.Element;a.init(this,b);return a},draw:B,getRadialAttr:function(b,a){return{cx:b[0]-b[2]/2+a.cx*b[2],cy:b[1]-b[2]/2+a.cy*b[2],r:a.r*b[2]}},truncate:function(b,a,d,c,n,x,f){var q=this,k=b.rotation,B,l=c?1:0,G=(d||c).length,h=G,y=[],t=function(b){a.firstChild&&a.removeChild(a.firstChild);b&&a.appendChild(S.createTextNode(b))},w=function(x,k){k=k||x;if("undefined"===typeof y[k])if(a.getSubStringLength)try{y[k]=
n+a.getSubStringLength(0,c?k+1:k)}catch(la){""}else q.getSpanWidth&&(t(f(d||c,x)),y[k]=n+q.getSpanWidth(b,a));return y[k]},P;b.rotation=0;var Q=w(a.textContent.length);if(P=n+Q>x){for(;l<=G;)h=Math.ceil((l+G)/2),c&&(B=f(c,h)),Q=w(h,B&&B.length-1),l===G?l=G+1:Q>x?G=h-1:l=h;0===G?t(""):d&&G===d.length-1||t(B||f(d||c,h))}c&&c.splice(0,h);b.actualWidth=Q;b.rotation=k;return P},escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},buildText:function(b){var c=b.element,n=this,q=n.forExport,
f=d(b.textStr,"").toString(),k=-1!==f.indexOf("<"),B=c.childNodes,l,y=A(c,"x"),t=b.styles,w=b.textWidth,P=t&&t.lineHeight,m=t&&t.textOutline,v=t&&"ellipsis"===t.textOverflow,e=t&&"nowrap"===t.whiteSpace,F=t&&t.fontSize,W,I=B.length;t=w&&!b.added&&this.box;var H=function(b){var d;n.styledMode||(d=/(px|em)$/.test(b&&b.style.fontSize)?b.style.fontSize:F||n.style.fontSize||12);return P?a(P):n.fontMetrics(d,b.getAttribute("style")?b:c).h},r=function(b,a){h(n.escapes,function(d,c){a&&-1!==a.indexOf(d)||
(b=b.toString().replace(new RegExp(d,"g"),c))});return b},U=function(b,a){var d=b.indexOf("<");b=b.substring(d,b.indexOf(">")-d);d=b.indexOf(a+"=");if(-1!==d&&(d=d+a.length+1,a=b.charAt(d),'"'===a||"'"===a))return b=b.substring(d+1),b.substring(0,b.indexOf(a))},g=/<br.*?>/g;var N=[f,v,e,P,m,F,w].join();if(N!==b.textCache){for(b.textCache=N;I--;)c.removeChild(B[I]);k||m||v||w||-1!==f.indexOf(" ")&&(!e||g.test(f))?(t&&t.appendChild(c),k?(f=n.styledMode?f.replace(/<(b|strong)>/g,'<span class="highcharts-strong">').replace(/<(i|em)>/g,
'<span class="highcharts-emphasized">'):f.replace(/<(b|strong)>/g,'<span style="font-weight:bold">').replace(/<(i|em)>/g,'<span style="font-style:italic">'),f=f.replace(/<a/g,"<span").replace(/<\/(b|strong|i|em|a)>/g,"</span>").split(g)):f=[f],f=f.filter(function(b){return""!==b}),f.forEach(function(a,d){var f=0,k=0;a=a.replace(/^\s+|\s+$/g,"").replace(/<span/g,"|||<span").replace(/<\/span>/g,"</span>|||");var B=a.split("|||");B.forEach(function(a){if(""!==a||1===B.length){var G={},h=S.createElementNS(n.SVG_NS,
"tspan"),t,P;(t=U(a,"class"))&&A(h,"class",t);if(t=U(a,"style"))t=t.replace(/(;| |^)color([ :])/,"$1fill$2"),A(h,"style",t);(P=U(a,"href"))&&!q&&(A(h,"onclick",'location.href="'+P+'"'),A(h,"class","highcharts-anchor"),n.styledMode||J(h,{cursor:"pointer"}));a=r(a.replace(/<[a-zA-Z\/](.|\n)*?>/g,"")||" ");if(" "!==a){h.appendChild(S.createTextNode(a));f?G.dx=0:d&&null!==y&&(G.x=y);A(h,G);c.appendChild(h);!f&&W&&(!x&&q&&J(h,{display:"block"}),A(h,"dy",H(h)));if(w){var Q=a.replace(/([^\^])-/g,"$1- ").split(" ");
G=!e&&(1<B.length||d||1<Q.length);P=0;var m=H(h);if(v)l=n.truncate(b,h,a,void 0,0,Math.max(0,w-parseInt(F||12,10)),function(b,a){return b.substring(0,a)+"\u2026"});else if(G)for(;Q.length;)Q.length&&!e&&0<P&&(h=S.createElementNS(T,"tspan"),A(h,{dy:m,x:y}),t&&A(h,"style",t),h.appendChild(S.createTextNode(Q.join(" ").replace(/- /g,"-"))),c.appendChild(h)),n.truncate(b,h,null,Q,0===P?k:0,w,function(b,a){return Q.slice(0,a).join(" ").replace(/- /g,"-")}),k=b.actualWidth,P++}f++}}});W=W||c.childNodes.length}),
v&&l&&b.attr("title",r(b.textStr,["<",">"])),t&&t.removeChild(c),m&&b.applyTextOutline&&b.applyTextOutline(m)):c.appendChild(S.createTextNode(r(f)))}},getContrast:function(b){b=u(b).rgba;b[0]*=1;b[1]*=1.2;b[2]*=.5;return 459<b[0]+b[1]+b[2]?"#000000":"#FFFFFF"},button:function(b,a,d,c,x,f,k,B,h,t){var q=this.label(b,a,d,h,null,null,t,null,"button"),G=0,y=this.styledMode;q.attr(l({padding:8,r:2},x));if(!y){x=l({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1,style:{color:"#333333",cursor:"pointer",
fontWeight:"normal"}},x);var w=x.style;delete x.style;f=l(x,{fill:"#e6e6e6"},f);var P=f.style;delete f.style;k=l(x,{fill:"#e6ebf5",style:{color:"#000000",fontWeight:"bold"}},k);var Q=k.style;delete k.style;B=l(x,{style:{color:"#cccccc"}},B);var m=B.style;delete B.style}K(q.element,n?"mouseover":"mouseenter",function(){3!==G&&q.setState(1)});K(q.element,n?"mouseout":"mouseleave",function(){3!==G&&q.setState(G)});q.setState=function(b){1!==b&&(q.state=G=b);q.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+
["normal","hover","pressed","disabled"][b||0]);y||q.attr([x,f,k,B][b||0]).css([w,P,Q,m][b||0])};y||q.attr(x).css(M({cursor:"default"},w));return q.on("click",function(b){3!==G&&c.call(q,b)})},crispLine:function(b,a){b[1]===b[4]&&(b[1]=b[4]=Math.round(b[1])-a%2/2);b[2]===b[5]&&(b[2]=b[5]=Math.round(b[2])+a%2/2);return b},path:function(b){var a=this.styledMode?{}:{fill:"none"};m(b)?a.d=b:f(b)&&M(a,b);return this.createElement("path").attr(a)},circle:function(b,a,d){b=f(b)?b:"undefined"===typeof b?{}:
{x:b,y:a,r:d};a=this.createElement("circle");a.xSetter=a.ySetter=function(b,a,d){d.setAttribute("c"+a,b)};return a.attr(b)},arc:function(b,a,d,c,n,x){f(b)?(c=b,a=c.y,d=c.r,b=c.x):c={innerR:c,start:n,end:x};b=this.symbol("arc",b,a,d,d,c);b.r=d;return b},rect:function(b,a,d,c,n,x){n=f(b)?b.r:n;var q=this.createElement("rect");b=f(b)?b:"undefined"===typeof b?{}:{x:b,y:a,width:Math.max(d,0),height:Math.max(c,0)};this.styledMode||("undefined"!==typeof x&&(b.strokeWidth=x,b=q.crisp(b)),b.fill="none");n&&
(b.r=n);q.rSetter=function(b,a,d){q.r=b;A(d,{rx:b,ry:b})};q.rGetter=function(){return q.r};return q.attr(b)},setSize:function(b,a,c){var n=this.alignedObjects,x=n.length;this.width=b;this.height=a;for(this.boxWrapper.animate({width:b,height:a},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:d(c,!0)?void 0:0});x--;)n[x].align()},g:function(b){var a=this.createElement("g");return b?a.attr({"class":"highcharts-"+b}):a},image:function(b,a,d,c,n,x){var f=
{preserveAspectRatio:"none"},q=function(b,a){b.setAttributeNS?b.setAttributeNS("http://www.w3.org/1999/xlink","href",a):b.setAttribute("hc-svg-href",a)},k=function(a){q(B.element,b);x.call(B,a)};1<arguments.length&&M(f,{x:a,y:d,width:c,height:n});var B=this.createElement("image").attr(f);x?(q(B.element,"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="),f=new W.Image,K(f,"load",k),f.src=b,f.complete&&k({})):q(B.element,b);return B},symbol:function(b,a,c,n,x,f){var q=this,
k=/^url\((.*?)\)$/,B=k.test(b),l=!B&&(this.symbols[b]?b:"circle"),h=l&&this.symbols[l],t=z(a)&&h&&h.call(this.symbols,Math.round(a),Math.round(c),n,x,f);if(h){var y=this.path(t);q.styledMode||y.attr("fill","none");M(y,{symbolName:l,x:a,y:c,width:n,height:x});f&&M(y,f)}else if(B){var G=b.match(k)[1];y=this.image(G);y.imgwidth=d(P[G]&&P[G].width,f&&f.width);y.imgheight=d(P[G]&&P[G].height,f&&f.height);var w=function(){y.attr({width:y.width,height:y.height})};["width","height"].forEach(function(b){y[b+
"Setter"]=function(b,a){var d={},c=this["img"+a],n="width"===a?"translateX":"translateY";this[a]=b;z(c)&&(f&&"within"===f.backgroundSize&&this.width&&this.height&&(c=Math.round(c*Math.min(this.width/this.imgwidth,this.height/this.imgheight))),this.element&&this.element.setAttribute(a,c),this.alignByTranslate||(d[n]=((this[a]||0)-c)/2,this.attr(d)))}});z(a)&&y.attr({x:a,y:c});y.isImg=!0;z(y.imgwidth)&&z(y.imgheight)?w():(y.attr({width:0,height:0}),C("img",{onload:function(){var b=F[q.chartIndex];0===
this.width&&(J(this,{position:"absolute",top:"-999em"}),S.body.appendChild(this));P[G]={width:this.width,height:this.height};y.imgwidth=this.width;y.imgheight=this.height;y.element&&w();this.parentNode&&this.parentNode.removeChild(this);q.imgCount--;if(!q.imgCount&&b&&!b.hasLoaded)b.onload()},src:G}),this.imgCount++)}return y},symbols:{circle:function(b,a,d,c){return this.arc(b+d/2,a+c/2,d/2,c/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},square:function(b,a,d,c){return["M",b,a,"L",b+d,a,b+d,a+c,
b,a+c,"Z"]},triangle:function(b,a,d,c){return["M",b+d/2,a,"L",b+d,a+c,b,a+c,"Z"]},"triangle-down":function(b,a,d,c){return["M",b,a,"L",b+d,a,b+d/2,a+c,"Z"]},diamond:function(b,a,d,c){return["M",b+d/2,a,"L",b+d,a+c/2,b+d/2,a+c,b,a+c/2,"Z"]},arc:function(b,a,c,n,x){var f=x.start,q=x.r||c,k=x.r||n||c,B=x.end-.001;c=x.innerR;n=d(x.open,.001>Math.abs(x.end-x.start-2*Math.PI));var l=Math.cos(f),h=Math.sin(f),y=Math.cos(B);B=Math.sin(B);f=d(x.longArc,.001>x.end-f-Math.PI?0:1);q=["M",b+q*l,a+k*h,"A",q,k,
0,f,d(x.clockwise,1),b+q*y,a+k*B];z(c)&&q.push(n?"M":"L",b+c*y,a+c*B,"A",c,c,0,f,z(x.clockwise)?1-x.clockwise:0,b+c*l,a+c*h);q.push(n?"":"Z");return q},callout:function(b,a,d,c,n){var x=Math.min(n&&n.r||0,d,c),f=x+6,k=n&&n.anchorX;n=n&&n.anchorY;var B=["M",b+x,a,"L",b+d-x,a,"C",b+d,a,b+d,a,b+d,a+x,"L",b+d,a+c-x,"C",b+d,a+c,b+d,a+c,b+d-x,a+c,"L",b+x,a+c,"C",b,a+c,b,a+c,b,a+c-x,"L",b,a+x,"C",b,a,b,a,b+x,a];k&&k>d?n>a+f&&n<a+c-f?B.splice(13,3,"L",b+d,n-6,b+d+6,n,b+d,n+6,b+d,a+c-x):B.splice(13,3,"L",
b+d,c/2,k,n,b+d,c/2,b+d,a+c-x):k&&0>k?n>a+f&&n<a+c-f?B.splice(33,3,"L",b,n+6,b-6,n,b,n-6,b,a+x):B.splice(33,3,"L",b,c/2,k,n,b,c/2,b,a+x):n&&n>c&&k>b+f&&k<b+d-f?B.splice(23,3,"L",k+6,a+c,k,a+c+6,k-6,a+c,b+x,a+c):n&&0>n&&k>b+f&&k<b+d-f&&B.splice(3,3,"L",k-6,a,k,a-6,k+6,a,d-x,a);return B}},clipRect:function(b,a,d,c){var n=y()+"-",x=this.createElement("clipPath").attr({id:n}).add(this.defs);b=this.rect(b,a,d,c,0).add(x);b.id=n;b.clipPath=x;b.count=0;return b},text:function(b,a,d,c){var n={};if(c&&(this.allowHTML||
!this.forExport))return this.html(b,a,d);n.x=Math.round(a||0);d&&(n.y=Math.round(d));z(b)&&(n.text=b);b=this.createElement("text").attr(n);c||(b.xSetter=function(b,a,d){var c=d.getElementsByTagName("tspan"),n=d.getAttribute(a),x;for(x=0;x<c.length;x++){var f=c[x];f.getAttribute(a)===n&&f.setAttribute(a,b)}d.setAttribute(a,b)});return b},fontMetrics:function(b,d){b=!this.styledMode&&/px/.test(b)||!W.getComputedStyle?b||d&&d.style&&d.style.fontSize||this.style&&this.style.fontSize:d&&U.prototype.getStyle.call(d,
"font-size");b=/px/.test(b)?a(b):12;d=24>b?b+3:Math.round(1.2*b);return{h:d,b:Math.round(.8*d),f:b}},rotCorr:function(b,a,d){var c=b;a&&d&&(c=Math.max(c*Math.cos(a*I),4));return{x:-b/3*Math.sin(a*I),y:c}},label:function(b,a,d,c,n,x,f,B,h){var q=this,y=q.styledMode,t=q.g("button"!==h&&"label"),w=t.text=q.text("",0,0,f).attr({zIndex:1}),G,P,m=0,T=3,v=0,e,F,W,V,I,Q={},r,g,N=/^url\((.*?)\)$/.test(c),S=y||N,D=function(){return y?G.strokeWidth()%2/2:(r?parseInt(r,10):0)%2/2};h&&t.addClass("highcharts-"+
h);var O=function(){var b=w.element.style,a={};P=("undefined"===typeof e||"undefined"===typeof F||I)&&z(w.textStr)&&w.getBBox();t.width=(e||P.width||0)+2*T+v;t.height=(F||P.height||0)+2*T;g=T+Math.min(q.fontMetrics(b&&b.fontSize,w).b,P?P.height:Infinity);S&&(G||(t.box=G=q.symbols[c]||N?q.symbol(c):q.rect(),G.addClass(("button"===h?"":"highcharts-label-box")+(h?" highcharts-"+h+"-box":"")),G.add(t),b=D(),a.x=b,a.y=(B?-g:0)+b),a.width=Math.round(t.width),a.height=Math.round(t.height),G.attr(M(a,Q)),
Q={})};var ba=function(){var b=v+T;var a=B?0:g;z(e)&&P&&("center"===I||"right"===I)&&(b+={center:.5,right:1}[I]*(e-P.width));if(b!==w.x||a!==w.y)w.attr("x",b),w.hasBoxWidthChanged&&(P=w.getBBox(!0),O()),"undefined"!==typeof a&&w.attr("y",a);w.x=b;w.y=a};var Y=function(b,a){G?G.attr(b,a):Q[b]=a};t.onAdd=function(){w.add(t);t.attr({text:b||0===b?b:"",x:a,y:d});G&&z(n)&&t.attr({anchorX:n,anchorY:x})};t.widthSetter=function(b){e=H(b)?b:null};t.heightSetter=function(b){F=b};t["text-alignSetter"]=function(b){I=
b};t.paddingSetter=function(b){z(b)&&b!==T&&(T=t.padding=b,ba())};t.paddingLeftSetter=function(b){z(b)&&b!==v&&(v=b,ba())};t.alignSetter=function(b){b={left:0,center:.5,right:1}[b];b!==m&&(m=b,P&&t.attr({x:W}))};t.textSetter=function(b){"undefined"!==typeof b&&w.attr({text:b});O();ba()};t["stroke-widthSetter"]=function(b,a){b&&(S=!0);r=this["stroke-width"]=b;Y(a,b)};y?t.rSetter=function(b,a){Y(a,b)}:t.strokeSetter=t.fillSetter=t.rSetter=function(b,a){"r"!==a&&("fill"===a&&b&&(S=!0),t[a]=b);Y(a,b)};
t.anchorXSetter=function(b,a){n=t.anchorX=b;Y(a,Math.round(b)-D()-W)};t.anchorYSetter=function(b,a){x=t.anchorY=b;Y(a,b-V)};t.xSetter=function(b){t.x=b;m&&(b-=m*((e||P.width)+2*T),t["forceAnimate:x"]=!0);W=Math.round(b);t.attr("translateX",W)};t.ySetter=function(b){V=t.y=Math.round(b);t.attr("translateY",V)};var u=t.css;f={css:function(b){if(b){var a={};b=l(b);t.textProps.forEach(function(d){"undefined"!==typeof b[d]&&(a[d]=b[d],delete b[d])});w.css(a);"width"in a&&O();"fontSize"in a&&(O(),ba())}return u.call(t,
b)},getBBox:function(){return{width:P.width+2*T,height:P.height+2*T,x:P.x-T,y:P.y-T}},destroy:function(){k(t.element,"mouseenter");k(t.element,"mouseleave");w&&(w=w.destroy());G&&(G=G.destroy());U.prototype.destroy.call(t);t=q=O=ba=Y=null}};y||(f.shadow=function(b){b&&(O(),G&&G.shadow(b));return t});return M(t,f)}});e.Renderer=g});R(p,"parts/Html.js",[p["parts/Globals.js"],p["parts/Utilities.js"]],function(e,g){var p=g.attr,u=g.createElement,K=g.css,L=g.defined,E=g.extend,A=g.pick,C=g.pInt,J=e.isFirefox,
z=e.isMS,r=e.isWebKit,D=e.SVGElement;g=e.SVGRenderer;var M=e.win;E(D.prototype,{htmlCss:function(v){var m="SPAN"===this.element.tagName&&v&&"width"in v,e=A(m&&v.width,void 0);if(m){delete v.width;this.textWidth=e;var f=!0}v&&"ellipsis"===v.textOverflow&&(v.whiteSpace="nowrap",v.overflow="hidden");this.styles=E(this.styles,v);K(this.element,v);f&&this.htmlUpdateTransform();return this},htmlGetBBox:function(){var e=this.element;return{x:e.offsetLeft,y:e.offsetTop,width:e.offsetWidth,height:e.offsetHeight}},
htmlUpdateTransform:function(){if(this.added){var e=this.renderer,m=this.element,H=this.translateX||0,f=this.translateY||0,c=this.x||0,l=this.y||0,h=this.textAlign||"left",d={left:0,center:.5,right:1}[h],a=this.styles,k=a&&a.whiteSpace;K(m,{marginLeft:H,marginTop:f});!e.styledMode&&this.shadows&&this.shadows.forEach(function(a){K(a,{marginLeft:H+1,marginTop:f+1})});this.inverted&&[].forEach.call(m.childNodes,function(a){e.invertChild(a,m)});if("SPAN"===m.tagName){a=this.rotation;var t=this.textWidth&&
C(this.textWidth),w=[a,h,m.innerHTML,this.textWidth,this.textAlign].join(),y;(y=t!==this.oldTextWidth)&&!(y=t>this.oldTextWidth)&&((y=this.textPxLength)||(K(m,{width:"",whiteSpace:k||"nowrap"}),y=m.offsetWidth),y=y>t);y&&(/[ \-]/.test(m.textContent||m.innerText)||"ellipsis"===m.style.textOverflow)?(K(m,{width:t+"px",display:"block",whiteSpace:k||"normal"}),this.oldTextWidth=t,this.hasBoxWidthChanged=!0):this.hasBoxWidthChanged=!1;w!==this.cTT&&(k=e.fontMetrics(m.style.fontSize,m).b,!L(a)||a===(this.oldRotation||
0)&&h===this.oldAlign||this.setSpanRotation(a,d,k),this.getSpanCorrection(!L(a)&&this.textPxLength||m.offsetWidth,k,d,a,h));K(m,{left:c+(this.xCorr||0)+"px",top:l+(this.yCorr||0)+"px"});this.cTT=w;this.oldRotation=a;this.oldAlign=h}}else this.alignOnAdd=!0}