/* Highcharts JS v7.0.0 (2018-12-11) Boost module (c) 2010-2018 Highsoft AS Author: Torstein Honsi License: www.highcharts.com/license */ (function(z){"object"===typeof module&&module.exports?module.exports=z:"function"===typeof define&&define.amd?define(function(){return z}):z("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(z){(function(l){function z(){var a=Array.prototype.slice.call(arguments),c=-Number.MAX_VALUE;a.forEach(function(a){if("undefined"!==typeof a&&null!==a&&"undefined"!==typeof a.length&&0=(b.options.boostThreshold||Number.MAX_VALUE)&&++c);a.boostForceChartBoost=f&&(d===a.series.length&&0g||0>c)c=0;if(!d||d>g)d=g;a.drawArrays(a[(e||"points").toUpperCase()],c/h,(d-c)/h);return!0},allocate:function(a){k=-1;m= new Float32Array(4*a)},push:function(a,b,c,d){m&&(m[++k]=a,m[++k]=b,m[++k]=c,m[++k]=d)}}}function qa(a){function c(a){var b,c;return a.isSeriesBoosting?(b=!!a.options.stacking,c=a.xData||a.options.xData||a.processedXData,b=(b?a.data:c||a.options.data).length,"treemap"===a.type?b*=12:"heatmap"===a.type?b*=6:fa[a.type]&&(b*=2),b):0}function d(){e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT)}function f(a,b){function c(a){a&&(b.colorData.push(a[0]),b.colorData.push(a[1]),b.colorData.push(a[2]),b.colorData.push(a[3]))} function e(a,b,e,d,w){c(w);q.usePreallocated?A.push(a,b,e?1:0,d||1):(B.push(a),B.push(b),B.push(e?1:0),B.push(d||1))}function d(){b.segments.length&&(b.segments[b.segments.length-1].to=B.length)}function w(){b.segments.length&&b.segments[b.segments.length-1].from===B.length||(d(),b.segments.push({from:B.length}))}function g(a,b,d,w,g){c(g);e(a+d,b);c(g);e(a,b);c(g);e(a,b+w);c(g);e(a,b+w);c(g);e(a+d,b+w);c(g);e(a+d,b)}function ha(a,c){q.useGPUTranslations||(b.skipTranslation=!0,a.x=y.toPixels(a.x, !0),a.y=z.toPixels(a.y,!0));c?B=[a.x,a.y,0,2].concat(B):e(a.x,a.y,0,2)}var f=a.pointArrayMap&&"low,high"===a.pointArrayMap.join(","),h=a.chart,O=a.options,m=!!O.stacking,k=O.data,S=a.xAxis.getExtremes(),N=S.min,S=S.max,p=a.yAxis.getExtremes(),u=p.min,p=p.max,n=a.xData||O.xData||a.processedXData,F=a.yData||O.yData||a.processedYData,v=a.zData||O.zData||a.processedZData,z=a.yAxis,y=a.xAxis,E=a.chart.plotHeight,I=a.chart.plotWidth,G=!n||0===n.length,H=O.connectNulls,r=a.points||!1,Q=!1,J=!1,x,T,U,k=m? a.data:n||k,n={x:Number.MAX_VALUE,y:0},K={x:-Number.MAX_VALUE,y:0},L=0,M=!1,t,ca,D=-1,Z=!1,aa=!1,ba,W="undefined"===typeof h.index,X=!1,da=!1,V=fa[a.type],ea=!1,P=!0,ga=!0,R=O.threshold;if(!(O.boostData&&0b.node.levelDynamic)return 1; if(a.node.levelDynamicb.zMax&&(b.zMax=x[2]),x[2]b.zMax&&(b.zMax=v[D]),v[D]=N&&aa<=S&&(X=!0),Z&&Z>=N&&Z<=S&&(da=!0),f?(G&&(t=x.slice(1,3)),ba=t[0],t=t[1]):m&&(r= x.x,t=x.stackY,ba=t-x.y),null!==u&&"undefined"!==typeof u&&null!==p&&"undefined"!==typeof p&&(P=t>=u&&t<=p),r>S&&K.xN&&(n.x=r,n.y=t),null!==t||!H)if(null!==t&&(P||X||da)){if(r>=N&&r<=S&&(ea=!0),ea||X||da){if(!q.useGPUTranslations&&(b.skipTranslation=!0,r=y.toPixels(r,!0),t=z.toPixels(t,!0),t>E&&(t=E),r>I&&"points"===b.drawMode))continue;if(V){x=ba;if(!1===ba||"undefined"===typeof ba)x=0>t?t:0;f||m||(x=Math.max(R,u));q.useGPUTranslations||(x=z.toPixels(x,!0));e(r,x,0,0,!1)}b.hasMarkers&& ea&&!1!==Q&&(a.closestPointRangePx=Math.min(a.closestPointRangePx,Math.abs(r-Q)));!q.useGPUTranslations&&!q.usePreallocated&&Q&&1>Math.abs(r-Q)&&J&&1>Math.abs(t-J)?q.debug.showSkipSummary&&++L:(O.step&&!ga&&e(r,J,0,2,!1),e(r,t,0,"bubble"===a.type?ca||1:2,!1),Q=r,J=t,M=!0,ga=!1)}}else w()}else w()}q.debug.showSkipSummary&&console.log("skipped points:",L);M||!1===H||"line_strip"!==a.drawMode||(n.x-Number.MAX_VALUE&&ha(K))}d()}}function b(){u=[];y.data=B=[];z=[];A&&A.destroy()} function k(a){g&&(g.setUniform("xAxisTrans",a.transA),g.setUniform("xAxisMin",a.min),g.setUniform("xAxisMinPad",a.minPixelPadding),g.setUniform("xAxisPointRange",a.pointRange),g.setUniform("xAxisLen",a.len),g.setUniform("xAxisPos",a.pos),g.setUniform("xAxisCVSCoord",!a.horiz))}function h(a){g&&(g.setUniform("yAxisTrans",a.transA),g.setUniform("yAxisMin",a.min),g.setUniform("yAxisMinPad",a.minPixelPadding),g.setUniform("yAxisPointRange",a.pointRange),g.setUniform("yAxisLen",a.len),g.setUniform("yAxisPos", a.pos),g.setUniform("yAxisCVSCoord",!a.horiz))}function m(a,b){g.setUniform("hasThreshold",a);g.setUniform("translatedThreshold",b)}function p(c){if(c)v=c.chartWidth||800,F=c.chartHeight||400;else return!1;if(!(e&&v&&F&&g))return!1;q.debug.timeRendering&&console.time("gl rendering");e.canvas.width=v;e.canvas.height=F;g.bind();e.viewport(0,0,v,F);g.setPMatrix([2/v,0,0,0,0,-(2/F),0,0,0,0,-2,0,-1,1,-1,1]);g.setPlotHeight(c.plotHeight);12*((d.marker?d.marker.radius:10)||10)),f=E[f&&f.symbol||a.series.symbol]||E.circle;if(!(0===a.segments.length||a.segmentslength&&a.segments[0].from===a.segments[0].to)){f.isReady&&(e.bindTexture(e.TEXTURE_2D, f.handle),g.setTexture(f.handle));c.styledMode?f=a.series.markerGroup&&a.series.markerGroup.getStyle("fill"):(f=a.series.pointAttribs&&a.series.pointAttribs().fill||a.series.color,d.colorByPoint&&(f=a.series.chart.options.colors[b]));a.series.fillOpacity&&d.fillOpacity&&(f=(new ia(f)).setOpacity(G(d.fillOpacity,1)).get());f=l.color(f).rgba;q.useAlpha||(f[3]=1);"lines"===a.drawMode&&q.useAlpha&&1>f[3]&&(f[3]/=10);"add"===d.boostBlending?(e.blendFunc(e.SRC_ALPHA,e.ONE),e.blendEquation(e.FUNC_ADD)): "mult"===d.boostBlending?e.blendFunc(e.DST_COLOR,e.ZERO):"darken"===d.boostBlending?(e.blendFunc(e.ONE,e.ONE),e.blendEquation(e.FUNC_MIN)):e.blendFuncSeparate(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA,e.ONE,e.ONE_MINUS_SRC_ALPHA);g.reset();0=(d.options.boostThreshold||Number.MAX_VALUE)}var d=this,f=this.options.data;P(this.chart)&&H[this.type]?(c(f)&&"heatmap"!==this.type&&"treemap"!==this.type&&!this.options.stacking&&this.hasExtremes&&this.hasExtremes(!0)||(a.apply(this,Array.prototype.slice.call(arguments,1)), f=this.processedXData),(this.isSeriesBoosting=c(f))?this.enterBoost():this.exitBoost&&this.exitBoost()):a.apply(this,Array.prototype.slice.call(arguments,1))});M(p,"hide",function(){this.canvas&&this.renderTarget&&(this.ogl&&this.ogl.clear(),this.boostClear())});p.prototype.enterBoost=function(){this.alteredByBoost=[];["allowDG","directTouch","stickyTracking"].forEach(function(a){this.alteredByBoost.push({prop:a,val:this[a],own:this.hasOwnProperty(a)})},this);this.directTouch=this.allowDG=!1;this.stickyTracking= !0;this.animate=null;this.labelBySeries&&(this.labelBySeries=this.labelBySeries.destroy())};p.prototype.exitBoost=function(){(this.alteredByBoost||[]).forEach(function(a){a.own?this[a.prop]=a.val:delete this[a.prop]},this);this.boostClear&&this.boostClear()};p.prototype.hasExtremes=function(a){var c=this.options,d=this.xAxis&&this.xAxis.options,f=this.yAxis&&this.yAxis.options;return c.data.length>(c.boostThreshold||Number.MAX_VALUE)&&J(f.min)&&J(f.max)&&(!a||J(d.min)&&J(d.max))};p.prototype.destroyGraphics= function(){var a=this,c=this.points,d,f;if(c)for(f=0;f=v&&d<=z),null!==d&&c>=A&&c<=e&&l))if(a=h.toPixels(c,!0),K){if(void 0===Y||a===y){G||(f=d);if(void 0===C||d>M)M=d,C=b;if(void 0===Y||f