/* Highcharts JS v7.0.3 (2019-02-06) Highstock as a plugin for Highcharts (c) 2010-2019 Torstein Honsi License: www.highcharts.com/license */ (function(G){"object"===typeof module&&module.exports?(G["default"]=G,module.exports=G):"function"===typeof define&&define.amd?define(function(){return G}):G("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(G){(function(a){var y=a.addEvent,r=a.Axis,D=a.Chart,A=a.css,C=a.defined,z=a.extend,x=a.noop,q=a.pick,t=a.timeUnits;y(a.Series,"updatedData",function(){var a=this.xAxis;a&&a.options.ordinal&&delete a.ordinalIndex});r.prototype.getTimeTicks=function(a,c,d,h,l,e,n){var p=0,b,k,m={},v, u,f,g=[],w=-Number.MAX_VALUE,E=this.options.tickPixelInterval,F=this.chart.time,H=[];if(!this.options.ordinal&&!this.options.breaks||!l||3>l.length||void 0===c)return F.getTimeTicks.apply(F,arguments);u=l.length;for(b=0;bd;l[b]5*e||f){if(l[b]>w){for(k=F.getTimeTicks(a,l[p],l[b],h);k.length&&k[0]<=w;)k.shift();k.length&&(w=k[k.length-1]);H.push(g.length);g=g.concat(k)}p=b+1}if(f)break}k=k.info;if(n&&k.unitRange<=t.hour){b=g.length-1;for(p=1;pd?H-1:H;for(I=void 0;p--;)b=v[p],H=Math.abs(I-b),I&&H<.8*E&&(null===F||H<.8*F)?(m[g[p]]&&!m[g[p+1]]?(H=p+1,I=b):H=p,g.splice(H,1)):I=b}return g};z(r.prototype,{beforeSetTickPositions:function(){var a,c=[],d,h=!1,l,e=this.getExtremes(), n=e.min,p=e.max,b,k=this.isXAxis&&!!this.options.breaks,e=this.options.ordinal,m=Number.MAX_VALUE,v=this.chart.options.chart.ignoreHiddenSeries,B;if(e||k){this.series.forEach(function(f,g){d=[];if(!(v&&!1===f.visible||!1===f.takeOrdinalPosition&&!k)&&(c=c.concat(f.processedXData),a=c.length,c.sort(function(g,f){return g-f}),m=Math.min(m,q(f.closestPointRange,m)),a)){for(g=0;gl||p-c[c.length-1]>l)&&(h=!0)}else this.options.overscroll&&(2===a?m=c[1]-c[0]:1===a?(m=this.options.overscroll,c=[c[0],c[0]+m]):m=this.overscrollPointsRange);h?(this.options.overscroll&&(this.overscrollPointsRange=m,c=c.concat(this.getOverscrollPositions())),this.ordinalPositions=c,l=this.ordinal2lin(Math.max(n,c[0]),!0),b=Math.max(this.ordinal2lin(Math.min(p,c[c.length-1]),!0),1),this.ordinalSlope= p=(p-n)/(b-l),this.ordinalOffset=n-l*p):(this.overscrollPointsRange=q(this.closestPointRange,this.overscrollPointsRange),this.ordinalPositions=this.ordinalSlope=this.ordinalOffset=void 0)}this.isOrdinal=e&&h;this.groupIntervalFactor=null},val2lin:function(a,c){var d=this.ordinalPositions;if(d){var h=d.length,l,e;for(l=h;l--;)if(d[l]===a){e=l;break}for(l=h-1;l--;)if(a>d[l]||0===l){a=(a-d[l])/(d[l+1]-d[l]);e=l+a;break}c=c?e:this.ordinalSlope*(e||0)+this.ordinalOffset}else c=a;return c},lin2val:function(a, c){var d=this.ordinalPositions;if(d){var h=this.ordinalSlope,l=this.ordinalOffset,e=d.length-1,n;if(c)0>a?a=d[0]:a>e?a=d[e]:(e=Math.floor(a),n=a-e);else for(;e--;)if(c=h*e+l,a>=c){h=h*(e+1)+l;n=(a-c)/(h-c);break}return void 0!==n&&void 0!==d[e]?d[e]+(n?n*(d[e+1]-d[e]):0):a}return a},getExtendedPositions:function(){var a=this,c=a.chart,d=a.series[0].currentDataGrouping,h=a.ordinalIndex,l=d?d.count+d.unitName:"raw",e=a.options.overscroll,n=a.getExtremes(),p,b;h||(h=a.ordinalIndex={});h[l]||(p={series:[], chart:c,getExtremes:function(){return{min:n.dataMin,max:n.dataMax+e}},options:{ordinal:!0},val2lin:r.prototype.val2lin,ordinal2lin:r.prototype.ordinal2lin},a.series.forEach(function(e){b={xAxis:p,xData:e.xData.slice(),chart:c,destroyGroupedData:x};b.xData=b.xData.concat(a.getOverscrollPositions());b.options={dataGrouping:d?{enabled:!0,forced:!0,approximation:"open",units:[[d.unitName,[d.count]]]}:{enabled:!1}};e.processData.apply(b);p.series.push(b)}),a.beforeSetTickPositions.apply(p),h[l]=p.ordinalPositions); return h[l]},getOverscrollPositions:function(){var u=this.options.overscroll,c=this.overscrollPointsRange,d=[],h=this.dataMax;if(a.defined(c))for(d.push(h);h<=this.dataMax+u;)h+=c,d.push(h);return d},getGroupIntervalFactor:function(a,c,d){var h;d=d.processedXData;var l=d.length,e=[];h=this.groupIntervalFactor;if(!h){for(h=0;he?(m=B,g=c.ordinalPositions?c:B):(m=c.ordinalPositions?c:B,g=B),B=g.ordinalPositions,p>B[B.length-1]&&B.push(p),this.fixedRange=k-b,e=c.toFixedRange(null,null,v.apply(m,[f.apply(m,[b,!0])+e,!0]),v.apply(g,[f.apply(g,[k,!0])+e,!0])),e.min>=Math.min(n.dataMin,b)&&e.max<=Math.max(p,k)+d&&c.setExtremes(e.min,e.max,!0,!1,{trigger:"pan"}),this.mouseDownX=h,A(this.container,{cursor:"move"})):l=!0}else l= !0;l?d&&(c.max=c.dataMax+d):a.preventDefault()});y(r,"foundExtremes",function(){this.isXAxis&&C(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&&C(this.userMin)&&(this.min+=this.options.overscroll))})})(G);(function(a){var y=a.addEvent,r=a.pick,D=a.extend,A=a.isArray,C=a.fireEvent,z=a.Axis,x=a.Series;D(z.prototype,{isInBreak:function(a, t){var q=a.repeat||Infinity,c=a.from,d=a.to-a.from;t=t>=c?(t-c)%q:q-(c-t)%q;return a.inclusive?t<=d:t=a)break;else if(d.isInBreak(n,a)){e-=a-n.from;break}return e}function c(a){var e,n;for(n=0;n=a);n++)e.tom;)f-=k;for(;fb.to||h>b.from&&eb.from&&eb.from&&e>b.to&&eq&&(q=t);c--;)u[c+1].x-u[c].x>q&&(t=(u[c].x+u[c+1].x)/2,u.splice(c+1,0,{isNull:!0,x:t}),this.options.stacking&&(t=d.stacks[this.stackKey][t]=new a.StackItem(d,d.options.stackLabels,!1,t,this.stack),t.total=0));return this.getGraphPath(u)}})(G);(function(a){var y=a.addEvent,r=a.arrayMax,D=a.arrayMin,A=a.Axis,C=a.defaultPlotOptions,z=a.defined,x=a.extend,q=a.format,t=a.isNumber,u=a.merge,c=a.pick,d=a.Point, h=a.Series,l=a.Tooltip,e=a.approximations={sum:function(g){var f=g.length,e;if(!f&&g.hasNulls)e=null;else if(f)for(e=0;f--;)e+=g[f];return e},average:function(g){var f=g.length;g=e.sum(g);t(g)&&f&&(g/=f);return g},averages:function(){var g=[];[].forEach.call(arguments,function(f){g.push(e.average(f))});return void 0===g[0]?void 0:g},open:function(g){return g.length?g[0]:g.hasNulls?null:void 0},high:function(g){return g.length?r(g):g.hasNulls?null:void 0},low:function(g){return g.length?D(g):g.hasNulls? null:void 0},close:function(g){return g.length?g[g.length-1]:g.hasNulls?null:void 0},ohlc:function(g,f,b,a){g=e.open(g);f=e.high(f);b=e.low(b);a=e.close(a);if(t(g)||t(f)||t(b)||t(a))return[g,f,b,a]},range:function(g,f){g=e.low(g);f=e.high(f);if(t(g)||t(f))return[g,f];if(null===g&&null===f)return null}},n=function(g,f,b,a){var w=this,F=w.data,k=w.options&&w.options.data,E=[],n=[],m=[],d=g.length,c,p,v=!!f,h=[],l=w.pointArrayMap,B=l&&l.length,q=["x"].concat(l||["y"]),r=0,A=0,C,x;a="function"===typeof a? a:e[a]?e[a]:e[w.getDGApproximation&&w.getDGApproximation()||"average"];B?l.forEach(function(){h.push([])}):h.push([]);C=B||1;for(x=0;x<=d&&!(g[x]>=b[0]);x++);for(x;x<=d;x++){for(;void 0!==b[r+1]&&g[x]>=b[r+1]||x===d;){c=b[r];w.dataGroupInfo={start:w.cropStart+A,length:h[0].length};p=a.apply(w,h);w.pointClass&&!z(w.dataGroupInfo.options)&&(w.dataGroupInfo.options=u(w.pointClass.prototype.optionsToObject.call({series:w},w.options.data[w.cropStart+A])),q.forEach(function(g){delete w.dataGroupInfo.options[g]})); void 0!==p&&(E.push(c),n.push(p),m.push(w.dataGroupInfo));A=x;for(c=0;cthis.chart.plotSizeX/a||e&&k.forced)&&(n=!0);return n?a:0};A.prototype.setDataGrouping=function(f,e){var g;e=c(e,!0);f||(f= {forced:!1,units:null});if(this instanceof A)for(g=this.series.length;g--;)this.series[g].update({dataGrouping:f},!1);else this.chart.options.series.forEach(function(g){g.dataGrouping=f},!1);this.ordinalSlope=null;e&&this.chart.redraw()};return a.dataGrouping=p})(G);(function(a){var y=a.Point,r=a.seriesType,D=a.seriesTypes;r("ohlc","column",{lineWidth:1,tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e \x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eOpen: {point.open}\x3cbr/\x3eHigh: {point.high}\x3cbr/\x3eLow: {point.low}\x3cbr/\x3eClose: {point.close}\x3cbr/\x3e'}, threshold:null,states:{hover:{lineWidth:3}},stickyTracking:!0},{directTouch:!1,pointArrayMap:["open","high","low","close"],toYData:function(a){return[a.open,a.high,a.low,a.close]},pointValKey:"close",pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"},init:function(){D.column.prototype.init.apply(this,arguments);this.options.stacking=!1},pointAttribs:function(a,r){r=D.column.prototype.pointAttribs.call(this,a,r);var z=this.options;delete r.fill;!a.options.color&&z.upColor&&a.openq)););x.forEach(function(b,f){var g;b.plotX+=p;if(void 0===b.plotY||l)0<=b.plotX&&b.plotX<=e.len?l?(b.plotY=e.translate(b.x,0,1,0,1),b.plotX= y(b.y)?n.translate(b.y,0,0,0,1):0):b.plotY=(e.opposite?0:a.yAxis.len)+e.offset:b.shapeArgs={};(t=x[f-1])&&t.plotX===b.plotX&&(void 0===t.stackIndex&&(t.stackIndex=0),g=t.stackIndex+1);b.stackIndex=g});this.onSeries=u}}}(G);(function(a,y){function r(a){d[a+"pin"]=function(c,e,n,p,b){var k=b&&b.anchorX;b=b&&b.anchorY;"circle"===a&&p>n&&(c-=Math.round((p-n)/2),n=p);c=d[a](c,e,n,p);k&&b&&(c.push("M","circle"===a?c[1]-c[4]:c[1]+c[4]/2,e>b?e:e+p,"L",k,b),c=c.concat(d.circle(k-1,b-1,2,2)));return c}}var D= a.addEvent,A=a.merge,C=a.noop,z=a.defined,x=a.Renderer,q=a.Series,t=a.seriesType,u=a.TrackerMixin,c=a.VMLRenderer,d=a.SVGRenderer.prototype.symbols;t("flags","column",{pointRange:0,allowOverlapX:!1,shape:"flag",stackDistance:12,textAlign:"center",tooltip:{pointFormat:"{point.text}\x3cbr/\x3e"},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:q.prototype.init,pointAttribs:function(a,c){var e=this.options,n=a&&a.color||this.color,d=e.lineColor,b=a&&a.lineWidth;a=a&&a.fillColor||e.fillColor;c&&(a=e.states[c].fillColor,d=e.states[c].lineColor,b=e.states[c].lineWidth);return{fill:a||n,stroke:d||n,"stroke-width":b||e.lineWidth||0}},translate:y.translate,getPlotBox:y.getPlotBox,drawPoints:function(){var c=this.points,d=this.chart,e=d.renderer,n,p,b=d.inverted,k=this.options,m=k.y,v,B,f,g,w,E,F= this.yAxis,H={},I=[];for(B=c.length;B--;)f=c[B],E=(b?f.plotY:f.plotX)>this.xAxis.len,n=f.plotX,g=f.stackIndex,v=f.options.shape||k.shape,p=f.plotY,void 0!==p&&(p=f.plotY+m-(void 0!==g&&g*k.stackDistance)),f.anchorX=g?void 0:f.plotX,w=g?void 0:f.plotY,g=f.graphic,void 0!==p&&0<=n&&!E?(g||(g=f.graphic=e.label("",null,null,v,null,null,k.useHTML),d.styledMode||g.attr(this.pointAttribs(f)).css(A(k.style,f.style)),g.attr({align:"flag"===v?"left":"center",width:k.width,height:k.height,"text-align":k.textAlign}).addClass("highcharts-point").add(this.markerGroup), f.graphic.div&&(f.graphic.div.point=f),d.styledMode||g.shadow(k.shadow),g.isNew=!0),0=h?this.scrollbarRifles.hide():this.scrollbarRifles.show(!0),!1===e.showFull&&(0>=a&&1<=c?this.group.hide():this.group.show()),this.rendered=!0)},initEvents:function(){var a=this;a.mouseMoveHandler=function(e){var c=a.chart.pointer.normalize(e),b=a.options.vertical? "chartY":"chartX",d=a.initPositions;!a.grabbedCenter||e.touches&&0===e.touches[0][b]||(c=a.cursorToScrollbarPosition(c)[b],b=a[b],b=c-b,a.hasDragged=!0,a.updatePosition(d[0]+b,d[1]+b),a.hasDragged&&q(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMType:e.type,DOMEvent:e}))};a.mouseUpHandler=function(e){a.hasDragged&&q(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMType:e.type,DOMEvent:e});a.grabbedCenter=a.hasDragged=a.chartX=a.chartY=null};a.mouseDownHandler=function(e){e=a.chart.pointer.normalize(e); e=a.cursorToScrollbarPosition(e);a.chartX=e.chartX;a.chartY=e.chartY;a.initPositions=[a.from,a.to];a.grabbedCenter=!0};a.buttonToMinClick=function(e){var c=A(a.to-a.from)*a.options.step;a.updatePosition(A(a.from-c),A(a.to-c));q(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:e})};a.buttonToMaxClick=function(e){var c=(a.to-a.from)*a.options.step;a.updatePosition(a.from+c,a.to+c);q(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:e})};a.trackClick=function(e){var c=a.chart.pointer.normalize(e), b=a.to-a.from,d=a.y+a.scrollbarTop,m=a.x+a.scrollbarLeft;a.options.vertical&&c.chartY>d||!a.options.vertical&&c.chartX>m?a.updatePosition(a.from+b,a.to+b):a.updatePosition(a.from-b,a.to-b);q(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:e})}},cursorToScrollbarPosition:function(a){var e=this.options,e=e.minWidth>this.calculatedWidth?e.minWidth:0;return{chartX:(a.chartX-this.x-this.xOffset)/(this.barWidth-e),chartY:(a.chartY-this.y-this.yOffset)/(this.barWidth-e)}},updatePosition:function(a, c){1a&&(c=A(c-a),a=0);this.from=a;this.to=c},update:function(a){this.destroy();this.init(this.chart.renderer,u(!0,this.options,a),this.chart)},addEvents:function(){var a=this.options.inverted?[1,0]:[0,1],c=this.scrollbarButtons,d=this.scrollbarGroup.element,b=this.mouseDownHandler,k=this.mouseMoveHandler,m=this.mouseUpHandler,a=[[c[a[0]].element,"click",this.buttonToMinClick],[c[a[1]].element,"click",this.buttonToMaxClick],[this.track.element,"click",this.trackClick],[d, "mousedown",b],[d.ownerDocument,"mousemove",k],[d.ownerDocument,"mouseup",m]];t&&a.push([d,"touchstart",b],[d.ownerDocument,"touchmove",k],[d.ownerDocument,"touchend",m]);a.forEach(function(a){r.apply(null,a)});this._events=a},removeEvents:function(){this._events.forEach(function(a){d.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,x(a.scrollbarButtons))}};r(D,"afterInit",function(){var e=this;e.options&&e.options.scrollbar&&e.options.scrollbar.enabled&&(e.options.scrollbar.vertical=!e.horiz,e.options.startOnTick=e.options.endOnTick=!1,e.scrollbar=new y(e.chart.renderer,e.options.scrollbar,e.chart),r(e.scrollbar,"changed",function(d){var h=Math.min(c(e.options.min,e.min),e.min,e.dataMin),b=Math.max(c(e.options.max,e.max),e.max,e.dataMax)-h,k;e.horiz&& !e.reversed||!e.horiz&&e.reversed?(k=h+b*this.to,h+=b*this.from):(k=h+b*(1-this.from),h+=b*(1-this.to));c(this.options.liveRedraw,a.svg&&!a.isTouchDevice&&!this.chart.isBoosting)||"mouseup"===d.DOMType||!z(d.DOMType)?e.setExtremes(h,k,!0,"mousemove"!==d.DOMType,d):this.setRange(this.from,this.to)}))});r(D,"afterRender",function(){var a=Math.min(c(this.options.min,this.min),this.min,c(this.dataMin,this.min)),d=Math.max(c(this.options.max,this.max),this.max,c(this.dataMax,this.max)),h=this.scrollbar, b=this.titleOffset||0;if(h){this.horiz?(h.position(this.left,this.top+this.height+2+this.chart.scrollbarsOffsets[1]+(this.opposite?0:b+this.axisTitleMargin+this.offset),this.width,this.height),b=1):(h.position(this.left+this.width+2+this.chart.scrollbarsOffsets[0]+(this.opposite?b+this.axisTitleMargin+this.offset:0),this.top,this.width,this.height),b=0);if(!this.opposite&&!this.horiz||this.opposite&&this.horiz)this.chart.scrollbarsOffsets[b]+=this.scrollbar.size+this.scrollbar.options.margin;isNaN(a)|| isNaN(d)||!z(this.min)||!z(this.max)?h.setRange(0,0):(b=(this.min-a)/(d-a),a=(this.max-a)/(d-a),this.horiz&&!this.reversed||!this.horiz&&this.reversed?h.setRange(b,a):h.setRange(1-a,1-b))}});r(D,"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)});a.Scrollbar=y})(G);(function(a){function y(a){this.init(a)}var r=a.addEvent,D=a.Axis,A=a.Chart,C=a.color,z=a.defaultOptions,x=a.defined,q=a.destroyObjectProperties, t=a.erase,u=a.extend,c=a.hasTouch,d=a.isArray,h=a.isNumber,l=a.isTouchDevice,e=a.merge,n=a.pick,p=a.removeEvent,b=a.Scrollbar,k=a.Series,m=a.seriesTypes,v=[].concat(a.defaultDataGroupingUnits),B=function(a){var f=[].filter.call(arguments,h);if(f.length)return Math[a].apply(0,f)};v[4]=["day",[1,2,3,4]];v[5]=["week",[1,2,3]];m=void 0===m.areaspline?"line":"areaspline";u(z,{navigator:{height:40,margin:25,maskInside:!0,handles:{width:7,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0, lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:C("#6685c2").setOpacity(.3).get(),outlineColor:"#cccccc",outlineWidth:1,series:{type:m,fillOpacity:.05,lineWidth:1,compare:null,dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,smoothed:!0,units:v},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},pointRange:0,threshold:null},xAxis:{overscroll:0,className:"highcharts-navigator-xaxis", tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#999999"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}});a.Renderer.prototype.symbols["navigator-handle"]=function(a,g,b,c,e){a=e.width/2;g=Math.round(a/3)+.5;e=e.height;return["M",-a-1,.5,"L",a,.5,"L",a, e+.5,"L",-a-1,e+.5,"L",-a-1,.5,"M",-g,4,"L",-g,e-3,"M",g-1,4,"L",g-1,e-3]};y.prototype={drawHandle:function(a,g,b,c){var f=this.navigatorOptions.handles.height;this.handles[g][c](b?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(a,10)+.5-f)}:{translateX:Math.round(this.left+parseInt(a,10)),translateY:Math.round(this.top+this.height/2-f/2-1)})},drawOutline:function(a,g,b,c){var f=this.navigatorOptions.maskInside,e=this.outline.strokeWidth(),d=e/2,e=e%2/2,w=this.outlineHeight, m=this.scrollbarHeight,k=this.size,h=this.left-m,E=this.top;b?(h-=d,b=E+g+e,g=E+a+e,a=["M",h+w,E-m-e,"L",h+w,b,"L",h,b,"L",h,g,"L",h+w,g,"L",h+w,E+k+m].concat(f?["M",h+w,b-d,"L",h+w,g+d]:[])):(a+=h+m-e,g+=h+m-e,E+=d,a=["M",h,E,"L",a,E,"L",a,E+w,"L",g,E+w,"L",g,E,"L",h+k+2*m,E].concat(f?["M",a-d,E,"L",g+d,E]:[]));this.outline[c]({d:a})},drawMasks:function(a,g,b,c){var f=this.left,e=this.top,d=this.height,w,m,k,h;b?(k=[f,f,f],h=[e,e+a,e+g],m=[d,d,d],w=[a,g-a,this.size-g]):(k=[f,f+a,f+g],h=[e,e,e],m= [a,g-a,this.size-g],w=[d,d,d]);this.shades.forEach(function(a,f){a[c]({x:k[f],y:h[f],width:m[f],height:w[f]})})},renderElements:function(){var a=this,g=a.navigatorOptions,b=g.maskInside,c=a.chart,e=c.renderer,d,m={cursor:c.inverted?"ns-resize":"ew-resize"};a.navigatorGroup=d=e.g("navigator").attr({zIndex:8,visibility:"hidden"}).add();[!b,b,!b].forEach(function(f,b){a.shades[b]=e.rect().addClass("highcharts-navigator-mask"+(1===b?"-inside":"-outside")).add(d);c.styledMode||a.shades[b].attr({fill:f? g.maskFill:"rgba(0,0,0,0)"}).css(1===b&&m)});a.outline=e.path().addClass("highcharts-navigator-outline").add(d);c.styledMode||a.outline.attr({"stroke-width":g.outlineWidth,stroke:g.outlineColor});g.handles.enabled&&[0,1].forEach(function(f){g.handles.inverted=c.inverted;a.handles[f]=e.symbol(g.handles.symbols[f],-g.handles.width/2-1,0,g.handles.width,g.handles.height,g.handles);a.handles[f].attr({zIndex:7-f}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][f]).add(d); if(!c.styledMode){var b=g.handles;a.handles[f].attr({fill:b.backgroundColor,stroke:b.borderColor,"stroke-width":b.lineWidth}).css(m)}})},update:function(a){(this.series||[]).forEach(function(a){a.baseSeries&&delete a.baseSeries.navigatorSeries});this.destroy();e(!0,this.chart.options.navigator,this.options,a);this.init(this.chart)},render:function(f,g,b,c){var e=this.chart,d,w,m=this.scrollbarHeight,k,E=this.xAxis;d=E.fake?e.xAxis[0]:E;var v=this.navigatorEnabled,l,p=this.rendered;w=e.inverted;var B, q=e.xAxis[0].minRange,r=e.xAxis[0].options.maxRange;if(!this.hasDragged||x(b)){if(!h(f)||!h(g))if(p)b=0,c=n(E.width,d.width);else return;this.left=n(E.left,e.plotLeft+m+(w?e.plotWidth:0));this.size=l=k=n(E.len,(w?e.plotHeight:e.plotWidth)-2*m);e=w?m:k+2*m;b=n(b,E.toPixels(f,!0));c=n(c,E.toPixels(g,!0));h(b)&&Infinity!==Math.abs(b)||(b=0,c=e);f=E.toValue(b,!0);g=E.toValue(c,!0);B=Math.abs(a.correctFloat(g-f));Br&&(this.grabbedLeft?b=E.toPixels(g-r,!0):this.grabbedRight&&(c=E.toPixels(f+r,!0)));this.zoomedMax=Math.min(Math.max(b,c,0),l);this.zoomedMin=Math.min(Math.max(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(b,c),0),l);this.range=this.zoomedMax-this.zoomedMin;l=Math.round(this.zoomedMax);b=Math.round(this.zoomedMin);v&&(this.navigatorGroup.attr({visibility:"visible"}),p=p&&!this.hasDragged?"animate":"attr",this.drawMasks(b,l,w,p),this.drawOutline(b,l,w,p),this.navigatorOptions.handles.enabled&& (this.drawHandle(b,0,w,p),this.drawHandle(l,1,w,p)));this.scrollbar&&(w?(w=this.top-m,d=this.left-m+(v||!d.opposite?0:(d.titleOffset||0)+d.axisTitleMargin),m=k+2*m):(w=this.top+(v?this.height:-m),d=this.left-m),this.scrollbar.position(d,w,e,m),this.scrollbar.setRange(this.zoomedMin/(k||1),this.zoomedMax/(k||1)));this.rendered=!0}},addMouseEvents:function(){var a=this,g=a.chart,b=g.container,e=[],d,m;a.mouseMoveHandler=d=function(f){a.onMouseMove(f)};a.mouseUpHandler=m=function(f){a.onMouseUp(f)}; e=a.getPartsEvents("mousedown");e.push(r(b,"mousemove",d),r(b.ownerDocument,"mouseup",m));c&&(e.push(r(b,"touchmove",d),r(b.ownerDocument,"touchend",m)),e.concat(a.getPartsEvents("touchstart")));a.eventsToUnbind=e;a.series&&a.series[0]&&e.push(r(a.series[0].xAxis,"foundExtremes",function(){g.navigator.modifyNavigatorAxisExtremes()}))},getPartsEvents:function(a){var f=this,b=[];["shades","handles"].forEach(function(g){f[g].forEach(function(c,e){b.push(r(c.element,a,function(a){f[g+"Mousedown"](a,e)}))})}); return b},shadesMousedown:function(a,g){a=this.chart.pointer.normalize(a);var f=this.chart,b=this.xAxis,c=this.zoomedMin,e=this.left,d=this.size,m=this.range,k=a.chartX,h,v;f.inverted&&(k=a.chartY,e=this.top);1===g?(this.grabbedCenter=k,this.fixedWidth=m,this.dragOffset=k-c):(a=k-e-m/2,0===g?a=Math.max(0,a):2===g&&a+m>=d&&(a=d-m,this.reversedExtremes?(a-=m,v=this.getUnionExtremes().dataMin):h=this.getUnionExtremes().dataMax),a!==c&&(this.fixedWidth=m,g=b.toFixedRange(a,a+m,v,h),x(g.min)&&f.xAxis[0].setExtremes(Math.min(g.min, g.max),Math.max(g.min,g.max),!0,null,{trigger:"navigator"})))},handlesMousedown:function(a,g){this.chart.pointer.normalize(a);a=this.chart;var f=a.xAxis[0],b=this.reversedExtremes;0===g?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=b?f.min:f.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=b?f.max:f.min);a.fixedRange=null},onMouseMove:function(f){var g=this,b=g.chart,c=g.left,e=g.navigatorSize,d=g.range,m=g.dragOffset,k=b.inverted;f.touches&& 0===f.touches[0].pageX||(f=b.pointer.normalize(f),b=f.chartX,k&&(c=g.top,b=f.chartY),g.grabbedLeft?(g.hasDragged=!0,g.render(0,0,b-c,g.otherHandlePos)):g.grabbedRight?(g.hasDragged=!0,g.render(0,0,g.otherHandlePos,b-c)):g.grabbedCenter&&(g.hasDragged=!0,be+m-d&&(b=e+m-d),g.render(0,0,b-m,b-m+d)),g.hasDragged&&g.scrollbar&&n(g.scrollbar.options.liveRedraw,a.svg&&!l&&!this.chart.isBoosting)&&(f.DOMType=f.type,setTimeout(function(){g.onMouseUp(f)},0)))},onMouseUp:function(a){var f=this.chart, b=this.xAxis,c=this.scrollbar,e,d,m=a.DOMEvent||a;(!this.hasDragged||c&&c.hasDragged)&&"scrollbar"!==a.trigger||(c=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?e=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(d=this.fixedExtreme),this.zoomedMax===this.size&&(d=this.reversedExtremes?c.dataMin:c.dataMax),0===this.zoomedMin&&(e=this.reversedExtremes?c.dataMax:c.dataMin),b=b.toFixedRange(this.zoomedMin,this.zoomedMax,e,d),x(b.min)&&f.xAxis[0].setExtremes(Math.min(b.min,b.max), Math.max(b.min,b.max),!0,this.hasDragged?!1:null,{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:m}));"mousemove"!==a.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(a){a()}),this.eventsToUnbind=void 0);this.removeBaseSeriesEvents()},removeBaseSeriesEvents:function(){var a=this.baseSeries||[];this.navigatorEnabled&& a[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&a.forEach(function(a){p(a,"updatedData",this.updatedDataHandler)},this),a[0].xAxis&&p(a[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))},init:function(a){var g=a.options,f=g.navigator,c=f.enabled,d=g.scrollbar,m=d.enabled,g=c?f.height:0,k=m?d.height:0;this.handles=[];this.shades=[];this.chart=a;this.setBaseSeries();this.height=g;this.scrollbarHeight=k;this.scrollbarEnabled=m;this.navigatorEnabled=c;this.navigatorOptions=f;this.scrollbarOptions= d;this.outlineHeight=g+k;this.opposite=n(f.opposite,!c&&a.inverted);var h=this,c=h.baseSeries,d=a.xAxis.length,m=a.yAxis.length,v=c&&c[0]&&c[0].xAxis||a.xAxis[0]||{options:{}};a.isDirtyBox=!0;h.navigatorEnabled?(h.xAxis=new D(a,e({breaks:v.options.breaks,ordinal:v.options.ordinal},f.xAxis,{id:"navigator-x-axis",yAxis:"navigator-y-axis",isX:!0,type:"datetime",index:d,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1},a.inverted?{offsets:[k, 0,-k,0],width:g}:{offsets:[0,-k,0,k],height:g})),h.yAxis=new D(a,e(f.yAxis,{id:"navigator-y-axis",alignTicks:!1,offset:0,index:m,isInternal:!0,zoomEnabled:!1},a.inverted?{width:g}:{height:g})),c||f.series.data?h.updateNavigatorSeries(!1):0===a.series.length&&(h.unbindRedraw=r(a,"beforeRedraw",function(){0m.indexOf(b)?(b&&(p(b,"updatedData",f.updatedDataHandler),delete b.navigatorSeries),a.chart&&a.destroy(),!1):!0});m&&m.length&&m.forEach(function(a){var b=a.navigatorSeries,w=u({color:a.color,visible:a.visible},d(v)?z.navigator.series:v);b&&!1===f.navigatorOptions.adaptToUpdatedData|| (l.name="Navigator "+m.length,k=a.options||{},n=k.navigatorOptions||{},h=e(k,l,w,n),w=n.data||w.data,f.hasNavigatorData=f.hasNavigatorData||!!w,h.data=w||k.data&&k.data.slice(0),b&&b.options?b.update(h,g):(a.navigatorSeries=c.initSeries(h),a.navigatorSeries.baseSeries=a,B.push(a.navigatorSeries)))});if(v.data&&(!m||!m.length)||d(v))f.hasNavigatorData=!1,v=a.splat(v),v.forEach(function(a,b){l.name="Navigator "+(B.length+1);h=e(z.navigator.series,{color:c.series[b]&&!c.series[b].options.isInternal&& c.series[b].color||c.options.colors[b]||c.options.colors[0]},l,a);h.data=a.data;h.data&&(f.hasNavigatorData=!0,B.push(c.initSeries(h)))});b&&this.addBaseSeriesEvents()},addBaseSeriesEvents:function(){var a=this,b=a.baseSeries||[];b[0]&&b[0].xAxis&&r(b[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes);b.forEach(function(b){r(b,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)});r(b,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)});!1!== this.navigatorOptions.adaptToUpdatedData&&b.xAxis&&r(b,"updatedData",this.updatedDataHandler);r(b,"remove",function(){this.navigatorSeries&&(t(a.series,this.navigatorSeries),x(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)})},this)},getBaseSeriesMin:function(a){return this.baseSeries.reduce(function(a,b){return Math.min(a,b.xData[0])},a)},modifyNavigatorAxisExtremes:function(){var a=this.xAxis,b;a.getExtremes&&(!(b=this.getUnionExtremes(!0))||b.dataMin=== a.min&&b.dataMax===a.max||(a.min=b.dataMin,a.max=b.dataMax))},modifyBaseAxisExtremes:function(){var a=this.chart.navigator,b=this.getExtremes(),c=b.dataMin,e=b.dataMax,b=b.max-b.min,d=a.stickToMin,m=a.stickToMax,k=n(this.options.overscroll,0),v,l,p=a.series&&a.series[0],B=!!this.setExtremes;this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger||(d&&(l=c,v=l+b),m&&(v=e+k,d||(l=Math.max(v-b,a.getBaseSeriesMin(p&&p.xData?p.xData[0]:-Number.MAX_VALUE)))),B&&(d||m)&&h(l)&&(this.min=this.userMin= l,this.max=this.userMax=v));a.stickToMin=a.stickToMax=null},updatedDataHandler:function(){var a=this.chart.navigator,b=this.navigatorSeries,c=a.getBaseSeriesMin(this.xData[0]);a.stickToMax=a.reversedExtremes?0===Math.round(a.zoomedMin):Math.round(a.zoomedMax)>=Math.round(a.size);a.stickToMin=h(this.xAxis.min)&&this.xAxis.min<=c&&(!this.chart.fixedRange||!a.stickToMax);b&&!a.hasNavigatorData&&(b.options.pointStart=this.xData[0],b.setData(this.options.data,!1,null,!1))},addChartEvents:function(){this.eventsToUnbind|| (this.eventsToUnbind=[]);this.eventsToUnbind.push(r(this.chart,"redraw",function(){var a=this.navigator,b=a&&(a.baseSeries&&a.baseSeries[0]&&a.baseSeries[0].xAxis||a.scrollbar&&this.xAxis[0]);b&&a.render(b.min,b.max)}),r(this.chart,"getMargins",function(){var a=this.navigator,b=a.opposite?"plotTop":"marginBottom";this.inverted&&(b=a.opposite?"marginRight":"plotLeft");this[b]=(this[b]||0)+(a.navigatorEnabled||!this.inverted?a.outlineHeight:0)+a.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(a){a.destroy&&a.destroy()});"series xAxis yAxis shades outline scrollbarTrack scrollbarRifles scrollbarGroup scrollbar navigatorGroup rendered".split(" ").forEach(function(a){this[a]&&this[a].destroy&&this[a].destroy();this[a]=null},this);[this.handles].forEach(function(a){q(a)},this)}};a.Navigator=y;r(D,"zoom",function(a){var b= this.chart.options,f=b.chart.zoomType,c=b.chart.pinchType,e=b.navigator,b=b.rangeSelector;this.isXAxis&&(e&&e.enabled||b&&b.enabled)&&("y"===f?a.zoomed=!1:(!l&&"xy"===f||l&&"xy"===c)&&this.options.range&&(f=this.previousZoom,x(a.newMin)?this.previousZoom=[this.min,this.max]:f&&(a.newMin=f[0],a.newMax=f[1],delete this.previousZoom)));void 0!==a.zoomed&&a.preventDefault()});r(A,"beforeShowResetZoom",function(){var a=this.options,b=a.navigator,c=a.rangeSelector;if((b&&b.enabled||c&&c.enabled)&&(!l&& "x"===a.chart.zoomType||l&&"x"===a.chart.pinchType))return!1});r(A,"beforeRender",function(){var a=this.options;if(a.navigator.enabled||a.scrollbar.enabled)this.scroller=this.navigator=new y(this)});r(A,"afterSetChartSize",function(){var a=this.legend,b=this.navigator,c,e,d,m;b&&(e=a&&a.options,d=b.xAxis,m=b.yAxis,c=b.scrollbarHeight,this.inverted?(b.left=b.opposite?this.chartWidth-c-b.height:this.spacing[3]+c,b.top=this.plotTop+c):(b.left=this.plotLeft+c,b.top=b.navigatorOptions.top||this.chartHeight- b.height-c-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(e&&"bottom"===e.verticalAlign&&e.enabled&&!e.floating?a.legendHeight+n(e.margin,10):0)),d&&m&&(this.inverted?d.options.left=m.options.left=b.left:d.options.top=m.options.top=b.top,d.setAxisSize(),m.setAxisSize()))});r(A,"update",function(a){var b=a.options.navigator||{},f=a.options.scrollbar||{};this.navigator||this.scroller||!b.enabled&&!f.enabled||(e(!0,this.options.navigator,b),e(!0,this.options.scrollbar, f),delete a.options.navigator,delete a.options.scrollbar)});r(A,"afterUpdate",function(){this.navigator||this.scroller||!this.options.navigator.enabled&&!this.options.scrollbar.enabled||(this.scroller=this.navigator=new y(this))});r(A,"afterAddSeries",function(){this.navigator&&this.navigator.setBaseSeries(null,!1)});r(k,"afterUpdate",function(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)});A.prototype.callbacks.push(function(a){var b=a.navigator;b&& a.xAxis[0]&&(a=a.xAxis[0].getExtremes(),b.render(a.min,a.max))})})(G);(function(a){function y(a){this.init(a)}var r=a.addEvent,D=a.Axis,A=a.Chart,C=a.css,z=a.createElement,x=a.defaultOptions,q=a.defined,t=a.destroyObjectProperties,u=a.discardElement,c=a.extend,d=a.fireEvent,h=a.isNumber,l=a.merge,e=a.pick,n=a.pInt,p=a.splat;c(x,{rangeSelector:{verticalAlign:"top",buttonTheme:{width:28,height:18,padding:2,zIndex:7},floating:!1,x:0,y:0,height:void 0,inputPosition:{align:"right",x:0,y:0},buttonPosition:{align:"left", x:0,y:0},labelStyle:{color:"#666666"}}});x.lang=l(x.lang,{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"From",rangeSelectorTo:"To"});y.prototype={clickButton:function(a,c){var b=this.chart,d=this.buttonOptions[a],k=b.xAxis[0],f=b.scroller&&b.scroller.getUnionExtremes()||k||{},g=f.dataMin,w=f.dataMax,l,n=k&&Math.round(Math.min(k.max,e(w,k.max))),q=d.type,t,f=d._range,u,x,z,y=d.dataGrouping;if(null!==g&&null!==w){b.fixedRange=f;y&&(this.forcedDataGrouping=!0,D.prototype.setDataGrouping.call(k||{chart:this.chart}, y,!1),this.frozenStates=d.preserveDataGrouping);if("month"===q||"year"===q)k?(q={range:d,max:n,chart:b,dataMin:g,dataMax:w},l=k.minFromRange.call(q),h(q.newMax)&&(n=q.newMax)):f=d;else if(f)l=Math.max(n-f,g),n=Math.min(l+f,w);else if("ytd"===q)if(k)void 0===w&&(g=Number.MAX_VALUE,w=Number.MIN_VALUE,b.series.forEach(function(a){a=a.xData;g=Math.min(a[0],g);w=Math.max(a[a.length-1],w)}),c=!1),n=this.getYTDExtremes(w,g,b.time.useUTC),l=u=n.min,n=n.max;else{this.deferredYTDClick=a;return}else"all"=== q&&k&&(l=g,n=w);l+=d._offsetMin;n+=d._offsetMax;this.setSelected(a);k?k.setExtremes(l,n,e(c,1),null,{trigger:"rangeSelectorButton",rangeSelectorButton:d}):(t=p(b.options.xAxis)[0],z=t.range,t.range=f,x=t.min,t.min=u,r(b,"load",function(){t.range=z;t.min=x}))}},setSelected:function(a){this.selected=this.options.selected=a},defaultButtons:[{type:"month",count:1,text:"1m"},{type:"month",count:3,text:"3m"},{type:"month",count:6,text:"6m"},{type:"ytd",text:"YTD"},{type:"year",count:1,text:"1y"},{type:"all", text:"All"}],init:function(a){var b=this,c=a.options.rangeSelector,e=c.buttons||[].concat(b.defaultButtons),h=c.selected,f=function(){var a=b.minInput,c=b.maxInput;a&&a.blur&&d(a,"blur");c&&c.blur&&d(c,"blur")};b.chart=a;b.options=c;b.buttons=[];a.extraTopMargin=c.height;b.buttonOptions=e;this.unMouseDown=r(a.container,"mousedown",f);this.unResize=r(a,"resize",f);e.forEach(b.computeButtonRange);void 0!==h&&e[h]&&this.clickButton(h,!1);r(a,"load",function(){a.xAxis&&a.xAxis[0]&&r(a.xAxis[0],"setExtremes", function(c){this.max-this.min!==a.fixedRange&&"rangeSelectorButton"!==c.trigger&&"updatedData"!==c.trigger&&b.forcedDataGrouping&&!b.frozenStates&&this.setDataGrouping(!1,!1)})})},updateButtonStates:function(){var a=this,c=this.chart,e=c.xAxis[0],d=Math.round(e.max-e.min),n=!e.hasVisibleSeries,f=c.scroller&&c.scroller.getUnionExtremes()||e,g=f.dataMin,w=f.dataMax,c=a.getYTDExtremes(w,g,c.time.useUTC),l=c.min,p=c.max,q=a.selected,r=h(q),t=a.options.allButtonsEnabled,u=a.buttons;a.buttonOptions.forEach(function(b, c){var f=b._range,m=b.type,k=b.count||1,h=u[c],v=0,F=b._offsetMax-b._offsetMin;b=c===q;var B=f>w-g,E=f=864E5*{month:28,year:365}[m]*k-F&&d-36E5<=864E5*{month:31,year:366}[m]*k+F?f=!0:"ytd"===m?(f=p-l+F===d,x=!b):"all"===m&&(f=e.max-e.min>=w-g,z=!b&&r&&f);m=!t&&(B||E||z||n);k=b&&f||f&&!r&&!x||b&&a.frozenStates;m?v=3:k&&(r=!0,v=2);h.state!==v&&(h.setState(v),0===v&&q===c&&a.setSelected(null))})},computeButtonRange:function(a){var b=a.type, c=a.count||1,d={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5};if(d[b])a._range=d[b]*c;else if("month"===b||"year"===b)a._range=864E5*{month:30,year:365}[b]*c;a._offsetMin=e(a.offsetMin,0);a._offsetMax=e(a.offsetMax,0);a._range+=a._offsetMax-a._offsetMin},setInputValue:function(a,c){var b=this.chart.options.rangeSelector,e=this.chart.time,d=this[a+"Input"];q(c)&&(d.previousValue=d.HCTime,d.HCTime=c);d.value=e.dateFormat(b.inputEditDateFormat||"%Y-%m-%d",d.HCTime);this[a+"DateBox"].attr({text:e.dateFormat(b.inputDateFormat|| "%b %e, %Y",d.HCTime)})},showInput:function(a){var b=this.inputGroup,c=this[a+"DateBox"];C(this[a+"Input"],{left:b.translateX+c.x+"px",top:b.translateY+"px",width:c.width-2+"px",height:c.height-2+"px",border:"2px solid silver"})},hideInput:function(a){C(this[a+"Input"],{border:0,width:"1px",height:"1px"});this.setInputValue(a)},drawInput:function(b){function e(){var a=F.value,b=(g.inputDateParser||Date.parse)(a),c=v.xAxis[0],f=v.scroller&&v.scroller.xAxis?v.scroller.xAxis:c,e=f.dataMin,f=f.dataMax; b!==F.previousValue&&(F.previousValue=b,h(b)||(b=a.split("-"),b=Date.UTC(n(b[0]),n(b[1])-1,n(b[2]))),h(b)&&(v.time.useUTC||(b+=6E4*(new Date).getTimezoneOffset()),q?b>d.maxInput.HCTime?b=void 0:bf&&(b=f),void 0!==b&&c.setExtremes(q?b:c.min,q?c.max:b,void 0,void 0,{trigger:"rangeSelectorInput"})))}var d=this,v=d.chart,p=v.renderer.style||{},f=v.renderer,g=v.options.rangeSelector,w=d.div,q="min"===b,F,r,t=this.inputGroup;this[b+"Label"]=r=f.label(x.lang[q?"rangeSelectorFrom": "rangeSelectorTo"],this.inputGroup.offset).addClass("highcharts-range-label").attr({padding:2}).add(t);t.offset+=r.width+5;this[b+"DateBox"]=f=f.label("",t.offset).addClass("highcharts-range-input").attr({padding:2,width:g.inputBoxWidth||90,height:g.inputBoxHeight||17,"text-align":"center"}).on("click",function(){d.showInput(b);d[b+"Input"].focus()});v.styledMode||f.attr({stroke:g.inputBoxBorderColor||"#cccccc","stroke-width":1});f.add(t);t.offset+=f.width+(q?10:0);this[b+"Input"]=F=z("input",{name:b, className:"highcharts-range-selector",type:"text"},{top:v.plotTop+"px"},w);v.styledMode||(r.css(l(p,g.labelStyle)),f.css(l({color:"#333333"},p,g.inputStyle)),C(F,c({position:"absolute",border:0,width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:p.fontSize,fontFamily:p.fontFamily,top:"-9999em"},g.inputStyle)));F.onfocus=function(){d.showInput(b)};F.onblur=function(){F===a.doc.activeElement&&(e(),d.hideInput(b))};F.onchange=e;F.onkeypress=function(a){13===a.keyCode&&e()}},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,e){var b=this.chart.time,d=new b.Date(a),f=b.get("FullYear",d);e=e?b.Date.UTC(f,0,1):+new b.Date(f,0,1);c=Math.max(c||0,e);d=d.getTime();return{max:Math.min(a||d,d),min:c}},render:function(a,c){var b=this,d=b.chart,h=d.renderer,f=d.container,g=d.options,k=g.exporting&&!1!==g.exporting.enabled&&g.navigation&&g.navigation.buttonOptions, n=x.lang,l=b.div,p=g.rangeSelector,q=e(g.chart.style&&g.chart.style.zIndex,0)+1,g=p.floating,r=b.buttons,l=b.inputGroup,t=p.buttonTheme,u=p.buttonPosition,y=p.inputPosition,A=p.inputEnabled,C=t&&t.states,D=d.plotLeft,G,J=b.buttonGroup,N;N=b.rendered;var O=b.options.verticalAlign,Q=d.legend,R=Q&&Q.options,S=u.y,P=y.y,T=N||!1,U=T?"animate":"attr",M=0,K=0,L;if(!1!==p.enabled){N||(b.group=N=h.g("range-selector-group").attr({zIndex:7}).add(),b.buttonGroup=J=h.g("range-selector-buttons").add(N),b.zoomText= h.text(n.rangeSelectorZoom,0,15).add(J),d.styledMode||(b.zoomText.css(p.labelStyle),t["stroke-width"]=e(t["stroke-width"],0)),b.buttonOptions.forEach(function(a,c){r[c]=h.button(a.text,0,0,function(){var d=a.events&&a.events.click,f;d&&(f=d.call(a));!1!==f&&b.clickButton(c);b.isActive=!0},t,C&&C.hover,C&&C.select,C&&C.disabled).attr({"text-align":"center"}).add(J)}),!1!==A&&(b.div=l=z("div",null,{position:"relative",height:0,zIndex:q}),f.parentNode.insertBefore(l,f),b.inputGroup=l=h.g("input-group").add(N), l.offset=0,b.drawInput("min"),b.drawInput("max")));b.zoomText[U]({x:e(D+u.x,D)});G=e(D+u.x,D)+b.zoomText.getBBox().width+5;b.buttonOptions.forEach(function(a,b){r[b][U]({x:G});G+=r[b].width+e(p.buttonSpacing,5)});D=d.plotLeft-d.spacing[3];b.updateButtonStates();k&&this.titleCollision(d)&&"top"===O&&"right"===u.align&&u.y+J.getBBox().height-12<(k.y||0)+k.height&&(M=-40);"left"===u.align?L=u.x-d.spacing[3]:"right"===u.align&&(L=u.x+M-d.spacing[1]);J.align({y:u.y,width:J.getBBox().width,align:u.align, x:L},!0,d.spacingBox);b.group.placed=T;b.buttonGroup.placed=T;!1!==A&&(M=k&&this.titleCollision(d)&&"top"===O&&"right"===y.align&&y.y-l.getBBox().height-12<(k.y||0)+k.height+d.spacing[0]?-40:0,"left"===y.align?L=D:"right"===y.align&&(L=-Math.max(d.axisOffset[1],-M)),l.align({y:y.y,width:l.getBBox().width,align:y.align,x:y.x+L-2},!0,d.spacingBox),f=l.alignAttr.translateX+l.alignOptions.x-M+l.getBBox().x+2,k=l.alignOptions.width,n=J.alignAttr.translateX+J.getBBox().x,L=J.getBBox().width+20,(y.align=== u.align||n+L>f&&f+k>n&&S=-M?0:-M),translateY:l.alignAttr.translateY+J.getBBox().height+10}),b.setInputValue("min",a),b.setInputValue("max",c),b.inputGroup.placed=T);b.group.align({verticalAlign:O},!0,d.spacingBox);a=b.group.getBBox().height+20;c=b.group.alignAttr.translateY;"bottom"===O&&(Q=R&&"bottom"===R.verticalAlign&&R.enabled&&!R.floating?Q.legendHeight+e(R.margin,10):0,a=a+Q-20,K=c-a-(g?0:p.y)-10);if("top"=== O)g&&(K=0),d.titleOffset&&(K=d.titleOffset+d.options.title.margin),K+=d.margin[0]-d.spacing[0]||0;else if("middle"===O)if(P===S)K=0>P?c+void 0:c;else if(P||S)K=0>P||0>S?K-Math.min(P,S):c-a+NaN;b.group.translate(p.x,p.y+Math.floor(K));!1!==A&&(b.minInput.style.marginTop=b.group.translateY+"px",b.maxInput.style.marginTop=b.group.translateY+"px");b.rendered=!0}},getHeight:function(){var a=this.options,c=this.group,d=a.y,e=a.buttonPosition.y,a=a.inputPosition.y,c=c?c.getBBox(!0).height+13+d:0,d=Math.min(a, e);if(0>a&&0>e||0d&&(l?a=c-b:c=a+b);h(a)&&h(c)||(a=c=void 0);return{min:a,max:c}};D.prototype.minFromRange=function(){var a=this.range,c={month:"Month",year:"FullYear"}[a.type],d,l=this.max,n,f,g=function(a,b){var d=new Date(a),f=d["get"+c]();d["set"+c](f+b);f===d["get"+ c]()&&d.setDate(0);return d.getTime()-a};h(a)?(d=l-a,f=a):(d=l+g(l,-a.count),this.chart&&(this.chart.fixedRange=l-d));n=e(this.dataMin,Number.MIN_VALUE);h(d)||(d=n);d<=n&&(d=n,void 0===f&&(f=g(d,a.count)),this.newMax=Math.min(d+f,this.dataMax));h(l)||(d=void 0);return d};r(A,"afterGetContainer",function(){this.options.rangeSelector.enabled&&(this.rangeSelector=new y(this))});r(A,"beforeRender",function(){var a=this.axes,c=this.rangeSelector;c&&(h(c.deferredYTDClick)&&(c.clickButton(c.deferredYTDClick), delete c.deferredYTDClick),a.forEach(function(a){a.updateNames();a.setScale()}),this.getAxisMargins(),c.render(),a=c.options.verticalAlign,c.options.floating||("bottom"===a?this.extraBottomMargin=!0:"middle"!==a&&(this.extraTopMargin=!0)))});r(A,"update",function(a){var b=a.options.rangeSelector;a=this.rangeSelector;var c=this.extraBottomMargin,d=this.extraTopMargin;b&&b.enabled&&!q(a)&&(this.options.rangeSelector.enabled=!0,this.rangeSelector=new y(this));this.extraTopMargin=this.extraBottomMargin= !1;a&&(a.render(),b=b&&b.verticalAlign||a.options&&a.options.verticalAlign,a.options.floating||("bottom"===b?this.extraBottomMargin=!0:"middle"!==b&&(this.extraTopMargin=!0)),this.extraBottomMargin!==c||this.extraTopMargin!==d)&&(this.isDirtyBox=!0)});r(A,"render",function(){var a=this.rangeSelector;a&&!a.options.floating&&(a.render(),a=a.options.verticalAlign,"bottom"===a?this.extraBottomMargin=!0:"middle"!==a&&(this.extraTopMargin=!0))});r(A,"getMargins",function(){var a=this.rangeSelector;a&&(a= a.getHeight(),this.extraTopMargin&&(this.plotTop+=a),this.extraBottomMargin&&(this.marginBottom+=a))});A.prototype.callbacks.push(function(a){function b(){c=a.xAxis[0].getExtremes();h(c.min)&&d.render(c.min,c.max)}var c,d=a.rangeSelector,e,f;d&&(f=r(a.xAxis[0],"afterSetExtremes",function(a){d.render(a.min,a.max)}),e=r(a,"redraw",b),b());r(a,"destroy",function(){d&&(e(),f())})});a.RangeSelector=y})(G);(function(a){var y=a.addEvent,r=a.arrayMax,D=a.arrayMin,A=a.Axis,C=a.Chart,z=a.defined,x=a.extend, q=a.format,t=a.isNumber,u=a.isString,c=a.merge,d=a.pick,h=a.Point,l=a.Renderer,e=a.Series,n=a.splat,p=a.SVGRenderer,b=a.VMLRenderer,k=e.prototype,m=k.init,v=k.processData,B=h.prototype.tooltipFormatter;a.StockChart=a.stockChart=function(b,e,h){var f=u(b)||b.nodeName,g=arguments[f?1:0],m=g,l=g.series,k=a.getOptions(),w,p=d(g.navigator&&g.navigator.enabled,k.navigator.enabled,!0),q=p?{startOnTick:!1,endOnTick:!1}:null,r={marker:{enabled:!1,radius:2}},t={shadow:!1,borderWidth:0};g.xAxis=n(g.xAxis||{}).map(function(a, b){return c({minPadding:0,maxPadding:0,overscroll:0,ordinal:!0,title:{text:null},labels:{overflow:"justify"},showLastLabel:!0},k.xAxis,k.xAxis&&k.xAxis[b],a,{type:"datetime",categories:null},q)});g.yAxis=n(g.yAxis||{}).map(function(a,b){w=d(a.opposite,!0);return c({labels:{y:-2},opposite:w,showLastLabel:!(!a.categories&&"category"!==a.type),title:{text:null}},k.yAxis,k.yAxis&&k.yAxis[b],a)});g.series=null;g=c({chart:{panning:!0,pinchType:"x"},navigator:{enabled:p},scrollbar:{enabled:d(k.scrollbar.enabled, !0)},rangeSelector:{enabled:d(k.rangeSelector.enabled,!0)},title:{text:null},tooltip:{split:d(k.tooltip.split,!0),crosshairs:!0},legend:{enabled:!1},plotOptions:{line:r,spline:r,area:r,areaspline:r,arearange:r,areasplinerange:r,column:t,columnrange:t,candlestick:t,ohlc:t}},g,{isStock:!0});g.series=m.series=l;return f?new C(b,g,h):new C(g,e)};y(A,"autoLabelAlign",function(a){var b=this.chart,c=this.options,b=b._labelPanes=b._labelPanes||{},d=this.options.labels;this.chart.options.isStock&&"yAxis"=== this.coll&&(c=c.top+","+c.height,!b[c]&&d.enabled&&(15===d.x&&(d.x=0),void 0===d.align&&(d.align="right"),b[c]=this,a.align="right",a.preventDefault()))});y(A,"destroy",function(){var a=this.chart,b=this.options&&this.options.top+","+this.options.height;b&&a._labelPanes&&a._labelPanes[b]===this&&delete a._labelPanes[b]});y(A,"getPlotLinePath",function(b){function c(a){var b="xAxis"===a?"yAxis":"xAxis";a=f.options[b];return t(a)?[h[b][a]]:u(a)?[h.get(a)]:e.map(function(a){return a[b]})}var f=this, e=this.isLinked&&!this.series?this.linkedParent.series:this.series,h=f.chart,m=h.renderer,l=f.left,k=f.top,n,p,q,r,v=[],x=[],y,A,B=b.translatedValue,C=b.value,D=b.force,G;if("xAxis"===f.coll||"yAxis"===f.coll)b.preventDefault(),x=c(f.coll),y=f.isXAxis?h.yAxis:h.xAxis,y.forEach(function(a){if(z(a.options.id)?-1===a.options.id.indexOf("navigator"):1){var b=a.isXAxis?"yAxis":"xAxis",b=z(a.options[b])?h[b][a.options[b]]:h[b][0];f===b&&x.push(a)}}),A=x.length?[]:[f.isXAxis?h.yAxis[0]:h.xAxis[0]],x.forEach(function(b){-1!== A.indexOf(b)||a.find(A,function(a){return a.pos===b.pos&&a.len===b.len})||A.push(b)}),G=d(B,f.translate(C,null,null,b.old)),t(G)&&(f.horiz?A.forEach(function(a){var b;p=a.pos;r=p+a.len;n=q=Math.round(G+f.transB);"pass"!==D&&(nl+f.width)&&(D?n=q=Math.min(Math.max(l,n),l+f.width):b=!0);b||v.push("M",n,p,"L",q,r)}):A.forEach(function(a){var b;n=a.pos;q=n+a.len;p=r=Math.round(k+f.height-G);"pass"!==D&&(pk+f.height)&&(D?p=r=Math.min(Math.max(k,p),f.top+f.height):b=!0);b||v.push("M",n,p,"L", q,r)})),b.path=0A?"hidden":"visible"});f=k.getBBox();if(h){if(p&&!b||!p&&b)l=k.y-f.height}else l=k.y-f.height/2;h?(b=c-f.x,c=c+this.width-f.x):(b="left"===this.labelAlign?c:0,c="right"===this.labelAlign?c+this.width:e.chartWidth);k.translateX< b&&(t=b-k.translateX);k.translateX+f.width>=c&&(t=-(k.translateX+f.width-c));k.attr({x:a+t,y:l,anchorX:h?a:this.opposite?0:e.chartWidth,anchorY:h?this.opposite?e.chartHeight:0:l+f.height/2})}});k.init=function(){m.apply(this,arguments);this.setCompare(this.options.compare)};k.setCompare=function(a){this.modifyValue="value"===a||"percent"===a?function(b,c){var d=this.compareValue;if(void 0!==b&&void 0!==d)return b="value"===a?b-d:b/d*100-(100===this.options.compareBase?0:100),c&&(c.change=b),b}:null; this.userOptions.compare=a;this.chart.hasRendered&&(this.isDirty=!0)};k.processData=function(){var a,b=-1,c,d,e=!0===this.options.compareStart?0:1,h,k;v.apply(this,arguments);if(this.xAxis&&this.processedYData)for(c=this.processedXData,d=this.processedYData,h=d.length,this.pointArrayMap&&(b=this.pointArrayMap.indexOf(this.options.pointValKey||this.pointValKey||"y")),a=0;a=this.xAxis.min&&0!==k){this.compareValue=k;break}};y(e,"afterGetExtremes",function(){if(this.modifyValue){var a= [this.modifyValue(this.dataMin),this.modifyValue(this.dataMax)];this.dataMin=D(a);this.dataMax=r(a)}});A.prototype.setCompare=function(a,b){this.isXAxis||(this.series.forEach(function(b){b.setCompare(a)}),d(b,!0)&&this.chart.redraw())};h.prototype.tooltipFormatter=function(b){b=b.replace("{point.change}",(0