/* Highstock JS v8.0.0 (2019-12-10) Highstock as a plugin for Highcharts (c) 2010-2019 Torstein Honsi License: www.highcharts.com/license */ (function(n){"object"===typeof module&&module.exports?(n["default"]=n,module.exports=n):"function"===typeof define&&define.amd?define("highcharts/modules/stock",["highcharts"],function(H){n(H);n.Highcharts=H;return n}):n("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(n){function H(e,h,n,C){e.hasOwnProperty(h)||(e[h]=C.apply(null,n))}n=n?n._modules:{};H(n,"parts/Scrollbar.js",[n["parts/Globals.js"],n["parts/Utilities.js"]],function(e,h){function n(a,c,m){this.init(a,c,m)}var C=h.correctFloat, B=h.defined,D=h.destroyObjectProperties,E=h.pick,t=e.addEvent;h=e.Axis;var x=e.defaultOptions,w=e.fireEvent,f=e.hasTouch,v=e.merge,p=e.removeEvent,q,k={height:e.isTouchDevice?20:14,barBorderRadius:0,buttonBorderRadius:0,liveRedraw:void 0,margin:10,minWidth:6,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:1,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"#333333",trackBackgroundColor:"#f2f2f2", trackBorderColor:"#f2f2f2",trackBorderWidth:1};x.scrollbar=v(!0,k,x.scrollbar);e.swapXY=q=function(a,c){var m=a.length;if(c)for(c=0;c=r?this.scrollbarRifles.hide():this.scrollbarRifles.show(!0);!1===m.showFull&&(0>=a&&1<=c?this.group.hide(): this.group.show());this.rendered=!0}},initEvents:function(){var a=this;a.mouseMoveHandler=function(c){var m=a.chart.pointer.normalize(c),f=a.options.vertical?"chartY":"chartX",d=a.initPositions;!a.grabbedCenter||c.touches&&0===c.touches[0][f]||(m=a.cursorToScrollbarPosition(m)[f],f=a[f],f=m-f,a.hasDragged=!0,a.updatePosition(d[0]+f,d[1]+f),a.hasDragged&&w(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMType:c.type,DOMEvent:c}))};a.mouseUpHandler=function(c){a.hasDragged&&w(a,"changed",{from:a.from, to:a.to,trigger:"scrollbar",DOMType:c.type,DOMEvent:c});a.grabbedCenter=a.hasDragged=a.chartX=a.chartY=null};a.mouseDownHandler=function(c){c=a.chart.pointer.normalize(c);c=a.cursorToScrollbarPosition(c);a.chartX=c.chartX;a.chartY=c.chartY;a.initPositions=[a.from,a.to];a.grabbedCenter=!0};a.buttonToMinClick=function(c){var f=C(a.to-a.from)*a.options.step;a.updatePosition(C(a.from-f),C(a.to-f));w(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:c})};a.buttonToMaxClick=function(c){var f= (a.to-a.from)*a.options.step;a.updatePosition(a.from+f,a.to+f);w(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:c})};a.trackClick=function(c){var f=a.chart.pointer.normalize(c),k=a.to-a.from,d=a.y+a.scrollbarTop,l=a.x+a.scrollbarLeft;a.options.vertical&&f.chartY>d||!a.options.vertical&&f.chartX>l?a.updatePosition(a.from+k,a.to+k):a.updatePosition(a.from-k,a.to-k);w(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:c})}},cursorToScrollbarPosition:function(a){var c=this.options; c=c.minWidth>this.calculatedWidth?c.minWidth:0;return{chartX:(a.chartX-this.x-this.xOffset)/(this.barWidth-c),chartY:(a.chartY-this.y-this.yOffset)/(this.barWidth-c)}},updatePosition:function(a,c){1a&&(c=C(c-a),a=0);this.from=a;this.to=c},update:function(a){this.destroy();this.init(this.chart.renderer,v(!0,this.options,a),this.chart)},addEvents:function(){var a=this.options.inverted?[1,0]:[0,1],c=this.scrollbarButtons,m=this.scrollbarGroup.element,k=this.mouseDownHandler, d=this.mouseMoveHandler,l=this.mouseUpHandler;a=[[c[a[0]].element,"click",this.buttonToMinClick],[c[a[1]].element,"click",this.buttonToMaxClick],[this.track.element,"click",this.trackClick],[m,"mousedown",k],[m.ownerDocument,"mousemove",d],[m.ownerDocument,"mouseup",l]];f&&a.push([m,"touchstart",k],[m.ownerDocument,"touchmove",d],[m.ownerDocument,"touchend",l]);a.forEach(function(d){t.apply(null,d)});this._events=a},removeEvents:function(){this._events.forEach(function(a){p.apply(null,a)});this._events.length= 0},destroy:function(){var a=this.chart.scroller;this.removeEvents();["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(a){this[a]&&this[a].destroy&&(this[a]=this[a].destroy())},this);a&&this===a.scrollbar&&(a.scrollbar=null,D(a.scrollbarButtons))}};e.Scrollbar||(t(h,"afterInit",function(){var a=this;a.options&&a.options.scrollbar&&a.options.scrollbar.enabled&&(a.options.scrollbar.vertical=!a.horiz,a.options.startOnTick=a.options.endOnTick=!1,a.scrollbar=new n(a.chart.renderer, a.options.scrollbar,a.chart),t(a.scrollbar,"changed",function(c){var f=Math.min(E(a.options.min,a.min),a.min,a.dataMin),k=Math.max(E(a.options.max,a.max),a.max,a.dataMax)-f;if(a.horiz&&!a.reversed||!a.horiz&&a.reversed){var d=f+k*this.to;f+=k*this.from}else d=f+k*(1-this.from),f+=k*(1-this.to);E(this.options.liveRedraw,e.svg&&!e.isTouchDevice&&!this.chart.isBoosting)||"mouseup"===c.DOMType||!B(c.DOMType)?a.setExtremes(f,d,!0,"mousemove"!==c.DOMType,c):this.setRange(this.from,this.to)}))}),t(h,"afterRender", function(){var a=Math.min(E(this.options.min,this.min),this.min,E(this.dataMin,this.min)),c=Math.max(E(this.options.max,this.max),this.max,E(this.dataMax,this.max)),f=this.scrollbar,k=this.axisTitleMargin+(this.titleOffset||0),d=this.chart.scrollbarsOffsets,l=this.options.margin||0;f&&(this.horiz?(this.opposite||(d[1]+=k),f.position(this.left,this.top+this.height+2+d[1]-(this.opposite?l:0),this.width,this.height),this.opposite||(d[1]+=l),k=1):(this.opposite&&(d[0]+=k),f.position(this.left+this.width+ 2+d[0]-(this.opposite?0:l),this.top,this.width,this.height),this.opposite&&(d[0]+=l),k=0),d[k]+=f.size+f.options.margin,isNaN(a)||isNaN(c)||!B(this.min)||!B(this.max)||this.min===this.max?f.setRange(0,1):(d=(this.min-a)/(c-a),a=(this.max-a)/(c-a),this.horiz&&!this.reversed||!this.horiz&&this.reversed?f.setRange(d,a):f.setRange(1-a,1-d)))}),t(h,"afterGetOffset",function(){var a=this.horiz?2:1,c=this.scrollbar;c&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[a]+=c.size+c.options.margin)}), e.Scrollbar=n)});H(n,"parts/Navigator.js",[n["parts/Globals.js"],n["parts/Utilities.js"]],function(e,h){function n(b){this.init(b)}var C=h.clamp,B=h.correctFloat,D=h.defined,E=h.destroyObjectProperties,t=h.erase,x=h.extend,w=h.isArray,f=h.isNumber,v=h.pick,p=h.splat,q=e.addEvent,k=e.Axis;h=e.Chart;var a=e.color,c=e.defaultOptions,m=e.hasTouch,G=e.isTouchDevice,d=e.merge,l=e.removeEvent,r=e.Scrollbar,y=e.Series,F=function(b){for(var g=[],z=1;zA&&(a?b=g-d:g=b+d);f(b)&&f(g)||(b=g=void 0);return{min:b,max:g}};n.prototype={drawHandle:function(b,g,z,a){var d=this.navigatorOptions.handles.height;this.handles[g][a](z?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(b,10)+.5-d)}:{translateX:Math.round(this.left+ parseInt(b,10)),translateY:Math.round(this.top+this.height/2-d/2-1)})},drawOutline:function(b,g,z,a){var d=this.navigatorOptions.maskInside,c=this.outline.strokeWidth(),A=c/2;c=c%2/2;var f=this.outlineHeight,l=this.scrollbarHeight,r=this.size,u=this.left-l,k=this.top;z?(u-=A,z=k+g+c,g=k+b+c,b=["M",u+f,k-l-c,"L",u+f,z,"L",u,z,"L",u,g,"L",u+f,g,"L",u+f,k+r+l].concat(d?["M",u+f,z-A,"L",u+f,g+A]:[])):(b+=u+l-c,g+=u+l-c,k+=A,b=["M",u,k,"L",b,k,"L",b,k+f,"L",g,k+f,"L",g,k,"L",u+r+2*l,k].concat(d?["M",b- A,k,"L",g+A,k]:[]));this.outline[a]({d:b})},drawMasks:function(b,g,z,d){var a=this.left,c=this.top,A=this.height;if(z){var f=[a,a,a];var l=[c,c+b,c+g];var r=[A,A,A];var u=[b,g-b,this.size-g]}else f=[a,a+b,a+g],l=[c,c,c],r=[b,g-b,this.size-g],u=[A,A,A];this.shades.forEach(function(b,g){b[d]({x:f[g],y:l[g],width:r[g],height:u[g]})})},renderElements:function(){var b=this,g=b.navigatorOptions,a=g.maskInside,d=b.chart,c=d.renderer,f,l={cursor:d.inverted?"ns-resize":"ew-resize"};b.navigatorGroup=f=c.g("navigator").attr({zIndex:8, visibility:"hidden"}).add();[!a,a,!a].forEach(function(a,z){b.shades[z]=c.rect().addClass("highcharts-navigator-mask"+(1===z?"-inside":"-outside")).add(f);d.styledMode||b.shades[z].attr({fill:a?g.maskFill:"rgba(0,0,0,0)"}).css(1===z&&l)});b.outline=c.path().addClass("highcharts-navigator-outline").add(f);d.styledMode||b.outline.attr({"stroke-width":g.outlineWidth,stroke:g.outlineColor});g.handles.enabled&&[0,1].forEach(function(a){g.handles.inverted=d.inverted;b.handles[a]=c.symbol(g.handles.symbols[a], -g.handles.width/2-1,0,g.handles.width,g.handles.height,g.handles);b.handles[a].attr({zIndex:7-a}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][a]).add(f);if(!d.styledMode){var z=g.handles;b.handles[a].attr({fill:z.backgroundColor,stroke:z.borderColor,"stroke-width":z.lineWidth}).css(l)}})},update:function(b){(this.series||[]).forEach(function(b){b.baseSeries&&delete b.baseSeries.navigatorSeries});this.destroy();d(!0,this.chart.options.navigator,this.options, b);this.init(this.chart)},render:function(b,g,a,d){var z=this.chart,c=this.scrollbarHeight,A,l=this.xAxis,r=l.pointRange||0;var u=l.fake?z.xAxis[0]:l;var k=this.navigatorEnabled,m,y=this.rendered;var e=z.inverted;var q=z.xAxis[0].minRange,p=z.xAxis[0].options.maxRange;if(!this.hasDragged||D(a)){b=B(b-r/2);g=B(g+r/2);if(!f(b)||!f(g))if(y)a=0,d=v(l.width,u.width);else return;this.left=v(l.left,z.plotLeft+c+(e?z.plotWidth:0));this.size=m=A=v(l.len,(e?z.plotHeight:z.plotWidth)-2*c);z=e?c:A+2*c;a=v(a, l.toPixels(b,!0));d=v(d,l.toPixels(g,!0));f(a)&&Infinity!==Math.abs(a)||(a=0,d=z);b=l.toValue(a,!0);g=l.toValue(d,!0);var h=Math.abs(B(g-b));hp&&(this.grabbedLeft?a=l.toPixels(g-p-r,!0):this.grabbedRight&&(d=l.toPixels(b+p+r,!0)));this.zoomedMax=C(Math.max(a,d),0,m);this.zoomedMin=C(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(a,d),0,m);this.range=this.zoomedMax-this.zoomedMin;m=Math.round(this.zoomedMax); a=Math.round(this.zoomedMin);k&&(this.navigatorGroup.attr({visibility:"visible"}),y=y&&!this.hasDragged?"animate":"attr",this.drawMasks(a,m,e,y),this.drawOutline(a,m,e,y),this.navigatorOptions.handles.enabled&&(this.drawHandle(a,0,e,y),this.drawHandle(m,1,e,y)));this.scrollbar&&(e?(e=this.top-c,u=this.left-c+(k||!u.opposite?0:(u.titleOffset||0)+u.axisTitleMargin),c=A+2*c):(e=this.top+(k?this.height:-c),u=this.left-c),this.scrollbar.position(u,e,z,c),this.scrollbar.setRange(this.zoomedMin/(A||1),this.zoomedMax/ (A||1)));this.rendered=!0}},addMouseEvents:function(){var b=this,g=b.chart,a=g.container,d=[],c,l;b.mouseMoveHandler=c=function(g){b.onMouseMove(g)};b.mouseUpHandler=l=function(g){b.onMouseUp(g)};d=b.getPartsEvents("mousedown");d.push(q(g.renderTo,"mousemove",c),q(a.ownerDocument,"mouseup",l));m&&(d.push(q(g.renderTo,"touchmove",c),q(a.ownerDocument,"touchend",l)),d.concat(b.getPartsEvents("touchstart")));b.eventsToUnbind=d;b.series&&b.series[0]&&d.push(q(b.series[0].xAxis,"foundExtremes",function(){g.navigator.modifyNavigatorAxisExtremes()}))}, getPartsEvents:function(b){var g=this,a=[];["shades","handles"].forEach(function(d){g[d].forEach(function(z,c){a.push(q(z.element,b,function(b){g[d+"Mousedown"](b,c)}))})});return a},shadesMousedown:function(b,g){b=this.chart.pointer.normalize(b);var a=this.chart,d=this.xAxis,c=this.zoomedMin,l=this.left,f=this.size,r=this.range,u=b.chartX;a.inverted&&(u=b.chartY,l=this.top);if(1===g)this.grabbedCenter=u,this.fixedWidth=r,this.dragOffset=u-c;else{b=u-l-r/2;if(0===g)b=Math.max(0,b);else if(2===g&& b+r>=f)if(b=f-r,this.reversedExtremes){b-=r;var k=this.getUnionExtremes().dataMin}else var m=this.getUnionExtremes().dataMax;b!==c&&(this.fixedWidth=r,g=d.toFixedRange(b,b+r,k,m),D(g.min)&&a.xAxis[0].setExtremes(Math.min(g.min,g.max),Math.max(g.min,g.max),!0,null,{trigger:"navigator"}))}},handlesMousedown:function(b,g){this.chart.pointer.normalize(b);b=this.chart;var a=b.xAxis[0],d=this.reversedExtremes;0===g?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=d?a.min:a.max): (this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=d?a.max:a.min);b.fixedRange=null},onMouseMove:function(b){var g=this,a=g.chart,d=g.left,c=g.navigatorSize,l=g.range,f=g.dragOffset,r=a.inverted;b.touches&&0===b.touches[0].pageX||(b=a.pointer.normalize(b),a=b.chartX,r&&(d=g.top,a=b.chartY),g.grabbedLeft?(g.hasDragged=!0,g.render(0,0,a-d,g.otherHandlePos)):g.grabbedRight?(g.hasDragged=!0,g.render(0,0,g.otherHandlePos,a-d)):g.grabbedCenter&&(g.hasDragged=!0,ac+f-l&& (a=c+f-l),g.render(0,0,a-f,a-f+l)),g.hasDragged&&g.scrollbar&&v(g.scrollbar.options.liveRedraw,e.svg&&!G&&!this.chart.isBoosting)&&(b.DOMType=b.type,setTimeout(function(){g.onMouseUp(b)},0)))},onMouseUp:function(b){var g=this.chart,a=this.xAxis,d=this.scrollbar,c=b.DOMEvent||b;if(this.hasDragged&&(!d||!d.hasDragged)||"scrollbar"===b.trigger){d=this.getUnionExtremes();if(this.zoomedMin===this.otherHandlePos)var l=this.fixedExtreme;else if(this.zoomedMax===this.otherHandlePos)var f=this.fixedExtreme; this.zoomedMax===this.size&&(f=this.reversedExtremes?d.dataMin:d.dataMax);0===this.zoomedMin&&(l=this.reversedExtremes?d.dataMax:d.dataMin);a=a.toFixedRange(this.zoomedMin,this.zoomedMax,l,f);D(a.min)&&g.xAxis[0].setExtremes(Math.min(a.min,a.max),Math.max(a.min,a.max),!0,this.hasDragged?!1:null,{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:c})}"mousemove"!==b.DOMType&&"touchmove"!==b.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos= this.hasDragged=this.dragOffset=null)},removeEvents:function(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(b){b()}),this.eventsToUnbind=void 0);this.removeBaseSeriesEvents()},removeBaseSeriesEvents:function(){var b=this.baseSeries||[];this.navigatorEnabled&&b[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&b.forEach(function(b){l(b,"updatedData",this.updatedDataHandler)},this),b[0].xAxis&&l(b[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))},init:function(b){var g=b.options, a=g.navigator,c=a.enabled,l=g.scrollbar,f=l.enabled;g=c?a.height:0;var u=f?l.height:0;this.handles=[];this.shades=[];this.chart=b;this.setBaseSeries();this.height=g;this.scrollbarHeight=u;this.scrollbarEnabled=f;this.navigatorEnabled=c;this.navigatorOptions=a;this.scrollbarOptions=l;this.outlineHeight=g+u;this.opposite=v(a.opposite,!(c||!b.inverted));var m=this;c=m.baseSeries;l=b.xAxis.length;f=b.yAxis.length;var y=c&&c[0]&&c[0].xAxis||b.xAxis[0]||{options:{}};b.isDirtyBox=!0;m.navigatorEnabled?(m.xAxis= new k(b,d({breaks:y.options.breaks,ordinal:y.options.ordinal},a.xAxis,{id:"navigator-x-axis",yAxis:"navigator-y-axis",isX:!0,type:"datetime",index:l,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1},b.inverted?{offsets:[u,0,-u,0],width:g}:{offsets:[0,-u,0,u],height:g})),m.yAxis=new k(b,d(a.yAxis,{id:"navigator-y-axis",alignTicks:!1,offset:0,index:f,isInternal:!0,zoomEnabled:!1},b.inverted?{width:g}:{height:g})),c||a.series.data?m.updateNavigatorSeries(!1): 0===b.series.length&&(m.unbindRedraw=q(b,"beforeRedraw",function(){0r.indexOf(g)?(g&&(l(g,"updatedData",a.updatedDataHandler),delete g.navigatorSeries),b.chart&&b.destroy(),!1):!0});r&&r.length&&r.forEach(function(b){var l=b.navigatorSeries,z=x({color:b.color,visible:b.visible},w(m)?c.navigator.series:m);l&&!1===a.navigatorOptions.adaptToUpdatedData||(e.name="Navigator "+r.length,u=b.options||{},y=u.navigatorOptions||{},k=d(u,e,z,y),k.pointRange=v(z.pointRange,y.pointRange,c.plotOptions[k.type||"line"].pointRange),z=y.data||z.data,a.hasNavigatorData=a.hasNavigatorData|| !!z,k.data=z||u.data&&u.data.slice(0),l&&l.options?l.update(k,g):(b.navigatorSeries=f.initSeries(k),b.navigatorSeries.baseSeries=b,q.push(b.navigatorSeries)))});if(m.data&&(!r||!r.length)||w(m))a.hasNavigatorData=!1,m=p(m),m.forEach(function(b,g){e.name="Navigator "+(q.length+1);k=d(c.navigator.series,{color:f.series[g]&&!f.series[g].options.isInternal&&f.series[g].color||f.options.colors[g]||f.options.colors[0]},e,b);k.data=b.data;k.data&&(a.hasNavigatorData=!0,q.push(f.initSeries(k)))});b&&this.addBaseSeriesEvents()}, addBaseSeriesEvents:function(){var b=this,g=b.baseSeries||[];g[0]&&g[0].xAxis&&q(g[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes);g.forEach(function(g){q(g,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)});q(g,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)});!1!==this.navigatorOptions.adaptToUpdatedData&&g.xAxis&&q(g,"updatedData",this.updatedDataHandler);q(g,"remove",function(){this.navigatorSeries&&(t(b.series,this.navigatorSeries), D(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)})},this)},getBaseSeriesMin:function(b){return this.baseSeries.reduce(function(b,a){return Math.min(b,a.xData?a.xData[0]:b)},b)},modifyNavigatorAxisExtremes:function(){var b=this.xAxis,g;"undefined"!==typeof b.getExtremes&&(!(g=this.getUnionExtremes(!0))||g.dataMin===b.min&&g.dataMax===b.max||(b.min=g.dataMin,b.max=g.dataMax))},modifyBaseAxisExtremes:function(){var b=this.chart.navigator,g=this.getExtremes(), a=g.dataMin,d=g.dataMax;g=g.max-g.min;var c=b.stickToMin,l=b.stickToMax,r=v(this.options.overscroll,0),u=b.series&&b.series[0],k=!!this.setExtremes;if(!this.eventArgs||"rangeSelectorButton"!==this.eventArgs.trigger){if(c){var m=a;var y=m+g}l&&(y=d+r,c||(m=Math.max(y-g,b.getBaseSeriesMin(u&&u.xData?u.xData[0]:-Number.MAX_VALUE))));k&&(c||l)&&f(m)&&(this.min=this.userMin=m,this.max=this.userMax=y)}b.stickToMin=b.stickToMax=null},updatedDataHandler:function(){var b=this.chart.navigator,g=this.navigatorSeries, a=b.getBaseSeriesMin(this.xData[0]);b.stickToMax=b.reversedExtremes?0===Math.round(b.zoomedMin):Math.round(b.zoomedMax)>=Math.round(b.size);b.stickToMin=f(this.xAxis.min)&&this.xAxis.min<=a&&(!this.chart.fixedRange||!b.stickToMax);g&&!b.hasNavigatorData&&(g.options.pointStart=this.xData[0],g.setData(this.options.data,!1,null,!1))},addChartEvents:function(){this.eventsToUnbind||(this.eventsToUnbind=[]);this.eventsToUnbind.push(q(this.chart,"redraw",function(){var b=this.navigator,g=b&&(b.baseSeries&& b.baseSeries[0]&&b.baseSeries[0].xAxis||b.scrollbar&&this.xAxis[0]);g&&b.render(g.min,g.max)}),q(this.chart,"getMargins",function(){var b=this.navigator,g=b.opposite?"plotTop":"marginBottom";this.inverted&&(g=b.opposite?"marginRight":"plotLeft");this[g]=(this[g]||0)+(b.navigatorEnabled||!this.inverted?b.outlineHeight:0)+b.navigatorOptions.margin}))},destroy:function(){this.removeEvents();this.xAxis&&(t(this.chart.xAxis,this.xAxis),t(this.chart.axes,this.xAxis));this.yAxis&&(t(this.chart.yAxis,this.yAxis), t(this.chart.axes,this.yAxis));(this.series||[]).forEach(function(b){b.destroy&&b.destroy()});"series xAxis yAxis shades outline scrollbarTrack scrollbarRifles scrollbarGroup scrollbar navigatorGroup rendered".split(" ").forEach(function(b){this[b]&&this[b].destroy&&this[b].destroy();this[b]=null},this);[this.handles].forEach(function(b){E(b)},this)}};e.Navigator||(e.Navigator=n,q(k,"zoom",function(b){var g=this.chart.options,a=g.chart.zoomType,d=g.chart.pinchType,c=g.navigator;g=g.rangeSelector; this.isXAxis&&(c&&c.enabled||g&&g.enabled)&&("y"===a?b.zoomed=!1:(!G&&"xy"===a||G&&"xy"===d)&&this.options.range&&(a=this.previousZoom,D(b.newMin)?this.previousZoom=[this.min,this.max]:a&&(b.newMin=a[0],b.newMax=a[1],delete this.previousZoom)));"undefined"!==typeof b.zoomed&&b.preventDefault()}),q(h,"beforeShowResetZoom",function(){var b=this.options,g=b.navigator,a=b.rangeSelector;if((g&&g.enabled||a&&a.enabled)&&(!G&&"x"===b.chart.zoomType||G&&"x"===b.chart.pinchType))return!1}),q(h,"beforeRender", function(){var b=this.options;if(b.navigator.enabled||b.scrollbar.enabled)this.scroller=this.navigator=new n(this)}),q(h,"afterSetChartSize",function(){var b=this.legend,g=this.navigator;if(g){var a=b&&b.options;var d=g.xAxis;var c=g.yAxis;var l=g.scrollbarHeight;this.inverted?(g.left=g.opposite?this.chartWidth-l-g.height:this.spacing[3]+l,g.top=this.plotTop+l):(g.left=this.plotLeft+l,g.top=g.navigatorOptions.top||this.chartHeight-g.height-l-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin? this.rangeSelector.getHeight():0)-(a&&"bottom"===a.verticalAlign&&a.enabled&&!a.floating?b.legendHeight+v(a.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0));d&&c&&(this.inverted?d.options.left=c.options.left=g.left:d.options.top=c.options.top=g.top,d.setAxisSize(),c.setAxisSize())}}),q(h,"update",function(b){var a=b.options.navigator||{},c=b.options.scrollbar||{};this.navigator||this.scroller||!a.enabled&&!c.enabled||(d(!0,this.options.navigator,a),d(!0,this.options.scrollbar,c),delete b.options.navigator, delete b.options.scrollbar)}),q(h,"afterUpdate",function(b){this.navigator||this.scroller||!this.options.navigator.enabled&&!this.options.scrollbar.enabled||(this.scroller=this.navigator=new n(this),v(b.redraw,!0)&&this.redraw(b.animation))}),q(h,"afterAddSeries",function(){this.navigator&&this.navigator.setBaseSeries(null,!1)}),q(y,"afterUpdate",function(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}),h.prototype.callbacks.push(function(b){var a=b.navigator; a&&b.xAxis[0]&&(b=b.xAxis[0].getExtremes(),a.render(b.min,b.max))}))});H(n,"parts/OrdinalAxis.js",[n["parts/Globals.js"],n["parts/Utilities.js"]],function(e,h){var n=h.defined,C=h.extend,B=h.pick;h=e.addEvent;var D=e.Axis,E=e.Chart,t=e.css,x=e.noop,w=e.timeUnits;h(e.Series,"updatedData",function(){var f=this.xAxis;f&&f.options.ordinal&&delete f.ordinalIndex});D.prototype.getTimeTicks=function(f,v,e,q,k,a,c){var m=0,p,d,l={},r=[],y=-Number.MAX_VALUE,h=this.options.tickPixelInterval,u=this.chart.time, b=[];if(!this.options.ordinal&&!this.options.breaks||!k||3>k.length||"undefined"===typeof v)return u.getTimeTicks.apply(u,arguments);var g=k.length;for(p=0;pe;k[p]5*a||z){if(k[p]>y){for(d=u.getTimeTicks(f,k[m],k[p],q);d.length&&d[0]<=y;)d.shift();d.length&&(y=d[d.length-1]);b.push(r.length);r=r.concat(d)}m=p+1}if(z)break}d=d.info;if(c&&d.unitRange<=w.hour){p=r.length-1;for(m=1;me?b-1:b;for(J=void 0;m--;)p=A[m],b=Math.abs(J-p),J&&b<.8*h&&(null===u||b<.8*u)?(l[r[m]]&&!l[r[m+1]]?(b=m+1,J=p):b=m,r.splice(b,1)):J=p}return r};C(D.prototype,{beforeSetTickPositions:function(){var f=[],e,p=!1,q=this.getExtremes(),k=q.min,a=q.max,c,m=this.isXAxis&& !!this.options.breaks;q=this.options.ordinal;var h=Number.MAX_VALUE,d=this.chart.options.chart.ignoreHiddenSeries,l;if(q||m){this.series.forEach(function(a,c){e=[];if(!(d&&!1===a.visible||!1===a.takeOrdinalPosition&&!m)&&(f=f.concat(a.processedXData),r=f.length,f.sort(function(b,a){return b-a}),h=Math.min(h,B(a.closestPointRange,h)),r)){for(c=0;cy||a-f[f.length-1]>y)&&(p=!0)}else this.options.overscroll&&(2===r?h=f[1]-f[0]:1===r?(h=this.options.overscroll,f=[f[0],f[0]+h]):h=this.overscrollPointsRange);p?(this.options.overscroll&&(this.overscrollPointsRange=h,f=f.concat(this.getOverscrollPositions())),this.ordinalPositions=f,y=this.ordinal2lin(Math.max(k,f[0]),!0),c=Math.max(this.ordinal2lin(Math.min(a,f[f.length-1]),!0),1),this.ordinalSlope=a=(a-k)/(c-y), this.ordinalOffset=k-y*a):(this.overscrollPointsRange=B(this.closestPointRange,this.overscrollPointsRange),this.ordinalPositions=this.ordinalSlope=this.ordinalOffset=void 0)}this.isOrdinal=q&&p;this.groupIntervalFactor=null},val2lin:function(f,e){var p=this.ordinalPositions;if(p){var v=p.length,k;for(k=v;k--;)if(p[k]===f){var a=k;break}for(k=v-1;k--;)if(f>p[k]||0===k){f=(f-p[k])/(p[k+1]-p[k]);a=k+f;break}e=e?a:this.ordinalSlope*(a||0)+this.ordinalOffset}else e=f;return e},lin2val:function(f,e){var p= this.ordinalPositions;if(p){var h=this.ordinalSlope,k=this.ordinalOffset,a=p.length-1;if(e)if(0>f)f=p[0];else if(f>a)f=p[a];else{a=Math.floor(f);var c=f-a}else for(;a--;)if(e=h*a+k,f>=e){h=h*(a+1)+k;c=(f-e)/(h-e);break}return"undefined"!==typeof c&&"undefined"!==typeof p[a]?p[a]+(c?c*(p[a+1]-p[a]):0):f}return f},getExtendedPositions:function(){var f=this,e=f.chart,p=f.series[0].currentDataGrouping,h=f.ordinalIndex,k=p?p.count+p.unitName:"raw",a=f.options.overscroll,c=f.getExtremes(),m;h||(h=f.ordinalIndex= {});if(!h[k]){var t={series:[],chart:e,getExtremes:function(){return{min:c.dataMin,max:c.dataMax+a}},options:{ordinal:!0},val2lin:D.prototype.val2lin,ordinal2lin:D.prototype.ordinal2lin};f.series.forEach(function(a){m={xAxis:t,xData:a.xData.slice(),chart:e,destroyGroupedData:x};m.xData=m.xData.concat(f.getOverscrollPositions());m.options={dataGrouping:p?{enabled:!0,forced:!0,approximation:"open",units:[[p.unitName,[p.count]]]}:{enabled:!1}};a.processData.apply(m);t.series.push(m)});f.beforeSetTickPositions.apply(t); h[k]=t.ordinalPositions}return h[k]},getOverscrollPositions:function(){var f=this.options.overscroll,e=this.overscrollPointsRange,p=[],h=this.dataMax;if(n(e))for(p.push(h);h<=this.dataMax+f;)h+=e,p.push(h);return p},getGroupIntervalFactor:function(f,e,h){h=h.processedXData;var p=h.length,k=[];var a=this.groupIntervalFactor;if(!a){for(a=0;ac){r=F;var b=e.ordinalPositions?e:F}else r=e.ordinalPositions?e:F,b=F;F=b.ordinalPositions;D>F[F.length-1]&&F.push(D);this.fixedRange=l-d;c=e.toFixedRange(null,null,y.apply(r,[u.apply(r,[d,!0])+c,!0]),y.apply(b,[u.apply(b,[l,!0])+c,!0]));c.min>=Math.min(m.dataMin, d)&&c.max<=Math.max(D,l)+h&&e.setExtremes(c.min,c.max,!0,!1,{trigger:"pan"});this.mouseDownX=q;t(this.container,{cursor:"move"})}}else a=!0;a||k&&/y/.test(k.type)?h&&(e.max=e.dataMax+h):f.preventDefault()});h(D,"foundExtremes",function(){this.isXAxis&&n(this.options.overscroll)&&this.max===this.dataMax&&(!this.chart.mouseIsDown||this.isInternal)&&(!this.eventArgs||this.eventArgs&&"navigator"!==this.eventArgs.trigger)&&(this.max+=this.options.overscroll,!this.isInternal&&n(this.userMin)&&(this.min+= this.options.overscroll))});h(D,"afterSetScale",function(){this.horiz&&!this.isDirty&&(this.isDirty=this.isOrdinal&&this.chart.navigator&&!this.chart.navigator.adaptToUpdatedData)})});H(n,"modules/broken-axis.src.js",[n["parts/Globals.js"],n["parts/Utilities.js"]],function(e,h){var n=h.extend,C=h.isArray,B=h.pick;h=e.addEvent;var D=e.find,E=e.fireEvent,t=e.Axis,x=e.Series,w=function(f,e){return D(e,function(e){return e.from=q?(e-q)%h:h-(q-e)%h;return f.inclusive?e<=k:e=a)break;else if(k.isInBreak(d,a)){c-=a-d.from;break}}return c}function q(a){var c;for(c=0;c=a)break;else f.to< a?a+=f.len:k.isInBreak(f,a)&&(a+=f.len)}return a}var k=this,a=C(f)&&!!f.length;k.isDirty=k.isBroken!==a;k.isBroken=a;k.options.breaks=k.userOptions.breaks=f;k.forceRedraw=!0;k.series.forEach(function(a){a.isDirty=!0});a||k.val2lin!==h||(delete k.val2lin,delete k.lin2val);a&&(k.userOptions.ordinal=!1,k.val2lin=h,k.lin2val=q,k.setExtremes=function(a,f,e,d,l){if(this.isBroken){for(var c,k=this.options.breaks;c=w(a,k);)a=c.to;for(;c=w(f,k);)f=c.from;fr;)g-=l;for(;gl.to||a>l.from&&ml.from&&ml.from&&m>l.to&&mf&&h>=this.basePointRange&&(f=h),a=void 0;q--;)a&&!1!==a.visible||(a=p[q+1]),h=p[q],!1!==a.visible&&!1!==h.visible&&(a.x-h.x>f&&(a=(h.x+a.x)/2,p.splice(q+1,0,{isNull:!0,x:a}),this.options.stacking&&(a=k.stacks[this.stackKey][a]=new e.StackItem(k,k.options.stackLabels,!1,a,this.stack),a.total=0)),a=h);return this.getGraphPath(p)}});H(n,"masters/modules/broken-axis.src.js",[],function(){});H(n,"parts/DataGrouping.js", [n["parts/Globals.js"],n["parts/Utilities.js"]],function(e,h){var n=h.arrayMax,C=h.arrayMin,B=h.correctFloat,D=h.defined,E=h.extend,t=h.isNumber,x=h.pick;h=e.addEvent;var w=e.Axis,f=e.defaultPlotOptions,v=e.format,p=e.merge,q=e.Point,k=e.Series,a=e.Tooltip,c=e.approximations={sum:function(b){var a=b.length;if(!a&&b.hasNulls)var d=null;else if(a)for(d=0;a--;)d+=b[a];return d},average:function(b){var a=b.length;b=c.sum(b);t(b)&&a&&(b=B(b/a));return b},averages:function(){var b=[];[].forEach.call(arguments, function(a){b.push(c.average(a))});return"undefined"===typeof b[0]?void 0:b},open:function(b){return b.length?b[0]:b.hasNulls?null:void 0},high:function(b){return b.length?n(b):b.hasNulls?null:void 0},low:function(b){return b.length?C(b):b.hasNulls?null:void 0},close:function(b){return b.length?b[b.length-1]:b.hasNulls?null:void 0},ohlc:function(b,a,d,f){b=c.open(b);a=c.high(a);d=c.low(d);f=c.close(f);if(t(b)||t(a)||t(d)||t(f))return[b,a,d,f]},range:function(b,a){b=c.low(b);a=c.high(a);if(t(b)||t(a))return[b, a];if(null===b&&null===a)return null}},m=function(b,a,d,f){var g=this,l=g.data,e=g.options&&g.options.data,r=[],u=[],k=[],h=b.length,m=!!a,z=[],A=g.pointArrayMap,y=A&&A.length,q=["x"].concat(A||["y"]),F=0,v=0,w;f="function"===typeof f?f:c[f]?c[f]:c[g.getDGApproximation&&g.getDGApproximation()||"average"];y?A.forEach(function(){z.push([])}):z.push([]);var n=y||1;for(w=0;w<=h&&!(b[w]>=d[0]);w++);for(w;w<=h;w++){for(;"undefined"!==typeof d[F+1]&&b[w]>=d[F+1]||w===h;){var x=d[F];g.dataGroupInfo={start:g.cropStart+ v,length:z[0].length};var E=f.apply(g,z);g.pointClass&&!D(g.dataGroupInfo.options)&&(g.dataGroupInfo.options=p(g.pointClass.prototype.optionsToObject.call({series:g},g.options.data[g.cropStart+v])),q.forEach(function(b){delete g.dataGroupInfo.options[b]}));"undefined"!==typeof E&&(r.push(x),u.push(E),k.push(g.dataGroupInfo));v=w;for(x=0;xthis.chart.plotSizeX/c||g&&l.forced)&&(f=!0);return f?c:0};w.prototype.setDataGrouping=function(a,d){var b;d=x(d,!0);a||(a={forced:!1,units:null});if(this instanceof w)for(b=this.series.length;b--;)this.series[b].update({dataGrouping:a},!1);else this.chart.options.series.forEach(function(b){b.dataGrouping= a},!1);this.ordinalSlope=null;d&&this.chart.redraw()};e.dataGrouping=G;"";return G});H(n,"parts/OHLCSeries.js",[n["parts/Globals.js"]],function(e){var h=e.Point,n=e.seriesType,C=e.seriesTypes;n("ohlc","column",{lineWidth:1,tooltip:{pointFormat:'\u25cf {series.name}
Open: {point.open}
High: {point.high}
Low: {point.low}
Close: {point.close}
'},threshold:null,states:{hover:{lineWidth:3}},stickyTracking:!0},{directTouch:!1,pointArrayMap:["open", "high","low","close"],toYData:function(e){return[e.open,e.high,e.low,e.close]},pointValKey:"close",pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"},init:function(){C.column.prototype.init.apply(this,arguments);this.options.stacking=!1},pointAttribs:function(e,h){h=C.column.prototype.pointAttribs.call(this,e,h);var n=this.options;delete h.fill;!e.options.color&&n.upColor&&e.openw)break}}}x.forEach(function(d,l){d.plotX+= G;if("undefined"===typeof d.plotY||a)0<=d.plotX&&d.plotX<=c.len?a?(d.plotY=c.translate(d.x,0,1,0,1),d.plotX=n(d.y)?m.translate(d.y,0,0,0,1):0):d.plotY=(c.opposite?0:e.yAxis.len)+c.offset:d.shapeArgs={};if((f=x[l-1])&&f.plotX===d.plotX){"undefined"===typeof f.stackIndex&&(f.stackIndex=0);var b=f.stackIndex+1}d.stackIndex=b});this.onSeries=v}}});H(n,"parts/FlagsSeries.js",[n["parts/Globals.js"],n["parts/Utilities.js"],n["mixins/on-series.js"]],function(e,h,n){function C(c){a[c+"pin"]=function(f,e,d, l,h){var r=h&&h.anchorX;h=h&&h.anchorY;"circle"===c&&l>d&&(f-=Math.round((l-d)/2),d=l);var k=a[c](f,e,d,l);r&&h&&(k.push("M","circle"===c?f+d/2:k[1]+k[4]/2,e>h?e:e+l,"L",r,h),k=k.concat(a.circle(r-1,h-1,2,2)));return k}}var B=h.defined,D=h.isNumber,E=h.objectEach,t=h.wrap,x=e.addEvent,w=e.merge;h=e.noop;var f=e.Renderer,v=e.Series,p=e.seriesType,q=e.TrackerMixin,k=e.VMLRenderer,a=e.SVGRenderer.prototype.symbols;p("flags","column",{pointRange:0,allowOverlapX:!1,shape:"flag",stackDistance:12,textAlign:"center", tooltip:{pointFormat:"{point.text}
"},threshold:null,y:-30,fillColor:"#ffffff",lineWidth:1,states:{hover:{lineColor:"#000000",fillColor:"#ccd6eb"}},style:{fontSize:"11px",fontWeight:"bold"}},{sorted:!1,noSharedTooltip:!0,allowDG:!1,takeOrdinalPosition:!1,trackerGroups:["markerGroup"],forceCrop:!0,init:v.prototype.init,pointAttribs:function(a,f){var c=this.options,d=a&&a.color||this.color,e=c.lineColor,h=a&&a.lineWidth;a=a&&a.fillColor||c.fillColor;f&&(a=c.states[f].fillColor,e=c.states[f].lineColor, h=c.states[f].lineWidth);return{fill:a||d,stroke:e||d,"stroke-width":h||c.lineWidth||0}},translate:n.translate,getPlotBox:n.getPlotBox,drawPoints:function(){var a=this.points,f=this.chart,h=f.renderer,d=f.inverted,l=this.options,k=l.y,y,n=this.yAxis,u={},b=[];for(y=a.length;y--;){var g=a[y];var z=(d?g.plotY:g.plotX)>this.xAxis.len;var A=g.plotX;var p=g.stackIndex;var q=g.options.shape||l.shape;var v=g.plotY;"undefined"!==typeof v&&(v=g.plotY+k-("undefined"!==typeof p&&p*l.stackDistance));g.anchorX= p?void 0:g.plotX;var K=p?void 0:g.plotY;var x="flag"!==q;p=g.graphic;"undefined"!==typeof v&&0<=A&&!z?(p||(p=g.graphic=h.label("",null,null,q,null,null,l.useHTML),f.styledMode||p.attr(this.pointAttribs(g)).css(w(l.style,g.style)),p.attr({align:x?"center":"left",width:l.width,height:l.height,"text-align":l.textAlign}).addClass("highcharts-point").add(this.markerGroup),g.graphic.div&&(g.graphic.div.point=g),f.styledMode||p.shadow(l.shadow),p.isNew=!0),0g-b,t=l=864E5*{month:28,year:365}[k]*u-A&&e-36E5<=864E5*{month:31,year:366}[k]* u+A?l=!0:"ytd"===k?(l=p-m+A===e,x=!d):"all"===k&&(l=f.max-f.min>=g-b,F=!d&&q&&l);k=!w&&(z||t||F||h);u=d&&l||l&&!q&&!x||d&&a.frozenStates;k?y=3:u&&(q=!0,y=2);r.state!==y&&(r.setState(y),0===y&&n===c&&a.setSelected(null))})},computeButtonRange:function(a){var d=a.type,c=a.count||1,f={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5};if(f[d])a._range=f[d]*c;else if("month"===d||"year"===d)a._range=864E5*{month:30,year:365}[d]*c;a._offsetMin=w(a.offsetMin,0);a._offsetMax=w(a.offsetMax, 0);a._range+=a._offsetMax-a._offsetMin},setInputValue:function(a,c){var d=this.chart.options.rangeSelector,f=this.chart.time,e=this[a+"Input"];C(c)&&(e.previousValue=e.HCTime,e.HCTime=c);e.value=f.dateFormat(d.inputEditDateFormat||"%Y-%m-%d",e.HCTime);this[a+"DateBox"].attr({text:f.dateFormat(d.inputDateFormat||"%b %e, %Y",e.HCTime)})},showInput:function(a){var d=this.inputGroup,c=this[a+"DateBox"];k(this[a+"Input"],{left:d.translateX+c.x+"px",top:d.translateY+"px",width:c.width-2+"px",height:c.height- 2+"px",border:"2px solid silver"})},hideInput:function(a){k(this[a+"Input"],{border:0,width:"1px",height:"1px"});this.setInputValue(a)},drawInput:function(d){function l(){var a=A.value,d=(b.inputDateParser||Date.parse)(a),g=m.xAxis[0],c=m.scroller&&m.scroller.xAxis?m.scroller.xAxis:g,e=c.dataMin;c=c.dataMax;d!==A.previousValue&&(A.previousValue=d,t(d)||(d=a.split("-"),d=Date.UTC(f(d[0]),f(d[1])-1,f(d[2]))),t(d)&&(m.time.useUTC||(d+=6E4*(new Date).getTimezoneOffset()),n?d>h.maxInput.HCTime?d=void 0: dc&&(d=c),"undefined"!==typeof d&&g.setExtremes(n?d:g.min,n?g.max:d,void 0,void 0,{trigger:"rangeSelectorInput"})))}var h=this,m=h.chart,p=m.renderer.style||{},u=m.renderer,b=m.options.rangeSelector,g=h.div,n="min"===d,A,q,w=this.inputGroup;this[d+"Label"]=q=u.label(c.lang[n?"rangeSelectorFrom":"rangeSelectorTo"],this.inputGroup.offset).addClass("highcharts-range-label").attr({padding:2}).add(w);w.offset+=q.width+5;this[d+"DateBox"]=u=u.label("",w.offset).addClass("highcharts-range-input").attr({padding:2, width:b.inputBoxWidth||90,height:b.inputBoxHeight||17,"text-align":"center"}).on("click",function(){h.showInput(d);h[d+"Input"].focus()});m.styledMode||u.attr({stroke:b.inputBoxBorderColor||"#cccccc","stroke-width":1});u.add(w);w.offset+=u.width+(n?10:0);this[d+"Input"]=A=a("input",{name:d,className:"highcharts-range-selector",type:"text"},{top:m.plotTop+"px"},g);m.styledMode||(q.css(G(p,b.labelStyle)),u.css(G({color:"#333333"},p,b.inputStyle)),k(A,E({position:"absolute",border:0,width:"1px",height:"1px", padding:0,textAlign:"center",fontSize:p.fontSize,fontFamily:p.fontFamily,top:"-9999em"},b.inputStyle)));A.onfocus=function(){h.showInput(d)};A.onblur=function(){A===e.doc.activeElement&&l();h.hideInput(d);A.blur()};A.onchange=l;A.onkeypress=function(a){13===a.keyCode&&l()}},getPosition:function(){var a=this.chart,c=a.options.rangeSelector;a="top"===c.verticalAlign?a.plotTop-a.axisOffset[0]:0;return{buttonTop:a+c.buttonPosition.y,inputTop:a+c.inputPosition.y-10}},getYTDExtremes:function(a,c,f){var d= this.chart.time,e=new d.Date(a),h=d.get("FullYear",e);f=f?d.Date.UTC(h,0,1):+new d.Date(h,0,1);c=Math.max(c||0,f);e=e.getTime();return{max:Math.min(a||e,e),min:c}},render:function(d,f){var e=this,h=e.chart,l=h.renderer,k=h.container,b=h.options,g=b.exporting&&!1!==b.exporting.enabled&&b.navigation&&b.navigation.buttonOptions,m=c.lang,p=e.div,n=b.rangeSelector,q=w(b.chart.style&&b.chart.style.zIndex,0)+1;b=n.floating;var t=e.buttons;p=e.inputGroup;var v=n.buttonTheme,x=n.buttonPosition,B=n.inputPosition, D=n.inputEnabled,C=v&&v.states,E=h.plotLeft,I=e.buttonGroup;var G=e.rendered;var H=e.options.verticalAlign,P=h.legend,Q=P&&P.options,R=x.y,O=B.y,S=G||!1,T=S?"animate":"attr",N=0,L=0,M;if(!1!==n.enabled){G||(e.group=G=l.g("range-selector-group").attr({zIndex:7}).add(),e.buttonGroup=I=l.g("range-selector-buttons").add(G),e.zoomText=l.text(m.rangeSelectorZoom,0,15).add(I),h.styledMode||(e.zoomText.css(n.labelStyle),v["stroke-width"]=w(v["stroke-width"],0)),e.buttonOptions.forEach(function(a,b){t[b]= l.button(a.text,0,0,function(d){var g=a.events&&a.events.click,c;g&&(c=g.call(a,d));!1!==c&&e.clickButton(b);e.isActive=!0},v,C&&C.hover,C&&C.select,C&&C.disabled).attr({"text-align":"center"}).add(I)}),!1!==D&&(e.div=p=a("div",null,{position:"relative",height:0,zIndex:q}),k.parentNode.insertBefore(p,k),e.inputGroup=p=l.g("input-group").add(G),p.offset=0,e.drawInput("min"),e.drawInput("max")));e.zoomText[T]({x:w(E+x.x,E)});var U=w(E+x.x,E)+e.zoomText.getBBox().width+5;e.buttonOptions.forEach(function(a, b){t[b][T]({x:U});U+=t[b].width+w(n.buttonSpacing,5)});E=h.plotLeft-h.spacing[3];e.updateButtonStates();g&&this.titleCollision(h)&&"top"===H&&"right"===x.align&&x.y+I.getBBox().height-12<(g.y||0)+g.height&&(N=-40);"left"===x.align?M=x.x-h.spacing[3]:"right"===x.align&&(M=x.x+N-h.spacing[1]);I.align({y:x.y,width:I.getBBox().width,align:x.align,x:M},!0,h.spacingBox);e.group.placed=S;e.buttonGroup.placed=S;!1!==D&&(N=g&&this.titleCollision(h)&&"top"===H&&"right"===B.align&&B.y-p.getBBox().height-12< (g.y||0)+g.height+h.spacing[0]?-40:0,"left"===B.align?M=E:"right"===B.align&&(M=-Math.max(h.axisOffset[1],-N)),p.align({y:B.y,width:p.getBBox().width,align:B.align,x:B.x+M-2},!0,h.spacingBox),k=p.alignAttr.translateX+p.alignOptions.x-N+p.getBBox().x+2,g=p.alignOptions.width,m=I.alignAttr.translateX+I.getBBox().x,M=I.getBBox().width+20,(B.align===x.align||m+M>k&&k+g>m&&R=-N?0:-N),translateY:p.alignAttr.translateY+I.getBBox().height+ 10}),e.setInputValue("min",d),e.setInputValue("max",f),e.inputGroup.placed=S);e.group.align({verticalAlign:H},!0,h.spacingBox);d=e.group.getBBox().height+20;f=e.group.alignAttr.translateY;"bottom"===H&&(P=Q&&"bottom"===Q.verticalAlign&&Q.enabled&&!Q.floating?P.legendHeight+w(Q.margin,10):0,d=d+P-20,L=f-d-(b?0:n.y)-(h.titleOffset?h.titleOffset[2]:0)-10);if("top"===H)b&&(L=0),h.titleOffset&&h.titleOffset[0]&&(L=h.titleOffset[0]),L+=h.margin[0]-h.spacing[0]||0;else if("middle"===H)if(O===R)L=0>O?f+void 0: f;else if(O||R)L=0>O||0>R?L-Math.min(O,R):f-d+NaN;e.group.translate(n.x,n.y+Math.floor(L));!1!==D&&(e.minInput.style.marginTop=e.group.translateY+"px",e.maxInput.style.marginTop=e.group.translateY+"px");e.rendered=!0}},getHeight:function(){var a=this.options,c=this.group,e=a.y,f=a.buttonPosition.y,h=a.inputPosition.y;if(a.height)return a.height;a=c?c.getBBox(!0).height+13+e:0;c=Math.min(h,f);if(0>h&&0>f||0k+c.width)&&(C?m=p=B(m,k,k+c.width):b=!0);b||q.push("M",m,u,"L",p,n)}):F.forEach(function(a){var b;m=a.pos;p=m+a.len;u=n=Math.round(l+c.height-G);"pass"!==C&&(ul+c.height)&&(C?u=n=B(u,l,l+c.height):b=!0);b||q.push("M",m,u,"L",p,n)}));a.path=0B?"hidden":"visible"});e=m.getBBox();if(f){if(u&&!h||!u&&h)l=m.y-e.height}else l=m.y-e.height/2;f?(b=k-e.x,c=k+this.width-e.x):(b="left"===this.labelAlign?k:0,c="right"===this.labelAlign?k+this.width:d.chartWidth);m.translateX=c&&(t=-(m.translateX+e.width-c));m.attr({x:y+ t,y:l,anchorX:f?y:this.opposite?0:d.chartWidth,anchorY:f?this.opposite?d.chartHeight:0:l+e.height/2})}});l.init=function(){r.apply(this,arguments);this.setCompare(this.options.compare)};l.setCompare=function(a){this.modifyValue="value"===a||"percent"===a?function(b,c){var d=this.compareValue;return"undefined"!==typeof b&&"undefined"!==typeof d?(b="value"===a?b-d:b/d*100-(100===this.options.compareBase?0:100),c&&(c.change=b),b):0}:null;this.userOptions.compare=a;this.chart.hasRendered&&(this.isDirty= !0)};l.processData=function(a){var b,c=-1,d=!0===this.options.compareStart?0:1;y.apply(this,arguments);if(this.xAxis&&this.processedYData){var e=this.processedXData;var f=this.processedYData;var h=f.length;this.pointArrayMap&&(c=this.pointArrayMap.indexOf(this.options.pointValKey||this.pointValKey||"y"));for(b=0;b=this.xAxis.min&&0!==k){this.compareValue=k;break}}}};h(m,"afterGetExtremes",function(){if(this.modifyValue){var a=[this.modifyValue(this.dataMin), this.modifyValue(this.dataMax)];this.dataMin=C(a);this.dataMax=n(a)}});v.prototype.setCompare=function(a,b){this.isXAxis||(this.series.forEach(function(b){b.setCompare(a)}),w(b,!0)&&this.chart.redraw())};a.prototype.tooltipFormatter=function(a){var b=this.series.chart.numberFormatter;a=a.replace("{point.change}",(0